Перейти до вмісту

Kubernetes

Матеріал з K2 ERP Wiki
 

!; |}

Багато хмар пропонують managed Kubernetes.; |- | containerd | Container runtime, який фактично запускає контейнери.; | Red Hat.; :contentReference [oaicite:3]{index=3}

Kubernetes має self-healing-механізми.; |- | Self-healing | Перезапускає або замінює failed Pods.; ConfigMap зберігає конфігурацію.; Як правильно думати

Поставлю Kubernetes — і отримаю Heroku.; Додати ConfigMap і Secret.; Operator — це Kubernetes extension, який автоматизує керування складним застосунком.; як ілюстрація:

50. GitOps

!; Перевага

27.; Volumes і PersistentVolume

== 70. Kubernetes vs OpenShift ==

Kubernetes зазвичай налаштовують через YAML-файли.;
spec:

kind: KafkaTopic

kubectl apply -f pod.yaml

Підходить для:

== 21.; Job і CronJob ==

== 9. Control Plane ==

!; * де запускати контейнери;
* скільки копій має працювати;
* що робити, якщо контейнер упав;
* як оновити застосунок без повного простою;
* як дати сервісу стабільну адресу;
* як передати конфігурацію;
* як підключити storage;
* як масштабувати навантаження;
* як керувати секретами;
* як описати бажаний стан системи.;== 37. Rolling update ==

* mTLS;
* traffic splitting;
* retries;
* observability;
* circuit breaking;
* policy;
* zero trust networking.;== 79.; Безпека ==

Менше трафіку → менше Pods.; |-
| 2025
| Виходить Kubernetes 1.35 Timbernetes.;<pre>
Приклади:
Node має змогу бути:

!; Критерій

== 52. Managed Kubernetes ==
 image: nginx:1.27
{| class="wikitable"

'''CronJob''' запускає задачі за розкладом.; ports:
Популярні інструменти:
<pre>
== 12. Pod ==
Загальна схема:
 app: web
[[Deployment]]
'''StatefulSet''' застосовують, коли потрібно для stateful-застосунків.; характеристика
 labels:
 +--> ReplicaSet
|-
| Kubernetes скорочують як K8s
| Між K і s у слові Kubernetes є собою 8 літер.; kubectl apply -f deployment.yaml
== 34. Custom Resource Definition ==

== 59. Pod Security Standards ==

Pod logs

</pre>

 password: strong_password
</pre>
Приклади:
<pre>
Kubernetes cluster
Я хочу 3 копії цього застосунку.;</pre>

* version control;
* audit trail;
* rollback;
* pull request workflow;
* reproducible infrastructure;
* менше ручних змін через kubectl.; - containerPort: 80

* звідки image;
* хто його зібрав;
* чи є собою vulnerabilities;
* чи image підписаний;
* чи є собою SBOM;
* чи не застосовується latest у production;
* чи є собою provenance;
* чи не зламаний CI/CD.; Kubernetes сильний, але він не телепат.; |-
| програмний пакет
| Дуже велика.; |-
| cloud-controller-manager
| інтеграційні функціональні можливості з cloud provider-ом, якщо застосовується.; |-
| LoadBalancer
| Створює зовнішній load balancer через cloud provider.; Кластер сам має прийти до цього стану.; cpu: "100m"

 replicas: 2
!; | Event-driven functions, невеликі backend tasks.; |}

<pre>

Дай мені всі Pods з label app=web.; metadata:

55. MicroK8s

!; | Часто простіший core.; matchLabels:

є собою багато Kubernetes-дистрибутивів і платформ:

  • RBAC;
  • NetworkPolicy;
  • Pod Security Standards;
  • image scanning;
  • signed images;
  • secrets management;
  • encryption at rest;
  • audit logs;
  • admission controllers;
  • least privilege;
  • namespace isolation;
  • secure supply chain;
  • node hardening;
  • runtime security.; | Комерційна enterprise-платформа.; |-

| Найкращий сценарій | Production container platform.; !; |- | readinessProbe | Чи готовий Pod приймати трафік.; Приклади namespaces:

app: web
replicas: 3

!; Selectors дозволяють вибирати об'єкти за labels.;

10. Worker Node

Control Plane — мозок Kubernetes-кластера.; {| class="wikitable"


Він надає можливість: kind: ConfigMap

Service

NetworkPolicy сприяє:

kind: RedisCluster

20. DaemonSet

  • batch processing;
  • database migration;
  • report generation;
  • cleanup;
  • backup task;
  • scheduled sync.; Безпека Kubernetes охоплює:

Тобто користувач системи описує бажаний стан:

Nomad

!; Приклад:

істотно: Kubernetes не є собою заміною Docker, Linux або хмарного провайдера.; |- | Kubernetes був першим CNCF Graduated-проєктом | Він отримав цей статус 6 березня 2018 року.;== 74.; Типові помилки новачків ==

|

apiVersion: v1 !;== 58.; Безпека Kubernetes ==

Kubernetes підтримує роботу різні види autoscaling.; !; Serverless Якщо щось падає — замінити.; * один Pod з'їдає CPU;

  • інший вилітає через memory;
  • scheduler погано розміщує workload-и;
  • autoscaling функціонує нестабільно;
  • production стає непередбачуваним.; 5.; Probe

Головні обмеження: !; * kubelet;

  • container runtime;
  • kube-proxy або CNI/eBPF components;
  • system agents;
  • Pods.; Managed Kubernetes зменшує складність control plane, але не скасовує потребу розуміти workloads, networking, security, storage і observability.; vs

3.; Kubernetes простими словами

73.; Коли Kubernetes має змогу бути не найкращим вибором

Підходить для: |- | Контроль | Високий.; |- | kube-apiserver | Центральний API Kubernetes.; Якщо бажаний стан каже:

labels:
  • запускати кілька копій;
  • робити rolling updates;
  • робити rollback;
  • контролювати версію;
  • підтримувати потрібну кількість Pods;
  • працювати через ReplicaSet.; |-

| KEDA | Event-driven autoscaling для workloads.; Google роками вчився запускати величезні системи.; | Нижчий, більше керує provider.; Kubernetes — це open source-система для оркестрації контейнерів.; |- | kube-controller-manager

| Запускає controllers, які підтримують бажаний стан.;

У Docker люди часто думають контейнерами.; Рік kind: Secret Типова схема:

44. CNI

Service mesh — шар для керування сервісним трафіком.; А Kubernetes намагається привести реальний стан до бажаного.; | Значно менш популярний сьогодні.; :contentReference [oaicite:0]{index=0}

Kubernetes 1.36 є собою latest release у офіційній release history на травень 2026, а гілка 1.35 ще actively supported з patch-релізом 1.35.4 від 14 квітня 2026 року.; - name: hello backend API Але якщо серверів багато, контейнерів сотні, версії змінюються щодня, частина машин падає, а трафік росте — ручне керування стає хаосом.; Характеристика

requests:

56. OpenShift

  • заборонити privileged containers;
  • вимагати resource limits;
  • вимагати labels;
  • перевіряти image registry;
  • застосовувати security policies;
  • автономно додавати sidecars.; |-

| ExternalName | Дає DNS alias на зовнішній сервіс.; * local development;

  • edge;
  • навчання;
  • small clusters;
  • Ubuntu-based workflows;
  • CI/CD labs.; Kubernetes

Інструменти:

|- | livenessProbe | Чи живий контейнер, чи його треба перезапустити.; |- | 2014 | Google анонсує Kubernetes як open source-проєкт.; |- | Scaling | Гнучке, але треба налаштовувати.; | Простішій scheduler для різних workload-ів.; CSI надає можливість Kubernetes працювати з різними storage systems.; | Обмежений.; * спільну network namespace;

  • спільну IP-адресу;
  • спільні volumes;
  • lifecycle;
  • labels;
  • restart policy.;== 19. StatefulSet ==
+--> Service C
kind: Service
; Control Plane каже, що треба зробити.; * sidecar для logs;
  • proxy;
  • service mesh;
  • sync agent;
  • monitoring helper;
  • init container.; Kubernetes функціонує декларативно.; GitOps controller

Приклади:

  • Node CPU;
  • Node memory;
  • Pod restarts;
  • Pod pending;
  • Pod OOMKilled;
  • API server latency;
  • etcd health;
  • disk pressure;
  • network errors;
  • failed deployments;
  • HPA behavior;
  • ingress errors.; Інструмент

metadata: Основні об'єкти:

Pod

Deployment має змогу контролювати:

[[Категорія:DevOps]]
== 68. Kubernetes vs Docker Swarm ==
має бути 3 Pods
== 47. Observability ==

Requests допомагають scheduler-у розміщувати Pods.; * routing за hostname;
* routing за path;
* TLS termination;
* централізований HTTP-доступ;
* інтеграцію з cert-manager.; Додати Ingress або Gateway, якщо потрібен зовнішній доступ.;[[Operators]]

Log storage

'''Чому це цікаво:''' Kubernetes став фактичним стандартом cloud-native інфраструктури: він надає можливість запускати застосунки не на одному сервері, а на цілому кластері машин, автономно перезапускати зламані контейнери, масштабувати сервіси й керувати складними системами декларативно.; resources:

<syntaxhighlight lang="yaml">

 +--> Pod

[[DaemonSet]]
 metadata:
 |
Але ідея схожа:
<pre>
 |
 selector:
Він приймає рішення для бізнесу:

Схема:

  • Argo CD;
  • Flux;
  • Helm;
  • Kustomize.; apiVersion: apps/v1

12.;== 69. Kubernetes vs Nomad ==

NetworkPolicy надає можливість обмежувати мережевий трафік між Pods.; характеристика

31. kubectl

Pod має:

K + 8 літер + s

kind: Deployment

80.; Kubernetes у сучасній інфраструктурі

11.; |-
Vendor CNCF/community.;Linux
  • databases;
  • message brokers;
  • clustered systems;
  • застосунки, де важливі стабільні імена;
  • застосунки, де важливі persistent volumes.; | У production limits і requests дуже важливі.; kind: Certificate
v

У Kubernetes істотно задавати ресурси.; істотно: Kubernetes Secret — це не магічний сейф.; v

|-
| Оркестрація контейнерів
| Керує запуском контейнерів у кластері.; Якщо Pod упав, Kubernetes спробує його замінити.;== 26. Secret ==

* passwords;
* tokens;
* API keys;
* certificates;
* private keys.;[[containerd]]

Насправді Kubernetes — це нижчий шар.; |-
| Vertical Pod Autoscaler
| CPU/memory requests і limits для Pods.; Nomad

Що варто моніторити:

* default;
* kube-system;
* dev;
* staging;
* production;
* monitoring;
* team-a;
* team-b.; | Залежить від provider-а.; |}

10.; |-
| Вартість
| Кластери потребують ресурсів і часу команди.;

Kubernetes керує контейнерами.; |-

Вартість - “kubectl apply вручну — достатньо” }

Приклад Pod:

Kubernetes не створює саму ідею контейнерів, але керує їх запуском на багатьох машинах.;OpenShift

developer має змогу дивитися Pods у namespace dev,

Це не буквальна ОС як Linux.; |-

Workloads Контейнери, batch, extensions.; name: web

2.; Коротка характеристика

kubectl logs pod-name

'''Людське пояснення:''' якщо Docker запускає окремий контейнер, то Kubernetes керує цілим “містом контейнерів”: розселяє їх по серверах, стежить за здоров'ям, перенаправляє трафік і замінює зламані частини.;
  • Pod networking;
  • IP allocation;
  • routing;
  • network policy;
  • іноді eBPF-функції.;
Kubernetes → K8s username: app_user * отримує інструкції від control plane; * запускає Pods через container runtime; * перевіряє стан контейнерів; * повідомляє про стан Node; * стежить за Pod health; * застосовує конфігурацію.; Подія А так: '''MicroK8s''' — Kubernetes-дистрибуція від Canonical.; Він: |- | “Kubernetes вирішить усі проблеми” | Його часто рекламують як стандарт.; Типова схема:
targetPort: 80

Pod надає можливість групувати такі контейнери як одну логічну одиницю.; |-

Велика програмний пакет - Overkill для малих проєктів Для одного сайту часто достатньо Docker Compose або VPS.; +--> Pod
== 61. Supply chain security ==

 v

Контейнери зазвичай тимчасові.; Його головні переважні аспекти:

Найчастіше:

[[Kubernetes]]

* Istio;
* Linkerd;
* Consul service mesh;
* Kuma.; характеристика

Namespace сприяє:

 v

{| class="wikitable"
== 41.; Цікавий факт: Kubernetes не знає, скільки ресурсів треба вашому застосунку, якщо ви йому не скажете ==
Приклад ідеї:
|-
| Docker
| Створення, запуск і керування контейнерами на окремій машині.; Але service mesh додатково додає складність.; Схема:

* стабільні Pod names;
* стабільну identity;
* ordered rollout;
* stable storage association.; |-
| Cloud-neutral
| має змогу працювати в різних clouds, on-prem і hybrid.; '''Головна ідея:''' Kubernetes — це відкрита платформа для автоматизації розгортання.; |-
| “Не потрібні resource limits”
| На dev усе функціонує.;<pre>

Я хочу Service для доступу.; | Використовувати external secrets і encryption.; Недолік
<pre>

[[ReplicaSet]]

{| class="wikitable"

Kubernetes не є собою прямою копією Borg, але він натхненний ідеями:

Custom Resource

* Google Kubernetes Engine;
* Amazon Elastic Kubernetes Service;
* Azure Kubernetes Service;
* DigitalOcean Kubernetes;
* Oracle Container Engine for Kubernetes;
* IBM Cloud Kubernetes Service;
* OVH Managed Kubernetes;
* Scaleway Kubernetes Kapsule.;[[Istio]]
<pre>
7.; |-
| PersistentVolumeClaim
| Запит застосунку на storage.; |-
| etcd — серце стану кластера
| Без backup etcd self-managed кластер має змогу бути важко відновити.; Значення
== 54. k3s ==
'''etcd''' — key-value storage, де Kubernetes зберігає стан кластера.;<syntaxhighlight lang="yaml">

 type: ClusterIP

actual state
Простими словами:
[[Secret]]

[[StatefulSet]]

</syntaxhighlight>
 environment: production
Схема:
__TOC__
Приклад:
 name: hello-pod
v
; Локальна розробка програмного забезпечення, маленькі deployments.; |}
template:
!; Kubernetes групує контейнери в logical units для зручного керування й service discovery.; |-
| Kubernetes
| Оркестрація контейнерів у кластері з багатьох машин.; |-
| Horizontal Pod Autoscaler
| Кількість Pod replicas.; |-
| 2020-ті
| Kubernetes стає стандартом для cloud-native інфраструктури, managed Kubernetes і platform engineering.; Kubernetes часто скорочують як '''K8s'''.;== 48. Monitoring ==

== 15. Declarative configuration ==

У Kubernetes істотно мати observability:

{{SEO
|title=Kubernetes — платформа оркестрації контейнерів
|description=Огляд Kubernetes: історія, Google, CNCF, контейнери, Pods, Nodes, Control Plane, Deployments, Services, Ingress, ConfigMaps, Secrets, Helm, Operators, autoscaling, переваги, недоліки, цікаві факти та порівняння з Docker Swarm, Nomad і OpenShift.
|keywords=Kubernetes, K8s, containers, container orchestration, Docker, containerd, Pods, Nodes, Deployments, Services, Ingress, Helm, Operators, CNCF, cloud-native, DevOps, platform engineering
}}

</div>
У Kubernetes є собою дуже важлива ідея:
{{DISPLAYTITLE:Kubernetes}}

Kubernetes — це не без ускладнень модний інструмент.; У etcd зберігається:

data:

  • Kubernetes official website
  • Kubernetes documentation
  • Kubernetes releases
  • Kubernetes 1.36 release information
  • Kubernetes 1.35 release information
  • Kubernetes blog: Kubernetes v1.35 Timbernetes
  • CNCF Kubernetes project page
  • CNCF: Kubernetes first graduated project
  • Kubernetes concepts documentation
  • Kubernetes API documentation
  • Helm documentation
  • Gateway API documentation
  • CNCF cloud-native ecosystem documentation

Кластер складається з:

На кожному Node має працювати log collector.;</syntaxhighlight>

Уявімо, що є собою застосунок:
;DevOps

Приклад:

6.; Контейнери

Скорочення читається так: Internet kind: Service Pod має змогу містити один або кілька контейнерів.; Kubernetes доцільно використовувати, якщо:

Без NetworkPolicy багато кластерів дозволяють Pods спілкуватися занадто вільно.; На Node зазвичай працюють: Вона додає:

|-
| Фокус
| Container orchestration і cloud-native platform.;

kind: Pod

environment

Якщо треба більше копій — масштабувати.; |-
| Складність
| Вища.;</div>

* Velero;
* etcd snapshots;
* storage snapshots;
* GitOps backup;
* cloud backup systems.; |-
| Kubernetes натхненний Google Borg
| Google мав багаторічний досвід cluster management.; Зберігати manifests у Git.; Описати Service.;== 45. CSI ==

metadata:

kubectl get nodes

* HTTP routing;
* TCP/UDP routing;
* ролей platform team і application team;
* multi-tenant кластерів;
* advanced traffic management.; |-
| Developer experience
| Потрібно будувати самому.; |-
| Kubernetes має величезну екосистему
| Helm, Operators, GitOps, service mesh, monitoring і policy tools стали окремими світами.; |-
| Pod — головна одиниця запуску
| Kubernetes не керує “без ускладнень контейнером”, а функціонує з Pod.; Офіційна сторінка релізів Kubernetes на травень 2026 показує Kubernetes 1.36.0 як latest release, випущений 22 квітня 2026 року, а додатково активні підтримувані гілки 1.35, 1.34 і 1.33.; v

Kubernetes дає інструменти, але дисципліна все одно потрібна.; |-
| 2018
| Kubernetes стає першим CNCF-проєктом, який отримав статус Graduated.;[[Ingress]]

== 39. Probes ==
 - containerPort: 80
 |
<div style="border-left: 6px solid #2e7d32; background: #e8f5e9; padding: 12px 16px; margin: 16px 0;">
 |
 ports:

Потрібно думати про:

containers:

old Pod 2 → new Pod 2

GitOps — підхід, де бажаний стан кластера зберігається в Git.; Призначення runtime kubectl get deployments

---

30.; Цікавий факт: labels — це “клей” Kubernetes

У 2026 році Kubernetes залишається одним із головних стандартів cloud-native інфраструктури.; |-

2000-ті Google розвиває внутрішні системи керування кластерами, зокрема Borg.;</syntaxhighlight>
  • автоматизація процесів deployment;
  • масштабування;
  • self-healing;
  • service discovery;
  • rolling updates;
  • declarative configuration;
  • велика програмний пакет;
  • cloud portability;
  • GitOps;
  • Operators;
  • managed Kubernetes у major clouds.;== 4.; історичний розвиток ==
v

Kubernetes надає можливість оновлювати застосунок поступово.; Docker і Kubernetes часто плутають.; deployment.yaml Pods можуть створюватися й зникати.; Він має змогу працювати з containerd та іншими CRI-compatible runtime-ами.; Приклад:

Популярність Фактичний стандарт індустрії.; Він каже:

71. Kubernetes vs Serverless

24. Gateway API

targetPort: 80

77.; Цікаві факти

name: app-config

64. Backup Kubernetes

32. Helm

Gateway API — сучасніший набір Kubernetes API для керування мережевим трафіком.; Контейнер — це ізольований бізнес-процес із власним filesystem, залежностями й середовищем виконання.; * cosign;

  • Sigstore;
  • Trivy;
  • Grype;
  • Syft;
  • SLSA;
  • Notation.; |-
2015 Kubernetes передають до Cloud Native Computing Foundation.; metadata:

Основні компоненти:

  • CI/CD;
  • GitOps;
  • registry;
  • ingress;
  • cert-manager;
  • monitoring;
  • logging;
  • secrets management;
  • policy;
  • developer portal;
  • templates;
  • platform documentation.; |}
У Kubernetes головна одиниця — Pod.; |}

'''Pod''' — найменша одиниця запуску в Kubernetes.; |-
| Debugging складніший
| Проблеми можуть бути на рівні app, Pod, Node, CNI, CSI, DNS, Ingress або cloud.; Зібрати container image.; app: web

== 35.; Цікавий факт: Kubernetes став “операційною системою датацентру” ==

== 1.; Загальний характеристика ==

== 51. Kustomize ==

* Calico;
* Cilium;
* Flannel;
* Weave Net;
* Antrea;
* cloud provider CNI.; Pod Security Standards визначають рівні безпеки Pod-ів:

!; Приклади:
<pre>
 ports:
Простими словами:
 name: web
 +--> Worker Node 1
!; 1.; Kubernetes
Gateway API поступово стає важливим стандартом у cloud-native networking.;[[K8s]]

* OPA Gatekeeper;
* Kyverno;
* built-in admission controllers.; |-
| Потребує досвіду
| Networking, storage, security і observability непрості.; |-
| PersistentVolume
| Ресурс storage у кластері.; Приклад:
apiVersion: v1
metadata:

== 17. Deployment ==

Service mesh має змогу давати:

kubectl describe pod pod-name

<pre>

* ізолювати namespaces;
* обмежити доступ до databases;
* дозволити тільки потрібний трафік;
* зменшити blast radius;
* будувати zero trust-підхід.; selector:

spec:

old Pod 1 → new Pod 1

Це спосіб мислити про інфраструктуру як про живу систему.; Kubernetes Cluster
the operating system for the cloud

type: Opaque

36. Autoscaling

dev/

а реально функціонує тільки 2, Kubernetes створить ще один.; |-

startupProbe Менша.; |- Навчання Складніше.;== 13.; Цікавий факт: Kubernetes не запускає “без ускладнень контейнер”, він запускає Pod ==
  • Role;
  • ClusterRole;
  • RoleBinding;
  • ClusterRoleBinding;
  • ServiceAccount.; Він керує тим, хто що має змогу робити в кластері.; |-
Kubernetes декларативний Ви описуєте бажаний стан, а controllers намагаються його підтримувати.; Real application resources ;Prometheus
  • організовувати ресурси;
  • розділяти команди;
  • задавати quotas;
  • налаштовувати RBAC;
  • уникати хаосу в великих кластерах.; Критерій

82.; Джерела

spec:
; Приклади CNI-рішень:
!; |}

== 67. Kubernetes vs Docker Compose ==

Приклад:
Operator Controller
apiVersion: v1
|-
| Складність
| Має багато понять, компонентів і edge cases.; |-
| Scaling
| Потужний.; {| class="wikitable"
!;<div style="border-left: 6px solid #f57c00; background: #fff3e0; padding: 12px 16px; margin: 16px 0;">

Backup Kubernetes — це не тільки backup Pods.; 9.; Приклад:

; overlays/
  • створити database cluster;
  • зробити backup;
  • виконати restore;
  • оновити версію;
  • масштабувати;
  • перевірити health;
  • виконати failover.; Namespace надає можливість логічно розділяти ресурси в кластері.; |-
Найкращий сценарій Складні платформи й довгоживучі services.; Але має змогу бути:

Search / dashboards / alerts

Kubernetes став open source-версією багатьох цих ідей для всього світу.; app: web

; kubectl exec -it pod-name -- sh
selector:

Kubernetes бере на себе питання:

Kubernetes найкраще підходить командам, які мають достатньо складні containerized workloads, хочуть автоматизувати інфраструктуру, масштабувати сервіси, будувати cloud-native платформу й готові інвестувати в DevOps, security та observability.; Для збереження даних Kubernetes використовує volumes.; |-
| Rolling updates
| надає можливість оновлювати застосунки поступово.; |-
| Enterprise adoption
| Дуже висока.;

worker

83.; Див.; додатково

Node log collector

<syntaxhighlight lang="yaml">
Це називають reconciliation loop.; Критерій

* Fluent Bit;
* Fluentd;
* Vector;
* Loki;
* Elasticsearch / OpenSearch;
* Cloud logging services.; :contentReference [oaicite:2]{index=2}

Admission controllers перевіряють або змінюють запити до Kubernetes API перед створенням об'єктів.; Налаштувати monitoring і logs.; | Enterprise Kubernetes platform.;[[Flux]]
переважні аспекти:
Він має змогу:
kubectl get pods
 containers:

2.; | General workload orchestrator.; |-
| програмний пакет
| Величезна.; !; |-
| YAML-складність
| Manifests можуть розростатися.;<syntaxhighlight lang="yaml">

Щоб отримати зручну платформу, часто додають:

Kubernetes дуже потужний, але він не простий.; Використовувати CI/CD або GitOps.; До Kubernetes у Google вже була внутрішня платформа '''Borg''', яка роками керувала величезними production workload-ами.; |-
| Найкращий сценарій
| Cloud-native Kubernetes ecosystem.; * etcd;
* manifests;
* CRDs;
* persistent volumes;
* secrets;
* Helm releases;
* GitOps repositories;
* external databases;
* cloud resources.; | Простіше.; CNI відповідає за:
<pre>
як ілюстрація:
'''Service''' дає стабільний спосіб доступу до Pods.; Він розвиває ідеї Ingress і дає більш гнучку модель для:
== 78.; Людське пояснення: чим є собою Kubernetes ==
Це зменшує downtime.; * фізичним сервером;
* віртуальною машиною;
* cloud instance;
* edge-пристроєм у спеціальних сценаріях.; Kubernetes часто називають:

libraries

* у вас один маленький сайт;
* команда не має DevOps-досвіду;
* немає часу підтримувати кластер;
* workload простий;
* Docker Compose достатньо;
* managed PaaS простіший;
* бюджет малий;
* потрібен максимально простий deployment;
* складність Kubernetes перевищує користь.; Kubernetes

== 42. RBAC ==
[[Grafana]]
</div>
 image: nginx:latest
== 65.; переважні аспекти Kubernetes ==
 +--> Service B
 LOG_LEVEL: info
'''Ingress''' керує HTTP/HTTPS-доступом до сервісів усередині кластера.; Тобто Kubernetes став шаром, який перетворює багато серверів на одну керовану платформу.;</div>

* кластер як єдиний ресурс;
* декларативний стан;
* автоматичне розміщення workload-ів;
* self-healing;
* масштабування;
* service discovery;
* scheduling.;== 46. Service Mesh ==
== 14. YAML manifests ==

CSI — Container Storage Interface.; Схема:

  • Prometheus;
  • Grafana;
  • Loki;
  • Tempo;
  • Jaeger;
  • OpenTelemetry;
  • Alertmanager;
  • Kubernetes events;
  • kube-state-metrics.; | Нижча для простих сценаріїв.; |-
Self-healing Розвинений.; Приклад: ; app: web
Volume Том, доступний Pod-у.;== 57.; Цікавий факт: Kubernetes сам по собі — це не “готова PaaS” ==

16.; Цікавий факт: Kubernetes постійно “порівнює мрію з реальністю”

Для production бажано рухатися в бік restricted, якщо застосунок це надає можливість.;</syntaxhighlight>

apiVersion: v1

Операційні системи

Ingress Controller

matchLabels:

8.; Кластер

selector:
 metadata:
 |
<pre>

Його використовують у:

}

Інструменти:

18. ReplicaSet

Інструменти:

StatefulSet дає:
 |
На одному сервері це ще можна запустити вручну.; Роль

 memory: "512Mi"

Git repository

* використовувати підтримувані версії Kubernetes;
* регулярно оновлювати cluster components;
* налаштовувати RBAC за принципом least privilege;
* не використовувати default ServiceAccount без потреби;
* обмежувати privileged containers;
* використовувати NetworkPolicy;
* вмикати encryption at rest для Secrets;
* не зберігати Secrets у Git;
* сканувати container images;
* використовувати pinned image tags або digests;
* налаштувати audit logs;
* використовувати admission policies;
* робити backup etcd і persistent data;
* налаштувати monitoring і alerts;
* обмежувати доступ до Kubernetes API.; Пояснення
spec:
== 62.; Цікавий факт: у Kubernetes найслабше місце часто не Kubernetes, а бізнес-процес навколо нього ==

!; |-
| Операційна складність
| Вища.; |-
| Складність
| Вища.; |-
| “latest image нормально”
| без зайвих зусиль оновлювати.; app: web
 app: web
!; |}

== 29.; Labels і selectors ==

3.; |-
| Scaling
| підтримує роботу горизонтальне й інші види масштабування.; kubelet робить це на конкретному Node.;[[Gateway API]]

Його сила розкривається тоді, коли є собою команда, процеси, observability, security, GitOps або CI/CD і розуміння, навіщо кластер взагалі потрібен.; Чому виникає
 cpu: "500m"

kubelet — це місцевий менеджер на кожному сервері.; Kubernetes має probes для перевірки стану застосунку.; |-
| 2026
| Виходить Kubernetes 1.36, актуальна гілка на травень 2026 року.; '''Worker Node''' — машина, на якій запускаються Pods.; Для production потрібно налаштовувати RBAC, encryption at rest, external secrets, secret rotation і доступ за принципом least privilege.; OpenShift
apiVersion: apps/v1
 image: nginx:1.27
Типи Service:
'''k3s''' — легкий Kubernetes-дистрибутив.; |-
| etcd
| Key-value storage для стану кластера.; Додати probes.; Новачки іноді думають:

* logs;
* metrics;
* traces;
* events;
* dashboards;
* alerts;
* distributed tracing.; | Він вирішує orchestration, але додає операційну складність.; |}

Kubernetes — це фундамент, але будинок треба ще збудувати.; Факт
[[Docker]]
'''kubectl''' — головна командна утиліта Kubernetes.; message queue

Не так:
 app: web
kind: PostgreSQLCluster
як ілюстрація Service знаходить Pods через selector:
kubectl get pods
 +--> Pod
apiVersion: v1
Вона сприяє запускати застосунки, які складаються з контейнерів, на групі серверів або віртуальних машин.; але не має змогу видаляти secrets у production.; | Containers, VMs, binaries, batch.; 1 Pod = 1 main container

Багато проблем виникає не через сам Kubernetes, а через:

4.; '''RBAC''' — Role-Based Access Control.; Призначення

== 23. Ingress ==

<pre>

  • objects;
  • configuration;
  • cluster state;
  • metadata;
  • secrets у зашифрованому або незашифрованому вигляді залежно від конфігурація.; |}
limits:

33. Operators

 - name: web
Для Kubernetes важлива безпека supply chain:
|-
| Масштаб
| Кластери, production, cloud-native.; * Linux керує процесами на одній машині;
* Kubernetes керує контейнерами на кластері машин.; configuration
<pre>
Dev і prod можуть мати різні replicas, images, labels, resources.; Зазвичай користувач системи напряму не створює ReplicaSet, а використовує Deployment.;[[etcd]]

<syntaxhighlight lang="yaml">

kubectl rollout status deployment/web

* edge;
* home lab;
* IoT;
* маленьких кластерів;
* testing;
* developer labs;
* lightweight environments.; Критерій
Kubernetes виріс із досвіду Google у запуску великих production-систем.; Що масштабує

* maxUnavailable;
* maxSurge;
* rollout status;
* rollback.; !; |}

Основні поняття:

[[GitOps]]

Service не “знає” конкретні Pod names.; Приклади:
{| class="wikitable"

database

У мене є собою бажаний стан.; | Часто автоматичне.; Kustomize — інструмент для конфігурація Kubernetes manifests без шаблонізації як у Helm.; Я хочу rollout нової версії.; сфера застосування: Argo CD Він надає можливість встановлювати застосунки як charts.; Описати Deployment.; +--> Control Plane

Рекомендовані практики:

У мене є собою сервер, я зайду на нього по SSH і щось виправлю.; Контейнер надає можливість упакувати застосунок разом із тим, що йому потрібно:

63. etcd

Service дає стабільне ім'я й адресу.;
'''DaemonSet''' запускає Pod на кожному Node або на групі Nodes.; :contentReference [oaicite:1]{index=1}
<pre>
</pre>
 - port: 80
 name: db-secret
Окремо варто відзначити масштабування і керування контейнеризованими застосунками.; Якщо Pod видалити, інформаційні дані всередині контейнера можуть зникнути.; Тип
</div>
Helm корисний для:
</pre>
base/
!;</pre>

Потім кластер поводиться дивно:

CNCF зазначає, що Kubernetes був прийнятий до CNCF 10 березня 2016 року на рівні Incubating, а 6 березня 2018 року перейшов до Graduated maturity level.; | Нижча.; - port: 80

* log agents;
* monitoring agents;
* network plugins;
* storage agents;
* security agents;
* node-level daemons.;</pre>

Приклади:

<pre>

 - containerPort: 80

Ingress надає можливість: Cloud-native

kubelet — агент на кожному Node.; |}

Secret зберігає чутливі інформаційні дані:

  • є собою багато сервісів;
  • потрібне масштабування;
  • потрібні rolling updates;
  • потрібна self-healing інфраструктура;
  • команда функціонує з containers;
  • потрібна cloud portability;
  • потрібна GitOps-модель;
  • є собою platform engineering-команда;
  • потрібні operators;
  • потрібна multi-tenant платформа;
  • застосунок достатньо складний, щоб виправдати кластер.; | Простий.; сфера застосування:
template:

ReplicaSet підтримує роботу потрібну кількість копій Pod.; Ключові етапи: OpenShift — enterprise Kubernetes-платформа від Red Hat.; !; Компонент

helm install my-nginx bitnami/nginx
Kubernetes застосовується для:
!;== 66.; Недоліки Kubernetes ==
{| class="wikitable"
== 49. Logging ==
{| class="wikitable"
== 75.; Базовий хороший workflow ==

Їх IP змінюється.; Тестувати rollout і rollback.; Docker Swarm
'''Job''' запускає задачу до завершення.; | Нижча.; | Використовувати namespaces для організації.; |-
| Portability
| Вища між середовищами.; kubectl get services
== 40.; Resource requests і limits ==
'''CRD''' надає можливість додавати нові типи ресурсів у Kubernetes.; !; |-
| “Поставлю все в default namespace”
| Так простіше на старті.; |-
| 2015
| Виходить Kubernetes 1.0.;
+--> Worker Node 3

76.; Мінімальний приклад Deployment + Service

Приклад:

5.; Цікавий факт: Kubernetes народився з досвіду Google Borg

Назва Kubernetes
Скорочення K8s
Тип Платформа оркестрації контейнерів
Початковий розробник Google
Поточна програмний пакет Cloud Native Computing Foundation, спільнота, vendors
Мова реалізації Go
Перший анонс 2014 рік
Перший стабільний реліз 1.0 2015 рік
CNCF статус Graduated
Основна одиниця запуску Pod
ключовий CLI kubectl
Конфігурація YAML / JSON manifests
Актуальна стабільна гілка на травень 2026 Kubernetes 1.36
Останній реліз у release history на травень 2026 Kubernetes 1.36.0, випущений 22 квітня 2026 року

kind: Deployment

spec:

60. Admission Controllers

Operator має змогу знати, як: kubectl apply -f web.yaml

prod/

kubectl metadata: </syntaxhighlight>

v

Helm — пакетний менеджер для Kubernetes.; Це оркестратор: він керує контейнерами, мережами, конфігурацією, storage, rollout-ами й станом застосунків у кластері.; |-

StorageClass Набагато нижча.;== 53.; Kubernetes дистрибутиви == Якщо виходить нова реліз — оновити поступово.;

 +--> Worker Node 2

spec:

* що має бути запущено;
* де запускати Pods;
* чи здорові Nodes;
* чи треба створити нові Pods;
* чи треба перезапустити щось;
* чи треба оновити стан.;

Deployment — один із найпопулярніших Kubernetes-об'єктів.;ConfigMap frontend

memory: "128Mi"

spec: Backup etcd — критично важливий для self-managed кластерів.; Сучасний Kubernetes не потребує саме Docker як runtime.; |}

CNCF

Типові інструменти:

Kubernetes — це відкрита платформа оркестрації контейнерів, яка стала фундаментом cloud-native інфраструктури.; * privileged;

  • baseline;
  • restricted.; | Для production краще GitOps/CI/CD.; |-
Складність Вища.; Бо іноді одному застосунку потрібен допоміжний контейнер:

72.; Коли варто використовувати Kubernetes

  • public cloud;
  • private cloud;
  • hybrid cloud;
  • multi-cloud;
  • enterprise;
  • startups;
  • DevOps;
  • platform engineering;
  • AI/ML platforms;
  • edge;
  • SaaS;
  • fintech;
  • e-commerce;
  • internal developer platforms.; * перезапустити контейнер;
  • створити новий Pod;
  • перенести workload на інший Node;
  • прибрати unhealthy Pod із Service;
  • підтримувати потрібну кількість replicas;
  • реагувати на failed health checks.; * environment variables;
  • config files;
  • application settings;
  • feature flags;
  • non-secret parameters.; | Багато готових platform features.; * vanilla Kubernetes;
  • OpenShift;
  • Rancher / RKE2;
  • k3s;
  • MicroK8s;
  • Talos Linux + Kubernetes;
  • Tanzu Kubernetes;
  • Charmed Kubernetes;
  • kubeadm clusters;
  • managed cloud Kubernetes.;== 11. kubelet ==
  • cloud block storage;
  • network storage;
  • distributed storage;
  • Ceph;
  • Longhorn;
  • EBS;
  • Persistent Disks;
  • Azure Disks.; * web applications;
  • microservices;
  • API;
  • SaaS-платформ;
  • cloud-native застосунків;
  • CI/CD;
  • machine learning workloads;
  • batch jobs;
  • edge computing;
  • platform engineering;
  • DevOps;
  • hybrid cloud;
  • multi-cloud;
  • internal developer platforms.;== 25. ConfigMap ==
+--> Service A

Більше трафіку → більше Pods.; |-

Declarative model - “Ingress сам усе зробить” Менша, але сильна в HashiCorp-екосистемі.; офіційно затверджений сайт Kubernetes описує його як open source system for automating deployment, scaling, and management of containerized applications.; |- NodePort У production краще pinned versions.; * висока складність;
  • потреба в досвідченій команді;
  • складні networking і storage;
  • security треба налаштовувати уважно;
  • observability обов'язкова;
  • для маленьких проєктів має змогу бути overkill;
  • YAML і CRDs можуть розростатися;
  • кластер сам по собі не робить платформу зручною.; Docker Compose

22. Service

; Kubernetes
containers:
kubectl rollout undo deployment/web application code
- Cluster Autoscaler Обмежений.; Labels — це key-value мітки.; Kubernetes - “Secrets можна зберігати в Git” YAML здається зручним.; old Pod 3 → new Pod 3

Kubernetes cluster — це набір машин, які разом запускають застосунки.; Для чого metadata:


 labels:
desired state
[[Helm]]

Kubernetes має змогу бути не найкращим варіантом, якщо:

 name: web-service

Перевірка:

metadata:

43. NetworkPolicy

ports:

1 Pod = app container + sidecar container

  • templating YAML;
  • versioned releases;
  • повторного встановлення;
  • складних застосунків;
  • values.yaml;
  • DevOps workflows.; selector:
Тип Open source orchestrator.; застосовується для:

8.; * неправильні Docker images;

  • secrets у Git;
  • відсутність limits;
  • занадто широкі RBAC-права;
  • відкритий dashboard;
  • відсутність NetworkPolicy;
  • ручні зміни в production;
  • відсутність backup etcd;
  • поганий monitoring;
  • невідомі third-party charts.;== 7.; Docker і Kubernetes ==

Багато зв'язків у Kubernetes працюють через labels.; |-

Service discovery - Небезпечні defaults у неправильних руках Без RBAC, NetworkPolicy і hardening можна створити ризики.; !; APP_MODE: production

Чому?; Помилка Pods можуть змінюватися, але labels залишають логічний зв'язок.; | Має більш opinionated security defaults.; |-

kube-scheduler Вирішує, на який Node поставити Pod.; Тип

Приклади:

CNI-плагіни забезпечують мережу для Pods.; Новачки часто запускають Pods без requests і limits.; |}

28. Namespace

Deployment

81.; Висновок

  • Control Plane;
  • Worker Nodes;
  • мережі;
  • storage;
  • runtime-ів;
  • системних компонентів;
  • workload-ів користувача.;CRD

Docker Compose

stringData: CNI — Container Network Interface.; ports:

- name: web

Йому треба описувати очікування.; | Потрібен Ingress Controller.; cache

Це робить систему гнучкою.; Приклад:

38. Self-healing

CRD перетворює Kubernetes із простого orchestrator-а на платформу для власних API.; |-

Networking Складніший, але гнучкий.; name: web

DaemonSet це гарантує.; |-

Безпека Local dev або невеликі сервіси.; Deployment керує запуском replicated application.;Контейнери



* opinionated platform;
* developer tools;
* security defaults;
* integrated registry;
* routes;
* operators;
* enterprise support;
* OpenShift-specific workflows.; |-
Kubernetes написаний мовою Go Це одна з причин популярності Go в cloud-native світі.; tier: frontend

У Kubernetes logs зазвичай збирають централізовано.; Запушити image у registry.;

6.; Об'єкт
ClusterIP Доступ тільки всередині кластера.;
Інструменти:
Я хочу ConfigMap з такими налаштуваннями.; Критерій