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

Kubernetes

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

!== 45. CSI == |- | 2000-ті | Google розвиває внутрішні системи керування кластерами, зокрема Borg. |- | Велика ERP-платформа | Helm, Operators, GitOps, monitoring, service mesh, policy tools. |- | ERP-платформа

| Дуже велика. | Нижча. Deployment керує запуском replicated application.


kubectl rollout undo deployment/web

! Сучасний Kubernetes не потребує саме Docker як runtime. | Простіше. |-
| Найкращий сценарій
| Cloud-native Kubernetes ecosystem. ! Типова схема:
! |-
| 2015
| Виходить Kubernetes 1.0. '''критично:''' Kubernetes не виступає як заміною Docker, Linux або хмарного провайдера. Kubernetes — це відкрита платформа оркестрації контейнерів, яка стала фундаментом cloud-native інфраструктури.== 7. Docker і Kubernetes ==

* maxUnavailable;
* maxSurge;
* rollout status;
* rollback. '''Gateway API''' — сучасніший набір Kubernetes API для керування мережевим трафіком. |-
| PersistentVolumeClaim
| Запит застосунку на storage.

Приклади:

Managed Kubernetes зменшує складність control plane, але не скасовує потребу розуміти workloads, networking, security, storage і observability. |- | NodePort | Відкриває порт на кожному Node. Значення |- | Kubernetes скорочують як K8s

| Між K і s у слові Kubernetes виступає як 8 літер.


 image: nginx:1.27

 metadata:

Для Kubernetes важлива безпека supply chain:
{| class="wikitable"
'''OpenShift''' — enterprise Kubernetes-платформа від Red Hat. ports:
 |
 containers:
apiVersion: v1
K + 8 літер + s
<div style="border-left: 6px solid #2e7d32; background: #e8f5e9; padding: 12px 16px; margin: 16px 0;">

 LOG_LEVEL: info

* routing за hostname;
* routing за path;
* TLS termination;
* централізований HTTP-доступ;
* інтеграцію з cert-manager. А Kubernetes намагається привести реальний стан до бажаного. :contentReference [oaicite:0]{index=0}

! |
Kubernetes бере на себе питання:
stringData:
'''Ingress''' керує HTTP/HTTPS-доступом до сервісів усередині кластера. сценарії використання:

[[Prometheus]]

У Kubernetes головна одиниця — Pod. |-
| Scaling
| Гнучке, але треба налаштовувати. |-
| Kubernetes
| Оркестрація контейнерів у кластері з багатьох машин. * log agents;
* monitoring agents;
* network plugins;
* storage agents;
* security agents;
* node-level daemons. CRD перетворює Kubernetes із простого orchestrator-а на платформу для власних API. |-
| 2018
| Kubernetes стає першим CNCF-проєктом, який отримав статус Graduated.== 17. Deployment ==
GitOps controller
== 35. Цікавий факт: Kubernetes став “операційною системою датацентру” ==
<pre>

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

Безпека Kubernetes містить:

Pod здатна містити один або кілька контейнерів. name: db-secret

old Pod 1 → new Pod 1

  • logs;
  • metrics;
  • traces;
  • events;
  • dashboards;
  • alerts;
  • distributed tracing. | Використовувати external secrets і encryption. |-
Overkill для малих проєктів Для одного сайту часто достатньо Docker Compose або VPS. +--> Control Plane

Service дає стабільний спосіб доступу до Pods. Kubernetes став open source-версією багатьох цих ідей для всього світу. {| class="wikitable"

Приклад:

Якщо виходить нова реліз системи — оновити поступово. Kubernetes Cluster

  • mTLS;
  • traffic splitting;
  • retries;
  • observability;
  • circuit breaking;
  • policy;
  • zero trust networking. Він здатна працювати з containerd та іншими CRI-compatible runtime-ами. | Він вирішує orchestration, але додає операційну складність. metadata:

Requests допомагають scheduler-у розміщувати Pods.== 42. RBAC ==

  • Prometheus;
  • Grafana;
  • Loki;
  • Tempo;
  • Jaeger;
  • OpenTelemetry;
  • Alertmanager;
  • Kubernetes events;
  • kube-state-metrics. |-
2014 Google анонсує Kubernetes як open source-проєкт.== 37. Rolling update ==

46. Service Mesh


 labels:
3.== 67. Kubernetes vs Docker Compose ==

Ingress Controller

49. Logging

15. Declarative configuration

Призначення
environment: production
- “latest image нормально” швидко оновлювати. Internet
spec:
  • 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
Kubernetes

Менше трафіку → менше Pods. Підходить для: Google роками вчився запускати величезні системи. |-

Навчання Складніше. Найчастіше:

Але service mesh так само додає складність. |-

Потребує досвіду Networking, storage, security і observability непрості.
replicas: 2

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

YAML-складність Manifests можуть розростатися. У Kubernetes виступає як дуже важлива ідея:

Service

Node log collector

DaemonSet

Простими словами:
  • objects;
  • configuration;
  • cluster state;
  • metadata;
  • secrets у зашифрованому або незашифрованому вигляді залежно від конфігурація. Deployment — один із найпопулярніших Kubernetes-об'єктів. old Pod 2 → new Pod 2

20. DaemonSet

Docker Compose

kube-apiserver - 2015 Kubernetes передають до Cloud Native Computing Foundation. Багато проблем виникає не через сам Kubernetes, а через:

Йому треба описувати очікування. Kubernetes має probes для перевірки стану застосунку. |}

75. Базовий хороший workflow

- etcd Key-value storage для стану кластера. Як правильно думати
Складність Має багато понять, компонентів і edge cases. Критерій

55. MicroK8s

v
  • edge;
  • home lab;
  • IoT;
  • маленьких кластерів;
  • testing;
  • developer labs;
  • lightweight environments. Якщо щось падає — замінити.
* 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. | Залежить від provider-а. |- | Kubernetes був першим CNCF Graduated-проєктом | Він отримав цей статус 6 березня 2018 року. Probe overlays/ як приклад Service знаходить Pods через selector: Це називають reconciliation loop. DaemonSet це забезпечує. apiVersion: v1 == 22. Service == helm install my-nginx bitnami/nginx Kubernetes доцільно використовувати, якщо: 7. Критерій <pre> Приклади namespaces: <pre> Ключові етапи: - containerPort: 80 Kubernetes керує контейнерами. Kubernetes групує контейнери в logical units для зручного керування й service discovery. |} Контейнер — це ізольований бізнес-процес із власним filesystem, залежностями й середовищем виконання. '''Control Plane''' — мозок Kubernetes-кластера. kind: Secret <syntaxhighlight lang="yaml"> Чому? |- | Self-healing | Перезапускає або замінює failed Pods. | Простішій scheduler для різних workload-ів. ! OpenShift app: web

</syntaxhighlight> resources:

selector:

Типова схема:

Docker і Kubernetes часто плутають.
{| class="wikitable"
database
Pod logs
SEO-опис
  • звідки image;
  • хто його зібрав;
  • чи виступає як vulnerabilities;
  • чи image підписаний;
  • чи виступає як SBOM;
  • чи не застосовується для latest у production;
  • чи виступає як provenance;
  • чи не зламаний CI/CD. |-
kube-scheduler Вирішує, на який Node поставити Pod. metadata:

kubectl describe pod pod-name Інструменти:

+--> Service B
  • спільну network namespace;
  • спільну IP-адресу;
  • спільні volumes;
  • lifecycle;
  • labels;
  • restart policy.

У Kubernetes критично мати observability:

Багато хмар пропонують managed Kubernetes. Перевага

[[Helm]]
== 53. Kubernetes дистрибутиви ==
Дай мені всі Pods з label app=web.== 4. історія продукту ==

'''Kubernetes cluster''' — це набір машин, які разом запускають застосунки. |}

== 39. Probes ==

Selectors дозволяють вибирати об'єкти за labels. |-
| Vertical Pod Autoscaler
| CPU/memory requests і limits для Pods.
Kubernetes не виступає як прямою копією Borg, але він натхненний ідеями:
[[CNCF]]
kubectl get services
 v
Kubernetes застосовується для для:
! |-
| Небезпечні defaults у неправильних руках
| Без RBAC, NetworkPolicy і hardening можна створити ризики. Приклад:

* OPA Gatekeeper;
* Kyverno;
* built-in admission controllers. * ізолювати namespaces;
* обмежити доступ до databases;
* дозволити тільки потрібний трафік;
* зменшити blast radius;
* будувати zero trust-підхід. |-
| cloud-controller-manager
| інтеграційні функції ERP з cloud provider-ом, якщо застосовується для.== 56. OpenShift ==

== 36. Autoscaling ==

<syntaxhighlight lang="yaml">

Приклад:

* cloud block storage;
* network storage;
* distributed storage;
* Ceph;
* Longhorn;
* EBS;
* Persistent Disks;
* Azure Disks. Характеристика

Operator Controller

На Node зазвичай працюють:

* кластер як єдиний ресурс;
* декларативний стан;
* автоматичне розміщення workload-ів;
* self-healing;
* масштабування;
* service discovery;
* scheduling. | У production краще pinned versions.== 58. Безпека Kubernetes ==

[[Категорія:Open Source]]

Приклади:

cache
</pre>
Він каже:

== 74. Типові помилки новачків ==

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

</pre>

== 25. ConfigMap ==

Kubernetes часто називають:

конкурентні переваги:
selector:
== 77. Цікаві факти ==

kind: PostgreSQLCluster
На одному сервері це ще можна запустити вручну.[[Istio]]

1 Pod = 1 main container

* environment variables;
* config files;
* application settings;
* feature flags;
* non-secret parameters. Схема:

</pre>

Тобто Kubernetes став шаром, який перетворює багато серверів на одну керовану платформу. {| class="wikitable"
Якщо треба більше копій — масштабувати. |-
| Enterprise adoption
| Дуже висока. Kubernetes

сценарії використання:

* Control Plane;
* Worker Nodes;
* мережі;
* storage;
* runtime-ів;
* системних компонентів;
* workload-ів користувача. Helm корисний для:

== 38. Self-healing ==

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

Limits обмежують максимальне використання ресурсів. |-
| Volume
| Том, доступний Pod-у.[[kubectl]]

'''CRD''' дає можливість додавати нові типи ресурсів у Kubernetes. type: Opaque

</pre>

* databases;
* message brokers;
* clustered systems;
* застосунки, де важливі стабільні імена;
* застосунки, де важливі persistent volumes. Помилка

! spec:

* HTTP routing;
* TCP/UDP routing;
* ролей platform team і application team;
* multi-tenant кластерів;
* advanced traffic management. Тестувати rollout і rollback. Описати Deployment. Приклади:

apiVersion: v1

  • sidecar для logs;
  • proxy;
  • service mesh;
  • sync agent;
  • monitoring helper;
  • init container. |-
2025 Виходить Kubernetes 1.35 Timbernetes. Pod — найменша одиниця запуску в Kubernetes. !== 79. Безпека ==

У etcd зберігається:

Kubernetes — це фундамент, але будинок треба ще збудувати. Людське пояснення: якщо Docker запускає окремий контейнер, то Kubernetes керує цілим “містом контейнерів”: розселяє їх по серверах, стежить за здоров'ям, перенаправляє трафік і замінює зламані частини.== 10. Worker Node ==

== 59. Pod Security Standards ==
  • cosign;
  • Sigstore;
  • Trivy;
  • Grype;
  • Syft;
  • SLSA;
  • Notation.
[[Docker]] kubectl get pods </div> matchLabels: +--> Service C requests: ! password: strong_password Backup Kubernetes — це не тільки backup Pods. |} == 60. Admission Controllers == kubelet робить це на конкретному Node. {| class="wikitable" 5.== 69. Kubernetes vs Nomad == app: web frontend ! ! |- | Vendor | CNCF/community. kind: ConfigMap {| class="wikitable" targetPort: 80 * public cloud; * private cloud; * hybrid cloud; * multi-cloud; * enterprise; * startups; * DevOps; * platform engineering; * AI/ML platforms; * edge; * SaaS; * fintech; * e-commerce; * internal developer platforms. | Нижча для простих сценаріїв. | Обмежений. Подія У Kubernetes logs зазвичай збирають централізовано. |- | Складність | Вища. APP_MODE: production Service не “знає” конкретні Pod names. Запушити image у registry. '''Operator''' — це Kubernetes extension, який автоматизує керування складним застосунком.== 34. Custom Resource Definition == * version control; * audit trail; * rollback; * pull request workflow; * reproducible infrastructure; * менше ручних змін через kubectl. |- | “Не потрібні resource limits” | На dev усе функціонує. ! worker == 28. Namespace == [[Контейнери]] <syntaxhighlight lang="yaml"> Real application resources [[GitOps]] '''Labels''' — це key-value мітки. Kubernetes

base/

Більше трафіку → більше Pods.
Це не буквальна ОС як Linux. - port: 80

[[Deployment]]

[[etcd]]

* отримує інструкції від control plane;
* запускає Pods через container runtime;
* перевіряє стан контейнерів;
* повідомляє про стан Node;
* стежить за Pod health;
* застосовує конфігурацію. Pods можуть змінюватися, але labels залишають логічний зв'язок. Основні компоненти:

<syntaxhighlight lang="yaml">

 ports:

* використовувати підтримувані версії 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.
Kubernetes → K8s etcd — key-value storage, де Kubernetes зберігає стан кластера. Dev і prod можуть мати різні replicas, images, labels, resources. username: app_user
== 68. Kubernetes vs Docker Swarm ==
! | Event-driven functions, невеликі backend tasks. * автоматизація процесів deployment;
* масштабування;
* self-healing;
* service discovery;
* rolling updates;
* declarative configuration;
* велика ERP-платформа;
* cloud portability;
* GitOps;
* Operators;
* managed Kubernetes у major clouds. Задати resource requests і limits. Компонент

але не здатна видаляти secrets у production. apiVersion: apps/v1
 - containerPort: 80
Назва Kubernetes
Скорочення K8s
Тип Платформа оркестрації контейнерів
Початковий розробник Google
Поточна ERP-платформа 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 року

Operators

+--> Pod
}

Gateway API поступово стає важливим стандартом у cloud-native networking. |-

Операційна складність Вища. Інструмент

StatefulSet

+--> Pod

Основні об'єкти: Namespace дає можливість логічно розділяти ресурси в кластері. Pod Security Standards визначають рівні безпеки Pod-ів:

kind: Service

spec:

У мене виступає як сервер, я зайду на нього по SSH і щось виправлю. | Enterprise Kubernetes platform. Pod має:

apiVersion: v1

Інструменти: Приклад: Pod

livenessProbe }

Secret

- port: 80
Але ідея схожа: spec: 1. Для збереження даних Kubernetes використовує volumes. Helm — пакетний менеджер для Kubernetes. |-
“Secrets можна зберігати в Git” YAML здається зручним. :contentReference [oaicite:2]{index=2}
  • opinionated platform;
  • developer tools;
  • security defaults;
  • integrated registry;
  • routes;
  • operators;
  • enterprise support;
  • OpenShift-specific workflows.== 76. Мінімальний приклад Deployment + Service ==

StatefulSet дає:

Kubernetes 1.36 виступає як latest release у офіційній release history на травень 2026, а гілка 1.35 ще actively supported з patch-релізом 1.35.4 від 14 квітня 2026 року. Для чого

51. Kustomize

27. Volumes і PersistentVolume

Kubernetes

Фокус 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: