ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

ΠžΡΠ½ΠΎΠ²Ρ‹ Kubernetes

Π’ этой ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ я Ρ…ΠΎΡ‚Π΅Π» Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ± интСрСсной, Π½ΠΎ нСзаслуТСнно ΠΌΠ°Π»ΠΎ описанной Π½Π° Π₯Π°Π±Ρ€Π΅, систСмС управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Kubernetes.

ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Kubernetes?

Kubernetes являСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ для управлСния кластСром ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Linux ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΉ систСмой. Kubernetes управляСт ΠΈ запускаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker Π½Π° большом количСствС хостов, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ обСспСчиваСт совмСстноС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ большого количСства ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Π½Π°Ρ‡Π°Ρ‚ Google ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ поддСрТиваСтся ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ компаниями, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Microsoft, RedHat, IBM ΠΈ Docker.

Компания Google ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ дСсяти Π»Π΅Ρ‚. Она Π½Π°Ρ‡ΠΈΠ½Π°Π»Π° с запуска Π±ΠΎΠ»Π΅Π΅ 2 ΠΌΠ»Ρ€Π΄ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π½Π΅Π΄Π΅Π»ΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Kubernetes компания дСлится своим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ создания ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ прСслСдуСт Π΄Π²Π΅ Ρ†Π΅Π»ΠΈ. Если Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Docker, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ сразу Π½Π° большом количСствС хостов Docker, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ… балансировку. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ прСдлагаСтся высокоуровнСвый API, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ логичСскоС Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡƒΠ»Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Kubernetes

Nodes (node.md): Нода это машина Π² кластСрС Kubernetes.
Pods (pods.md): Pod это Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ, запускаСмых ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅.
Replication Controllers (replication-controller.md): replication controller Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Β«Ρ€Π΅ΠΏΠ»ΠΈΠΊΒ» pod’Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
Services (services.md): БСрвис Π² Kubernetes это абстракция которая опрСдСляСт логичСский ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ pod ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ доступа ΠΊ Π½ΠΈΠΌ.
Volumes (volumes.md): Volume(Ρ€Π°Π·Π΄Π΅Π») это дирСктория, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π½Π΅ΠΉ, которая доступна Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.
Labels (labels.md): Label’Ρ‹ это ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ pod’Π°ΠΌ. Label’Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для создания ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
Kubectl Command Line Interface (kubectl.md): kubectl интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для управлСния Kubernetes.

АрхитСктура Kubernetes

Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ кластСр Kubernetes Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π°Π³Π΅Π½Ρ‚Π°, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π½ΠΎΠ΄Π°Ρ… (kubelet) ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ мастСра (APIs, scheduler, etc), ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с распрСдСлённым Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Π°Ρ схСма ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, состояниС, хотя всС Π΅Ρ‰Ρ‘ вСдётся Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Π΅Ρ‰Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ kubelet (всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π° самом Π΄Π΅Π»Π΅) ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ запускался Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ сдСлаСт ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π½Π° 100% ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌ.
ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

Нода Kubernetes

ΠŸΡ€ΠΈ взглядС Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ систСмы ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° сСрвисы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ ΠΈ сСрвисы уровня управлСния кластСра. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ Kubernetes Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ сСрвисы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для управлСния Π½ΠΎΠ΄ΠΎΠΉ со стороны мастСра ΠΈ для запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ запускаСтся Docker. Docker обСспСчиваСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

Kubelet

Kubelet управляСт pod’Π°ΠΌΠΈ ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ, Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ, etc.

Kube-Proxy

Π’Π°ΠΊΠΆΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ запускаСтся простой proxy-балансировщик. Π­Ρ‚ΠΎΡ‚ сСрвис запускаСтся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ ΠΈ настраиваСтся Π² Kubernetes API. Kube-Proxy ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² TCP ΠΈ UDP (round robin) ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Π±ΠΎΡ€ΠΎΠΌ бэкСндов.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ управлСния Kubernetes

БистСма управлСния Kubernetes Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° нСсколько ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ всС ΠΎΠ½ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½Π° мастСр-Π½ΠΎΠ΄Π΅, Π½ΠΎ Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ для возмоТности создания отказоустойчивого кластСра. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΎΠ΅ прСдставлСниС кластСра.

БостояниС мастСра хранится Π² экзСмплярС etcd. Π­Ρ‚ΠΎ обСспСчиваСт Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ своСврСмСнноС ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния.

Kubernetes API Server

