!; |}
Багато хмар пропонують 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. Autoscalingdev/
а реально функціонує тільки 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:
|
Його використовують у:
|
}
Інструменти:
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. NamespaceDeployment
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 з такими налаштуваннями.; Критерій
|
|
|
|
|
|
|
|