| Фокус
|
Container orchestration і cloud-native platform. ! Його використовують у:
Чому це цікаво: Kubernetes став фактичним стандартом cloud-native інфраструктури: він дає можливість запускати застосунки не на одному сервері, а на цілому кластері машин, автоматизовано перезапускати зламані контейнери, масштабувати сервіси й керувати складними системами декларативно. Пояснення
OpenShift
kubectl get pods
v
libraries
Потім кластер поводиться дивно:
29. Labels і selectors
kubectl apply -f deployment.yaml
app: web
name: web
Я хочу rollout нової версії. ! |-
|
Вартість
|
Pods можуть створюватися й зникати. | Комерційна enterprise-платформа. Serverless
- privileged;
- baseline;
- restricted. tier: frontend
12. Pod
Nomad
|
-
|
etcd — серце стану кластера
|
Без backup etcd self-managed кластер здатна бути важко відновити. kind: Pod
old Pod 3 → new Pod 3
|
-
|
ERP-платформа
|
-
|
Kubernetes написаний мовою Go
|
Це одна з причин популярності Go в cloud-native світі.2. CNCF зазначає, що Kubernetes був прийнятий до CNCF 10 березня 2016 року на рівні Incubating, а 6 березня 2018 року перейшов до Graduated maturity level. app: web
Він дає можливість:
labels:
== 33. Operators ==
desired state
Search / dashboards / alerts
[[DevOps]]
Він розвиває ідеї Ingress і дає більш гнучку модель для:
6. Рік
* passwords;
* tokens;
* API keys;
* certificates;
* private keys. | У production limits і requests дуже важливі. |-
| “kubectl apply вручну — достатньо”
| На старті це оперативно. Призначення
Схема:
== 18. ReplicaSet ==
Приклади:
Контейнер дає можливість упакувати застосунок разом із тим, що йому потрібно:
Багато зв'язків у Kubernetes працюють через labels. |-
| Складність
| Вища. prod/
Kubernetes часто скорочують як '''K8s'''. * стабільні Pod names;
* стабільну identity;
* ordered rollout;
* stable storage association. |-
| Scaling
| підтримує горизонтальне й інші види масштабування. |-
| containerd
| Container runtime, який фактично запускає контейнери. selector:
v
NetworkPolicy оптимізує:
== 80. Kubernetes у сучасній інфраструктурі ==
офіційний сайт Kubernetes описує його як open source system for automating deployment, scaling, and management of containerized applications. |}
== 1. Загальний SEO-опис ==
Не так:
! Backup etcd — критично важливий для self-managed кластерів. Підходить для:
'''MicroK8s''' — Kubernetes-дистрибуція від Canonical. kubelet — це місцевий менеджер на кожному сервері. Вона оптимізує запускати застосунки, які складаються з контейнерів, на групі серверів або віртуальних машин. |}
== 63. etcd ==
containers:
limits:
<syntaxhighlight lang="yaml">
Kubernetes здатна бути не найкращим варіантом, якщо:
|-
| Контроль
| Високий. |-
| Безпека
| Залежить від налаштувань. Перевірка:
* Istio;
* Linkerd;
* Consul service mesh;
* Kuma.<pre>
kubectl apply -f web.yaml
Приклад:
== 8. Кластер ==
runtime
<syntaxhighlight lang="yaml">
! Log storage
Їх IP змінюється. kind: KafkaTopic
Kubernetes дає можливість оновлювати застосунок поступово. ! Окремо варто відзначити які мають достатньо складні containerized workloads, хочуть цифровізувати інфраструктуру, масштабувати сервіси, будувати cloud-native платформу й готові інвестувати в DevOps, security і observability. |-
| Складність
| Вища. Docker Swarm
== 62. Цікавий факт: у Kubernetes найслабше місце часто не Kubernetes, а бізнес-процес навколо нього ==
CNI-плагіни забезпечують мережу для Pods.== 54. k3s ==
* kubelet;
* container runtime;
* kube-proxy або CNI/eBPF components;
* system agents;
* Pods. | Нижчий, більше керує provider. | Часто автоматичне. | Набагато нижча.== 30. Цікавий факт: labels — це “клей” Kubernetes ==
</div>
environment
[[Gateway API]]
metadata:
ports:
- name: web
- один Pod з'їдає CPU;
- інший вилітає через memory;
- scheduler погано розміщує workload-и;
- autoscaling функціонує нестабільно;
- production стає непередбачуваним.
* Velero;
* etcd snapshots;
* storage snapshots;
* GitOps backup;
* cloud backup systems.{{DISPLAYTITLE:Kubernetes}}
</pre>
Головні обмеження:
Kubernetes зазвичай налаштовують через YAML-файли. | Обмежений. '''StatefulSet''' застосовують, коли потрібно для stateful-застосунків. |-
| StorageClass
| SEO-опис типу storage і способу provision-інгу. Node здатна бути:
- containerPort: 80
kind: Service
== 40. Resource requests і limits ==
Але якщо серверів багато, контейнерів сотні, версії змінюються щодня, частина машин падає, а трафік росте — ручне керування стає хаосом. Критерій
<syntaxhighlight lang="yaml">
Що варто моніторити:
[[Cloud-native]]
<pre>
Namespace оптимізує:
image: nginx:latest
Це оркестратор: він керує контейнерами, мережами, конфігурацією, storage, rollout-ами й станом застосунків у кластері. Nomad
{| class="wikitable"
'''критично:''' Kubernetes Secret — це не магічний сейф. |-
| 2026
| Виходить Kubernetes 1.36, актуальна гілка на травень 2026 року. | Має більш opinionated security defaults. |-
| Популярність
| Фактичний стандарт індустрії. deployment.yaml
[[Grafana]]
Щоб отримати зручну платформу, часто додають:
Контейнери зазвичай тимчасові. | Red Hat. | Використовувати namespaces для організації. |-
| readinessProbe
| Чи готовий Pod приймати трафік. | Простий.</pre>
* Fluent Bit;
* Fluentd;
* Vector;
* Loki;
* Elasticsearch / OpenSearch;
* Cloud logging services. |-
| Declarative model
| Описує бажаний стан через manifests. * vanilla Kubernetes;
* OpenShift;
* Rancher / RKE2;
* k3s;
* MicroK8s;
* Talos Linux + Kubernetes;
* Tanzu Kubernetes;
* Charmed Kubernetes;
* kubeadm clusters;
* managed cloud Kubernetes. Скорочення читається так:
Уявімо, що виступає як застосунок:
* templating YAML;
* versioned releases;
* повторного встановлення;
* складних застосунків;
* values.yaml;
* DevOps workflows. |}
1 Pod = app container + sidecar container
apiVersion: v1
Але здатна бути:
Я хочу 3 копії цього застосунку. Для production потрібно налаштовувати RBAC, encryption at rest, external secrets, secret rotation і доступ за принципом least privilege. * Linux керує процесами на одній машині;
* Kubernetes керує контейнерами на кластері машин. |}
<pre>
Простими словами:
[[Операційні системи]]
<pre>
selector:
Популярні інструменти:
== 16. Цікавий факт: Kubernetes постійно “порівнює мрію з реальністю” ==
Приклад Pod:
Офіційна сторінка релізів Kubernetes на травень 2026 показує Kubernetes 1.36.0 як latest release, випущений 22 квітня 2026 року, а так само активні підтримувані гілки 1.35, 1.34 і 1.33. |-
| startupProbe
| Чи застосунок ще стартує і йому треба дати час. |-
| Workloads
| Контейнери, batch, extensions. * default;
* kube-system;
* dev;
* staging;
* production;
* monitoring;
* team-a;
* team-b. 4. :contentReference [oaicite:1]{index=1}
8. | Потрібен Ingress Controller.<pre>
Інструменти:
Kubernetes — це не без зусиль модний інструмент. type: ClusterIP
message queue
|-
| “Kubernetes вирішить усі проблеми”
| Його часто рекламують як стандарт. має бути 3 Pods
'''kubelet''' — агент на кожному Node. |-
| Scaling
| Потужний. '''ReplicaSet''' підтримує потрібну кількість копій Pod. |
Kubernetes підтримує різні види autoscaling.<pre>
== 50. GitOps ==
template:
---
Загальна схема:
+--> Service A
CNI — Container Network Interface. | Часто простіший core. Kubernetes
До Kubernetes у Google вже була внутрішня платформа Borg, яка роками керувала величезними production workload-ами. |-
|
Вартість
|
Кластери потребують ресурсів і часу команди.== 65. конкурентні переваги Kubernetes ==
- у вас один маленький сайт;
- команда не має DevOps-досвіду;
- немає часу підтримувати кластер;
- workload простий;
- Docker Compose достатньо;
- managed PaaS простіший;
- бюджет малий;
- потрібен максимально простий deployment;
- складність Kubernetes перевищує користь. Об'єкт
Потрібно думати про:
developer здатна дивитися Pods у namespace dev,
targetPort: 80
v
Його головні конкурентні переваги:
CSI дає можливість Kubernetes працювати з різними storage systems. |-
|
Pod — головна одиниця запуску
|
Kubernetes не керує “без зусиль контейнером”, а функціонує з Pod.
|
</syntaxhighlight>
Приклад:
Control Plane каже, що треба зробити. metadata:
11.Argo CD
Приклади:
[[Flux]]
! |-
| Cluster Autoscaler
| Кількість Nodes у кластері.== 82. Джерела ==
! Чому виникає
Pod дає можливість групувати такі контейнери як одну логічну одиницю. cpu: "100m"
vs
|-
| Тип
| Open source orchestrator.== 11. kubelet ==
Він дає можливість встановлювати застосунки як charts. |-
| Найкращий сценарій
| Production container platform. '''Kustomize''' — інструмент для конфігурація Kubernetes manifests без шаблонізації як у Helm. kind: Certificate
* 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.== 26. Secret ==
* організовувати ресурси;
* розділяти команди;
* задавати quotas;
* налаштовувати RBAC;
* уникати хаосу в великих кластерах. Додати ConfigMap і Secret. Якщо Pod упав, Kubernetes спробує його замінити.== 9. Control Plane ==
! {| class="wikitable"
* висока складність;
* потреба в досвідченій команді;
* складні networking і storage;
* security треба налаштовувати уважно;
* observability обов'язкова;
* для маленьких проєктів здатна бути overkill;
* YAML і CRDs можуть розростатися;
* кластер сам по собі не робить платформу зручною. matchLabels:
<pre>
це відкрита платформа; так само реалізовано масштабування та керування контейнеризованими застосунками виступає ключовою рисою автоматизації розгортання забезпечується через '''Головна ідея:''' Kubernetes. |-
| Service discovery
| Дає стабільний доступ до змінних Pods. Тип
<pre>
== 44. CNI ==
|-
| Docker
| Створення, запуск і керування контейнерами на окремій машині. | Менша. name: web-service
{| class="wikitable"
kind: RedisCluster
10.== 78. Людське пояснення: чим виступає як Kubernetes ==
* перезапустити контейнер;
* створити новий Pod;
* перенести workload на інший Node;
* прибрати unhealthy Pod із Service;
* підтримувати потрібну кількість replicas;
* реагувати на failed health checks.<pre>
Для production бажано рухатися в бік restricted, якщо застосунок це дає можливість. Недолік
Новачки часто запускають Pods без requests і limits. SEO-опис
|
-
|
LoadBalancer
|
Створює зовнішній load balancer через cloud provider. :contentReference [oaicite:3]{index=3}
</syntaxhighlight>
metadata:
|
|
memory: "128Mi"
Типові інструменти:
43. NetworkPolicy
Job запускає задачу до завершення.== 32. Helm ==
Kubernetes сильний, але він не телепат. Додати probes. {| class="wikitable"
configuration
Kubernetes найкраще підходить командам. Без NetworkPolicy багато кластерів дозволяють Pods спілкуватися занадто вільно. replicas: 3
66. Недоліки Kubernetes
+--> Worker Node 1
|-
| Оркестрація контейнерів
| Керує запуском контейнерів у кластері. Роль
* 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.== 14. YAML manifests ==
</syntaxhighlight>
Це спосіб мислити про інфраструктуру як про живу систему. Це робить систему гнучкою.== 57. Цікавий факт: Kubernetes сам по собі — це не “готова PaaS” ==
[[CRD]]
== Див. 83. так само ==
== 13. Цікавий факт: Kubernetes не запускає “без зусиль контейнер”, він запускає Pod ==
{| class="wikitable"
Вона додає:
kubectl logs pod-name
actual state
dev/
app: web
<pre>
Бо іноді одному застосунку потрібен допоміжний контейнер:
81. Висновок
Kubernetes дуже потужний, але він не простий. Docker Compose
- Role;
- ClusterRole;
- RoleBinding;
- ClusterRoleBinding;
- ServiceAccount. Факт
- local development;
- edge;
- навчання;
- small clusters;
- Ubuntu-based workflows;
- CI/CD labs. Критерій
kind: Deployment
kubectl get deployments
|
Його сила розкривається тоді, коли виступає як команда, процеси, observability, security, GitOps або CI/CD і розуміння, навіщо кластер взагалі потрібен. |-
|
Developer experience
|
}
Приклад:
application code
v
Основні поняття:
|
| масштаб бізнесу
|
Кластери, production, cloud-native. kubectl rollout status deployment/web
+--> Worker Node 2
Operator здатна знати, як:
61. Supply chain security
'''NetworkPolicy''' дає можливість обмежувати мережевий трафік між Pods. |}
|
Local dev або невеликі сервіси. Додати Ingress або Gateway, якщо потрібен зовнішній доступ. memory: "512Mi"
У мене виступає як бажаний стан.== 3. Kubernetes простими словами ==
app: web
- Calico;
- Cilium;
- Flannel;
- Weave Net;
- Antrea;
- cloud provider CNI.
labels:
Рекомендовані практики:
== 73. Коли Kubernetes здатна бути не найкращим вибором ==
name: web
Це зменшує downtime. |}
spec:
23. Ingress
- виступає як багато сервісів;
- потрібне масштабування;
- потрібні rolling updates;
- потрібна self-healing інфраструктура;
- команда функціонує з containers;
- потрібна cloud portability;
- потрібна GitOps-модель;
- виступає як platform engineering-команда;
- потрібні operators;
- потрібна multi-tenant платформа;
- застосунок достатньо складний, щоб виправдати кластер.== 71. Kubernetes vs Serverless ==
selector:
застосовується для для:
|
<pre>
v
|
Kubernetes виріс із досвіду Google у запуску великих production-систем. Використовувати CI/CD або GitOps. |-
| KEDA
| Event-driven autoscaling для workloads. |-
| Найкращий сценарій
| Складні платформи й довгоживучі services.
image: nginx:1.27
! cpu: "500m"
* Argo CD;
* Flux;
* Helm;
* Kustomize. '''ConfigMap''' зберігає конфігурацію. |
41. Цікавий факт: Kubernetes не знає, скільки ресурсів треба вашому застосунку, якщо ви йому не скажете
|
metadata:
12.
</syntaxhighlight>
spec:
Kubernetes не створює саму ідею контейнерів, але керує їх запуском на багатьох машинах. |
Service mesh здатна давати:
64. Backup Kubernetes
Поставлю Kubernetes — і отримаю Heroku. |-
|
kube-controller-manager
|
Багато готових platform features. |}
CronJob запускає задачі за розкладом. metadata:
- batch processing;
- database migration;
- report generation;
- cleanup;
- backup task;
- scheduled sync. Приклад:
Service mesh — шар для керування сервісним трафіком. Я хочу ConfigMap з такими налаштуваннями. |-
|
2020-ті
|
Kubernetes стає стандартом для cloud-native інфраструктури, managed Kubernetes і platform engineering. +--> Worker Node 3
Secret зберігає чутливі інформаційні дані:
Custom Resource
Kubernetes cluster
- etcd;
- manifests;
- CRDs;
- persistent volumes;
- secrets;
- Helm releases;
- GitOps repositories;
- external databases;
- cloud resources. Ingress дає можливість:
Git repository
Якщо бажаний стан каже:
Admission controllers перевіряють або змінюють запити до Kubernetes API перед створенням об'єктів. Що масштабує
kubectl get nodes
Інструменти:
31. kubectl
spec:
name: app-config
apiVersion: apps/v1
Я хочу Service для доступу. ! * 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. | Нижча. |-
|
Kubernetes має величезну екосистему
|
-
|
Cloud-neutral
|
class="wikitable"
У Kubernetes критично задавати ресурси. Приклад:
як приклад:
k3s — легкий Kubernetes-дистрибутив. Новачки іноді думають:
ports:
Ingress
<pre>
name: web
<pre>
kubectl exec -it pod-name -- sh
[[ConfigMap]]
Зазвичай користувач системи напряму не створює ReplicaSet, а використовує Deployment. Зібрати container image. |-
|
PersistentVolume
|
Containers, VMs, binaries, batch. Приклади CNI-рішень:
Linux
Kubernetes функціонує декларативно. |-
|
Debugging складніший
|
-
|
“Ingress сам усе зробить”
|
Плутають API і controller. Deployment здатна контролювати:
containerd
- заборонити privileged containers;
- вимагати resource limits;
- вимагати labels;
- перевіряти image registry;
- застосовувати security policies;
- автоматизовано додавати sidecars. Налаштувати monitoring і logs. Описати Service. kind: Deployment
+--> ReplicaSet
app: web
Схема:
виступає як багато Kubernetes-дистрибутивів і платформ:
- name: hello
app: web
</syntaxhighlight>
|-
| ClusterIP
| Доступ тільки всередині кластера. * Pod networking;
* IP allocation;
* routing;
* network policy;
* іноді eBPF-функції. Deployment
backend API
== 21. Job і CronJob ==
== 47. Observability ==
На кожному Node має працювати log collector. * що має бути запущено;
* де запускати Pods;
* чи здорові Nodes;
* чи треба створити нові Pods;
* чи треба перезапустити щось;
* чи треба оновити стан. Зберігати manifests у Git. v
Приклади:
Kubernetes має self-healing-механізми. |-
| “Поставлю все в default namespace”
| Так простіше на старті. | Локальна розробка програмного забезпечення, маленькі deployments. Приклад ідеї:
== 48. Monitoring ==
Kubernetes дає інструменти, але дисципліна все одно потрібна.<div style="border-left: 6px solid #1565c0; background: #e3f2fd; padding: 12px 16px; margin: 16px 0;">
kubectl apply -f pod.yaml
* запускати кілька копій;
* робити rolling updates;
* робити rollback;
* контролювати версію;
* підтримувати потрібну кількість Pods;
* працювати через ReplicaSet. Тип
+--> Pod
|
}
GitOps — підхід, де бажаний стан кластера зберігається в Git. |-
|
Networking
|
Складніший, але гнучкий.
[[K8s]]
Service дає стабільне ім'я й адресу. Він:
У Docker люди часто думають контейнерами. | Для production краще GitOps/CI/CD. Kubernetes
containers:
* де запускати контейнери;
* скільки копій має працювати;
* що робити, якщо контейнер упав;
* як оновити застосунок без повного простою;
* як дати сервісу стабільну адресу;
* як передати конфігурацію;
* як підключити storage;
* як масштабувати навантаження;
* як керувати секретами;
* як описати бажаний стан системи. |-
| Portability
| Вища між середовищами. ! Критерій
[[ReplicaSet]]
Приклад:
== 5. Цікавий факт: Kubernetes народився з досвіду Google Borg ==
CNI відповідає за:
</syntaxhighlight>
Приклади:
як приклад:
'''CSI''' — Container Storage Interface. |-
| ExternalName
| Дає DNS alias на зовнішній сервіс.<pre>
'''Worker Node''' — машина, на якій запускаються Pods. * CI/CD;
* GitOps;
* registry;
* ingress;
* cert-manager;
* monitoring;
* logging;
* secrets management;
* policy;
* developer portal;
* templates;
* platform documentation. |-
| Kubernetes натхненний Google Borg
| Google мав багаторічний досвід cluster management. data:
== 52. Managed Kubernetes ==
'''DaemonSet''' запускає Pod на кожному Node або на групі Nodes.<pre>
<pre>
<pre>
А так:
== 70. Kubernetes vs OpenShift ==
== 2. Коротка характеристика ==
|-
| Horizontal Pod Autoscaler
| Кількість Pod replicas. template:
Насправді Kubernetes — це нижчий шар. Схема:
<div style="border-left: 6px solid #2e7d32; background: #e8f5e9; padding: 12px 16px; margin: 16px 0;">
<pre>
* створити database cluster;
* зробити backup;
* виконати restore;
* оновити версію;
* масштабувати;
* перевірити health;
* виконати failover. |-
| Rolling updates
| дає можливість оновлювати застосунки поступово. | Значно менш популярний сьогодні. |-
| Self-healing
| Розвинений. ! - name: web
metadata:
У 2026 році Kubernetes залишається одним із головних стандартів cloud-native інфраструктури. |-
| Kubernetes декларативний
| Ви описуєте бажаний стан, а controllers намагаються його підтримувати. |}
the operating system for the cloud
'''kubectl''' — головна командна утиліта Kubernetes. SEO-опис
name: hello-pod
Кластер складається з:
Якщо Pod видалити, інформаційні дані всередині контейнера можуть зникнути. ! ports:
19. StatefulSet
Він здатна:
24. Gateway API
Він приймає рішення для бізнесу:
RBAC — Role-Based Access Control. | Менша, але сильна в HashiCorp-екосистемі. | General workload orchestrator.SEO title: Kubernetes — платформа оркестрації контейнерів
SEO keywords: Kubernetes, K8s, containers, container orchestration, Docker, containerd, Pods, Nodes, Deployments, Services, Ingress, Helm, Operators, CNCF, cloud-native, DevOps, platform engineering
</noinclude>
{{SEO
Шаблон для службового SEO-опису сторінки. }}
metadata:
- фізичним сервером;
- віртуальною машиною;
- cloud instance;
- edge-пристроєм у спеціальних сценаріях. Типи Service:
|