Kubernetes API обСспСчиваСт Ρ€Π°Π±ΠΎΡ‚Ρƒ api-сСрвСра. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ CRUD сСрвСром со встроСнной бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… ΠΈΠ»ΠΈ Π² ΠΏΠ»Π°Π³ΠΈΠ½Π°Ρ…. Он, Π² основном, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ REST ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, провСряя ΠΈΡ… ΠΈ обновляя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² etcd (ΠΈ событийно Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ…).

Scheduler

Scheduler привязываСт Π½Π΅Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ pod’Ρ‹ ΠΊ Π½ΠΎΠ΄Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² /binding API. Scheduler ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ; планируСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° мноТСствСнных scheduler’ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… scheduler’ΠΎΠ².

Kubernetes Controller Manager Server

ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ уровня кластСра прСдставлСны Π² Controller Manager. НапримСр, Π½ΠΎΠ΄Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ срСдствами node controller. Π­Ρ‚Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… нСзависимо ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌΠΈ.

ReplicationController β€” это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° pod API. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС планируСтся пСрСвСсти Π΅Ρ‘ Π½Π° ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ plug-in, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки кластСра

Π’ качСствС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° настройки Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Ubuntu-server 14.10 ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простая для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ основныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ настройки кластСра.

Для создания тСстового кластСра Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Ρ€ΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ для создания Π½ΠΎΠ΄ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ машина для провСдСния ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ установки. МоТно Π½Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ установку с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΎΠ΄.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½ΠΎΠ΄
ВрСбования для запуска:
Установка ПО Π½Π° Π½ΠΎΠ΄Ρ‹

Установку Docker ΠΌΠΎΠΆΠ½ΠΎ произвСсти ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… источниках:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ настройка Docker послС установки Π½Π΅ Π½ΡƒΠΆΠ½Π°, Ρ‚.ΠΊ. Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° скриптом установки Kubernetes.
Установка bridge-utils:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ssh-ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

ВыполняСм Π½Π° машинС, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ скрипт установки.
Если ΠΊΠ»ΡŽΡ‡ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ созданы, создаём ΠΈΡ…:

ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΠ²ΡˆΠΈΡΡŒ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π° Π½ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² нашСм случаС core.

Установка Kubernetes

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ займёмся установкой нСпосрСдствСнно Kubernetes. Для этого Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ скачаСм ΠΈ распакуСм послСдний доступный Ρ€Π΅Π»ΠΈΠ· с GitHub:

Настройка

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послСдний, Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ, Ρ€Π΅Π»ΠΈΠ· 0.17.0 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ:

На этом настройка заканчиваСтся ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ установкС.

Установка

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ систСмС ΠΏΡ€ΠΎ наш ssh-agent ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ssh-ΠΊΠ»ΡŽΡ‡ для этого выполняСм:

Π’ процСссС установки скрипт ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ sudo для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Ρ‹. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ установки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ состояниС кластСра ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ список Π½ΠΎΠ΄ ΠΈ адрСса Kubernetes api.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π½ΠΎΠ΄Ρ‹ ΠΈ сСрвисы ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π½ΠΎΠ²ΠΎΠΌ кластСрС:

Π’ΠΈΠ΄ΠΈΠΌ список ΠΈΠ· установлСнных Π½ΠΎΠ΄ Π² состоянии Ready ΠΈ Π΄Π²Π° прСдустановлСнных сСрвиса kubernetes ΠΈ kubernetes-ro β€” это прокси для нСпосрСдствСнного доступа ΠΊ Kubernetes API. Как ΠΈ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ сСрвису Kubernetes ΠΊ kubernetes ΠΈ kubernetes-ro ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ нСпосрСдствСнно ΠΏΠΎ IP адрСсу с любой ΠΈΠ· Π½ΠΎΠ΄.

Запуск тСстового сСрвиса

Для запуска сСрвиса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ создан сСрвис. Π”Π°Π±Ρ‹ Π½Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ использован общСдоступный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ nginx. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ сСрвиса ΡΠ²Π»ΡΡŽΡ‚ΡΡ Replication Controller, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Ρ‚ΠΎΡ‡Π½Π΅Π΅ pod) ΠΈ service, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт, Π½Π° ΠΊΠ°ΠΊΠΈΡ… IP адрСсС ΠΈ ΠΏΠΎΡ€Ρ‚Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ сСрвис ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° распрСдСлСния запросов ΠΌΠ΅ΠΆΠ΄Ρƒ pod’Π°ΠΌΠΈ.

Π›ΡŽΠ±ΠΎΠΉ сСрвис ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 2-я способами: Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³-Ρ„Π°ΠΉΠ»Π°. Рассмотрим ΠΎΠ±Π°.

Запуск сСрвиса Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ

Начнём с создания Replication Controller’Π°:

Π”Π°Π»Π΅Π΅ создаём service ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наш Replication Controller ΠΊΠ°ΠΊ Π±Π΅ΠΊΠ΅Π½Π΄.
Для http:

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ запущСнности ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΉΡ‚ΠΈ Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· Π½ΠΎΠ΄ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² консоли:

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ curl ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ страницу nginx. Π“ΠΎΡ‚ΠΎΠ²ΠΎ, сСрвис Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ доступСн.

Запуск сСрвиса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ²

Для этого способа запуска Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ для Replication Controller’Π° ΠΈ service’Π°. Kubernetes ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… yaml ΠΈ json. МнС Π±Π»ΠΈΠΆΠ΅ yaml поэтому Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ очистим наш кластСр ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ экспСримСнта:

Π‘Ρ‹Π» создан Replication Controller с ΠΈΠΌΠ΅Π½Π΅ΠΌ nginx ΠΈ количСством Ρ€Π΅ΠΏΠ»ΠΈΠΊ Ρ€Π°Π²Π½Ρ‹ΠΌ 6. Π Π΅ΠΏΠ»ΠΈΠΊΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° Π½ΠΎΠ΄Π°Ρ…, мСстополоТСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ pod’Ρ‹ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² столбцС HOST.

МоТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° Π·Π° ΠΎΠ΄Π½ΠΈΠΌ сСрвисом ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ нСсколько ΠΏΠΎΡ€Ρ‚ΠΎΠ².
ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³:

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ запущСнности ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΉΡ‚ΠΈ Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· Π½ΠΎΠ΄ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² консоли:

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ curl ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ страницу nginx.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° полях

Π’ качСствС Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ…ΠΎΡ‡Ρƒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°ΠΏΠ½ΡƒΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ систСмы. Бвязаны ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ kube-proxy, Ρ‚ΠΎΠ³ΠΎ самого модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€ΠΎΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ элСмСнтов Π² сСрвис.
PORTAL_NET. Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ сама ΠΏΠΎ сСбС интСрСсная, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ.
НСдолгиС раскопки ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ мСня ΠΊ осознанию простой, Π½ΠΎ эффСктивной ΠΌΠΎΠ΄Π΅Π»ΠΈ, заглянСм Π² Π²Ρ‹Π²ΠΎΠ΄ iptables-save:

На этом всё, спасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅
К соТалСнию, всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ хочСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ, Π½Π΅ получаСтся ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Kubernetes: знакомство, Ρ‡Π°ΡΡ‚ΡŒ 1 – Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΎΠ±Π·ΠΎΡ€

ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

На Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρƒ нас имССтся API-Π±Π΅ΠΊΠ΅Π½Π΄ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP Yii-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° стандартном LEMP – Linux/NGINX/PHP-FPM/MySQL.

ΠŸΡ€ΠΈΡˆΠ»Π° ΠΏΠΎΡ€Π° ΠΈ Π½Π°ΠΌ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ этот ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ Π½Π° микросСрвисы, для управлСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Kubernetes (AWS EKS).

Π’ этом ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… постах сСрии – знакомство с основными ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Kubernetes, Ρ€ΡƒΡ‡Π½ΠΎΠ΅ созданиС кластСра ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с AWS EKS.

НиТС достаточно ΠΊΡ€Π°Ρ‚ΠΊΠΎ рассматриваСтся общая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ понятия Kubernetes, Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… – ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ Π±ΠΎΠ»Π΅Π΅ практичСским ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ, ΠΏΠΎΠ½Π΅ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡŽΡΡŒ Π² Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ ΠΊΡ€ΡƒΠ³ΠΎΠ·ΠΎΡ€ экосистСмы Kubernetes.

Π’ постС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ достаточно ΠΌΠ½ΠΎΠ³ΠΎ ссылок Π΄ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹, Π½ΠΎ основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ поискС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ/ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎ Kubernetes – это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ измСнСния ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ часто ΠΈ быстро, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ докумСнтация быстро ΡƒΡΡ‚Π°Ρ€Π΅Π²Π°ΡŽΡ‚ – ΠΈΠΌΠ΅ΠΉΡ‚Π΅ это Π²Π²ΠΈΠ΄Ρƒ.

АрхитСктура – ΠΎΠ±Π·ΠΎΡ€

ΠžΠ±Ρ‰Π°Ρ схСма K8s кластСра выглядит Ρ‚Π°ΠΊ:

ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

Или Π±ΠΎΠ»Π΅Π΅ простая схСма:

ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

ΠšΠ»Π°ΡΡ‚Π΅Ρ€ состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Master Node, ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Worker Node.

Master Node

БСрвисы, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Master-Π½ΠΎΠ΄Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ β€œKubernetes Control Plane” (ΠΊΡ€ΠΎΠΌΠ΅ etcd ), ΠΏΡ€ΠΈ этом сам Master ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для административных Π·Π°Π΄Π°Ρ‡, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с вашими сСрвисами Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° Worker Node.

Kubernetes core services aka Kubernetes Control Plane

На Master Node Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы:

Key:value Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Kubernetes для управлСния конфигурациями ΠΈ service discovery.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Π½Ρ‘ΠΌ хранится Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ (current) состояниС систСмы, ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ (desired), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ – послС Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚Π°.

Если K8s Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ отличия Π² etcd ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями current ΠΈ desired – ΠΎΠ½ выполняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния.

Worker Node

Worker Node (Ρ€Π°Π½Π΅Π΅ – minion) – Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΈΠ»ΠΈ физичСская машина, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Kubernetes для запуска Pod (см. Pod).

На Worker Node-Π°Ρ… Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

ВзаимодСйствиС ΠΊΠΎΠΌΠΏΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠ²

НапримСр, ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ pod-Π° – процСсс выглядит Ρ‚Π°ΠΊ:

Абстракции Kubernetes

Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ β€œΠΎΡΡΠ·Π°Π΅ΠΌΡ‹Ρ…β€ Π²Π΅Ρ‰Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, сСти, IP-адрСса ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.

Но сам Kubernetes являСт собой ΠΎΠ΄ΠΈΠ½ большой кусок… абстракции, β€œΠ½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌΠΎΠΉβ€ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ инфрастуктуру.

БоотвСтствСнно, Π² K8s имССтся мноТСство собствСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ абстрактными, ΠΈΠ»ΠΈ логичСскими, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Kubernetes.

Pod – основная логичСская Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Kubernetes.

По сути своСй, ΠΏΠΎΠ΄ являСтся Ρ‚Π°ΠΊΠΎΠΉ сСбС абстракциСй Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Kunbernetes-кластСра: Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ свой ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ IP, имя хоста, ΠΎΠ±Ρ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° дисках (см. Volumes).

Pod являСтся ΡŽΠ½ΠΈΡ‚ΠΎΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ‚Π° (см. Deployment), ΠΈ β€œΠ²Π½ΡƒΡ‚Ρ€ΠΈβ€ этой β€œΠΌΠ°ΡˆΠΈΠ½Ρ‹β€ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², связанных ΠΎΠ±Ρ‰ΠΈΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… собой логичСскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (состоящСС ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ процСссов/ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²).

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄ ΠΏΡ€Π΅Π΄Π·Π½Π°Ρ‡Π΅Π½ для запуска ΠΈ обслуТивания СдинствСнного экзСмпляра прилоТСния: Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния – Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ‹, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ инстанс прилоТСния.

ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

Вакая Π³Ρ€ΡƒΠΏΠΏΠ° Π½ΠΎΠ΄ (Replicated Pods) управляСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ (см. Controllers).

ΠŸΡ€ΠΈ этом сами ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Kubernetes ΠΈ Π½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌ: Kubernetes управляСт ΠΏΠΎΠ΄Π°ΠΌΠΈ, Π½ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого ΠΏΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ сСтСвоС пространство ΠΈΠΌΡ‘Π½, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ IP адрСса ΠΈ ΠΏΠΎΡ€Ρ‚Ρ‹, ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ Ρ‡Π΅Ρ€Π΅Π· localhost (ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ == логичСская Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ шаблона для создания ΠΏΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Services

БСрвисы – это, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ€ΠΎ ΡΠ΅Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра ΠΈ обСспСчСниС доступа ΠΊ ΠΏΠΎΠ΄Π°ΠΌ ΠΈΠ· ΠΌΠΈΡ€Π° – ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈ снаруТи прилоТСния.

По сути, сСрвисы – Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Kubernetes, ΠΊΠ°ΠΊ Pod, ReplicaSets, DaemonSet, ΠΏΡ€ΠΈ этом Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСбС сСрвис ΠΊΠ°ΠΊ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр Π² Π½ΠΎΠ΄Π΅.

НапримСр, сСрвисы ΠΌΠΎΠΆΠ½ΠΎ условно ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

Π’ΡƒΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ сСрвис, ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄, Π·Π°Ρ‚Π΅ΠΌ сам Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвиса взаимодСйствуСт с двумя сСрвисами Π±Π΅ΠΊΠ΅Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ‡Π΅Ρ€Π΅Π· Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ сСрвис – ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ с сСрвСров Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

ClusterIP

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ доступ ΠΊ сСрвису Ρ‡Π΅Ρ€Π΅Π· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ IP кластСра. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ – сСрвис Π±ΡƒΠ΄Π΅Ρ‚ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ самого класСтра.

ЯвляСтся Ρ‚ΠΈΠΏΠΎΠΌ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

NodePort

ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· пСрСчислСнных сущностСй ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ kubernetes

Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ подсСти ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ kubeadm config view :

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π±ΠΎΡ‚Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Kubernetes

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Kubernetes

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Kubernetes β€” сущности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² Kubernetes. Kubernetes ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… для прСдставлСния состояния кластСра. Π’ частности, ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

ПослС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Kubernetes Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° сущСствованиСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Боздавая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ систСмС Kubernetes, ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ рабочая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° кластСра; это Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ состояниС кластСра.

БпСцификация ΠΈ статус ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ПолС status описываСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ создаётся ΠΈ обновляСтся самим Kubernetes ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ управлСния Kubernetes Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ управляСт фактичСским состояниСм ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ соотвСтствовало Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π·Π°Π΄Π°Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ спСцификации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, статусС ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… смотритС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с соглашСниями API Kubernetes.

ОписаниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Kubernetes

Π’Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ:

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ поля-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° spec зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Kubernetes ΠΈ содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ поля, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ справочникС API Kubernetes ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ спСцификации любого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Kubernetes. НапримСр, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ spec для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Pod находится Π² ядрС PodSpec v1, Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ spec для Deployment β€” Π² DeploymentSpec v1 apps.

Π§Ρ‚ΠΎ дальшС

Π’ инструмСнтС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки kubectl Π΅ΡΡ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… способов создания ΠΈ управлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Kubernetes. На этой страницС Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Kubectl для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kubectl.

Бпособы управлСния

Бпособ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСнияРСкомСндуСмоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ²Π’Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ изучСния
Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ командыАктивныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ1+Низкая
Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ конфигурация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ΠŸΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹1БрСдняя
ДСкларативная конфигурация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ΠŸΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹1+БлоТная

Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΡ€ΠΈ использовании ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСпосрСдствСнно с Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ (Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² кластСрС. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ выполняСмыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ kubectl Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ„Π»Π°Π³ΠΎΠ².

Π­Ρ‚ΠΎ самый простой способ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² кластСрС. Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ происходит Ρ€Π°Π±ΠΎΡ‚Π° с Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½Π΅Ρ‚ возмоТности ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ЗапуститС экзСмпляр ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° nginx, посрСдством создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Deployment:

Π’ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ синтаксисом:

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

НСдостатки ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ конфигурация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π’ случаС использования ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ kubectl ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ дСйствиС (созданиС, Π·Π°ΠΌΠ΅Π½Π° ΠΈ Ρ‚.Π΄.), Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄Π½ΠΎ имя Ρ„Π°ΠΉΠ»Π°. Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ YAML ΠΈΠ»ΠΈ JSON.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ API для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎ опрСдСлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Π΄Π²ΡƒΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…:

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, пСрСзаписав Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ:

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:

НСдостатки ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

НСдостатки ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

ДСкларативная конфигурация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

РСкурсивная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

НСдостатки ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

Π§Ρ‚ΠΎ дальшС

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² кластСрС ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° рСсурса. ΠšΡ€ΠΎΠΌΠ΅ этого, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Kubernetes Π΅ΡΡ‚ΡŒ собствСнный ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (UID) Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… кластСра.

Для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρƒ Kubernetes Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ.

ИмСна

Π£ΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ имя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Но Ссли Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ

НиТС пСрСчислСны Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° распространённых Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ рСсурсов.

ИмСна поддомСнов DNS

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ‚ΠΈΠΏΠΎΠ² рСсурсов Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π° DNS Π² соотвСтствии с RFC 1123. БоотвСтствСнно, имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ:

ИмСна ΠΌΠ΅Ρ‚ΠΎΠΊ DNS

НСкоторыС Ρ‚ΠΈΠΏΡ‹ рСсурсов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ стандарту ΠΌΠ΅Ρ‚ΠΎΠΊ DNS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описан Π² RFC 1123. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ:

ИмСна сСгмСнтов ΠΏΡƒΡ‚ΠΈ

ΠžΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ‚ΠΈΠΏΠΎΠ² рСсурсов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для использования Π² качСствС сСгмСнта ΠΏΡƒΡ‚ΠΈ. ΠŸΡ€ΠΎΡ‰Π΅ говоря, имя Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ «.» ΠΈΠ»ΠΈ «..», Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ «/» ΠΈΠ»ΠΈ «%».

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Уникальная строка, сгСнСрированная самим Kubernetes, для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, созданного Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ кластСра Kubernetes, Π΅ΡΡ‚ΡŒ собствСнный ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (UID). Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для выяснСния Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ событиями ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… сущностСй.

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (UID) Π² Kubernetes β€” это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (извСстныС Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Universally Unique IDentifier, сокращСнно UUID). Π­Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ стандартизированы ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ISO/IEC 9834-8, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ITU-T X.667.

Π§Ρ‚ΠΎ дальшС

Kubernetes ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… кластСров Π² ΠΎΠ΄Π½ΠΎΠΌ физичСском кластСрС. Π’Π°ΠΊΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ кластСры Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ пространствами ΠΈΠΌΡ‘Π½.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… пространств ΠΈΠΌΡ‘Π½

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² окруТСниях с многочислСнными ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, распрСдСлСнными ΠΏΠΎ нСскольким ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, Ссли Π΅ΡΡ‚ΡŒ кластСры с нСбольшим количСством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дСсяток ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ). ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° такая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈΠΌΡ‘Π½. ИмСна рСсурсов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ пространства ΠΈΠΌΡ‘Π½. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ рСсурс Kubernetes ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ пространствС ΠΈΠΌΡ‘Π½.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ β€” это способ раздСлСния рСсурсов кластСра ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ²ΠΎΡ‚Ρ‹ рСсурсов).

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях Kubernetes ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ пространствС ΠΈΠΌΡ‘Π½ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ контроля доступа.

НС Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пространства ΠΈΠΌΡ‘Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для раздСлСния слСгка ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ рСсурсов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² случаС Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ прилоТСния. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ рСсурсы Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΡ‘Π½.

ИспользованиС пространств ΠΈΠΌΡ‘Π½

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ пространств ΠΈΠΌΡ‘Π½ описаны Π² руководствС администратора ΠΏΠΎ пространствам ΠΈΠΌΡ‘Π½.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ пространств ΠΈΠΌΡ‘Π½

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти список ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… пространств ΠΈΠΌΡ‘Π½ Π² кластСрС:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Kubernetes ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈ пространства ΠΈΠΌΡ‘Π½:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пространства ΠΈΠΌΡ‘Π½ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пространства ΠΈΠΌΡ‘Π½ для всСх ΠΊΠΎΠΌΠ°Π½Π΄

МоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ пространство ΠΈΠΌΡ‘Π½, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для всСх выполняСмых ΠΊΠΎΠΌΠ°Π½Π΄ kubectl Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ контСкстС.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ ΠΈ DNS

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π΅Π· пространства ΠΈΠΌΡ‘Π½

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ рСсурсов Kubernetes (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄Ρ‹, сСрвисы, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅) располоТСны Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… пространствах ΠΈΠΌΡ‘Π½. ΠŸΡ€ΠΈ этом сами рСсурсы пространства ΠΈΠΌΡ‘Π½ Π½Π΅ находятся Π½ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… пространствах ΠΈΠΌΡ‘Π½. А Ρ‚Π°ΠΊΠΈΠ΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ рСсурсы, ΠΊΠ°ΠΊ ΡƒΠ·Π»Ρ‹ ΠΈ persistentVolumes, Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ пространству ΠΈΠΌΡ‘Π½.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ рСсурсы Kubernetes находятся Π² пространствС ΠΈΠΌΡ‘Π½, Π° ΠΊΠ°ΠΊΠΈΠ΅ β€” Π½Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π§Ρ‚ΠΎ дальшС

ΠœΠ΅Ρ‚ΠΊΠΈ β€” это ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Ρ‹. ΠœΠ΅Ρ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π²Π°ΠΆΠ½Ρ‹ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ относятся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ основной систСмС. ΠœΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° подмноТСств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠœΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π²ΠΎ врСмя создания ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² любоС врСмя послС этого. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠœΠ΅Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ отслСТивании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π² Π²Π΅Π±-панСлях ΠΈ CLI-инструмСнтах. Π›ΡŽΠ±Π°Ρ Π½Π΅ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ информация Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ записана Π² Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ использования

ΠœΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π³ΠΈΠ±ΠΊΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ структуры с систСмными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π½Π΅ трСбуя ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ эти соотвСтствия.

РазвСртывания сСрвисов ΠΈ процСссы ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ часто ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ сущностями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, мноТСство Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ, нСсколько Π³Ρ€ΡƒΠΏΠΏ выпусков, нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ прилоТСния, нСсколько микросСрвисов Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ прилоТСния). Для управлСния часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ сквозныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ строго иСрархичСских прСдставлСний, особСнно ТСстких ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ, опрСдСляСмых инфраструктурой, Π° Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ.

Π­Ρ‚ΠΎ всСго лишь ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ; ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свои собствСнныС. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Бинтаксис ΠΈ Π½Π°Π±ΠΎΡ€ символов

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΡ‹ kubernetes.io/ ΠΈ k8s.io/ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для использования основными ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Kubernetes.

НапримСр, Π½ΠΈΠΆΠ΅ прСдставлСн ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Pod с двумя ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ environment: production ΠΈ app: nginx :

Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠΊ

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСлСктора ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚/ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠΊ β€” основноС срСдство Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Kubernetes.

Π’ настоящСС врСмя API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° сСлСкторов: Π½Π° равСнствС ΠΈ Π½Π° Π½Π°Π±ΠΎΡ€Π΅. Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… условий, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС всС условия Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, поэтому запятая-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ логичСский ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ И ( && ).

Π Π°Π±ΠΎΡ‚Π° пустых ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… сСлСкторов зависит ΠΎΡ‚ контСкста. Π’ΠΈΠΏΡ‹ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сСлСкторы, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

УсловиС равСнства

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ условия равСнства Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Pod ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ рСсурсы. НапримСр, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Pod Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡƒΠ·Π»Ρ‹ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ » accelerator=nvidia-tesla-p100 «.

УсловиС Π½Π°Π±ΠΎΡ€Π°

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ LIST ΠΈ WATCH

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ LIST ΠΈ WATCH ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ сСлСкторы ΠΌΠ΅Ρ‚ΠΎΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π•ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΠΎΠΈΡ… условий (строка запроса URL Π½ΠΈΠΆΠ΅ показываСтся Π² исходном Π²ΠΈΠ΄Π΅):

Π›ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ условия Π½Π° основС Π½Π°Π±ΠΎΡ€Π°:

Как ΡƒΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ, условия Π½Π°Π±ΠΎΡ€Π° Π΄Π°ΡŽΡ‚ большС возмоТностСй. НапримСр, Π² Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° И:

Π›ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ сопоставлСниСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° exists:

Установка ссылок Π² API-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Service ΠΈ ReplicationController

РСсурсы, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ условия Π½Π°Π±ΠΎΡ€Π°

Π’Ρ‹Π±ΠΎΡ€ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΡƒΠ·Π»ΠΎΠ²

Один ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования ΠΌΠ΅Ρ‚ΠΎΠΊ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°Π±ΠΎΡ€Π° ΡƒΠ·Π»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ ΠΏΠΎΠ΄. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎ Π²Ρ‹Π±ΠΎΡ€ ΡƒΠ·Π»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Аннотации Kubernetes ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для добавлСния собствСнных ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ инструмСнты ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эти ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ для добавлСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Kubernetes. ΠœΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ для поиска ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½ΠΈΡ… Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ малСнькими ΠΈΠ»ΠΈ большими, структурированными ΠΈΠ»ΠΈ нСструктурированными, ΠΊΡ€ΠΎΠΌΠ΅ этого ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π² ΠΌΠ΅Ρ‚ΠΊΠ°Ρ….

Аннотации, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ коллСкциями с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² аннотациях:

Поля, управляСмыС Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ этих ΠΏΠΎΠ»Π΅ΠΉ Π² Π²ΠΈΠ΄Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ позволяСт ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, установлСнных ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ сСрвСрами, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ автоматичСски сгСнСрированных ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… систСмами автоматичСского ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ сборкС, выпускС ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π·Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ выпуска, Π²Π΅Ρ‚ΠΊΠ° git, Π½ΠΎΠΌΠ΅Ρ€Π° PR, Ρ…Π΅ΡˆΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ адрСс рССстра.

Бсылки Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ логирования, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈΠ»ΠΈ Π°ΡƒΠ΄ΠΈΡ‚Π°.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ клиСнтской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈΠ»ΠΈ инструмСнтС, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, имя, вСрсия ΠΈ информация ΠΎ сборкС).

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎΠ± источникС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ инструмСнта/систСмы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, URL-адрСса связанных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² экосистСмы.

НСбольшиС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ развСртывания (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, конфигурация ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ).

НомСра Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅Ρ€ΠΎΠ² отвСтствСнных Π»ΠΈΡ† ΠΈΠ»ΠΈ записи Π² справочникС, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сайт Π³Ρ€ΡƒΠΏΠΏΡ‹.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΎΡ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ»ΠΈ использования нСстандартной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ВмСсто использования Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²ΠΎ внСшнСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, хотя это услоТнило Π±Ρ‹ созданиС ΠΎΠ±Ρ‰ΠΈΡ… клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ инструмСнтов развСртывания, управлСния, самодиагностики ΠΈ Ρ‚.Π΄.

Бинтаксис ΠΈ Π½Π°Π±ΠΎΡ€ символов

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΡ‹ kubernetes.io/ ΠΈ k8s.io/ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для использования основными ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Kubernetes.

НапримСр, Π½ΠΈΠΆΠ΅ прСдставлСн ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Pod с Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ imageregistry: https://hub.docker.com/ :

Π§Ρ‚ΠΎ дальшС

Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ рСсурсы Kubernetes, исходя ΠΈΠ· значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ рСсурсов. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² запросов сСлСкторов ΠΏΠΎΠ»Π΅ΠΉ:

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° kubectl Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС Pod-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля status.phase Ρ€Π°Π²Π½ΠΎ Running :

По сути, сСлСкторы ΠΏΠΎΠ»Π΅ΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ рСсурсов. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅Ρ‚ установлСнных сСлСкторов/Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², поэтому Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ рСсурсы всСх Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π²Π° запроса kubectl Π½ΠΈΠΆΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹:

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ поля

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

БоставныС сСлСкторы

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСлСкторы ΠΏΠΎΠ»Π΅ΠΉ с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ рСсурсов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Команда kubectl Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ StatefulSet ΠΈ Services, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² пространство ΠΈΠΌΠ΅Π½ default :

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Kubernetes Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ kubectl ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт инструмСнтам согласованно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ инструмСнтам, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ прилоТСния Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹.

ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ сосрСдоточСны Π½Π° понятии ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Kubernetes β€” это Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠ°ΠΊ услуга (PaaS), поэтому Π½Π΅ закрСпляСт Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ понятиС прилоТСния. ВмСсто этого прилоТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ прилоТСния довольно расплывчатоС.

ΠœΠ΅Ρ‚ΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ максимум ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΎΡ‚ использования Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ рСсурсному ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ.

ΠšΠ»ΡŽΡ‡ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π’ΠΈΠΏ
app.kubernetes.io/nameИмя прилоТСнияmysqlstring
app.kubernetes.io/instanceУникальноС имя экзСмпляра прилоТСнияwordpress-abcxzystring
app.kubernetes.io/versionВСкущая вСрсия прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сСмантичСская вСрсия, Ρ…Π΅Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ Ρ‚.Π΄.)5.7.21string
app.kubernetes.io/componentИмя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅databasestring
app.kubernetes.io/part-ofИмя основного прилоТСния, Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚wordpressstring
app.kubernetes.io/managed-byΠ˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ управлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌhelmstring

Для дСмонстрации этих ΠΌΠ΅Ρ‚ΠΎΠΊ, рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ StatefulSet :

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ экзСмпляры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Одно ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСно нСсколько Ρ€Π°Π· Π² кластСр Kubernetes, Π² рядС случаСв β€” Π² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½. НапримСр, WordPress ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСн Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· сайтов Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ собствСнный установлСнный экзСмпляр WordPress.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ способы использования ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠΊ, поэтому ΠΎΠ½ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎ стСпСни слоТности.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ сСрвис Π±Π΅Π· состояния

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Deployment ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для наблюдСния Π·Π° ΠΏΠΎΠ΄Π°ΠΌΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Service ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для открытия доступа ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…

Рассмотрим случай Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ послоТнСС: Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (WordPress), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (MySQL), установлСнноС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Helm. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° отправная Ρ‚ΠΎΡ‡ΠΊΠ° развСртывания Ρ‚Π°ΠΊΠΎΠ³ΠΎ прилоТСния.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Deployment ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для WordPress:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Service ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для открытия доступа ΠΊ WordPress:

MySQL открываСтся Π² Π²ΠΈΠ΄Π΅ StatefulSet с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ°ΠΊ для самого прилоТСния, Ρ‚Π°ΠΊ ΠΈ основного (Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ) прилоТСния, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π‘Π£Π‘Π”:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Service прСдоставляСт MySQL Π² составС WordPress:

Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ StatefulSet ΠΈ Service MySQL содСрТат большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ MySQL ΠΈ WordPress.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *