Kubernetes 1.14: ΠΎΠ±Π·ΠΎΡ€ основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²

Kubernetes 1.14: ΠΎΠ±Π·ΠΎΡ€ основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²

Π­Ρ‚ΠΎΠΉ Π½ΠΎΡ‡ΡŒΡŽ состоится ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π΅Π»ΠΈΠ· Kubernetes β€” 1.14. По слоТившСйся для нашСго Π±Π»ΠΎΠ³Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ, рассказываСм ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… измСнСниях Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии этого Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Open Source-ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, использованная для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, взята ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Kubernetes enhancements tracking, CHANGELOG-1.14 ΠΈ ΡΠΎΠΎΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… issues, pull requests, Kubernetes Enhancement Proposals (KEP).

Начнём с Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ввСдСния ΠΎΡ‚ SIG cluster-lifecycle: динамичСскиС отказоустойчивыС кластСры Kubernetes (Π° Ссли Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ, Ρ‚ΠΎ self-hosted HA deployments) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… (Π² контСкстС кластСров с ΠΎΠ΄Π½ΠΈΠΌ ΡƒΠ·Π»ΠΎΠΌ) ΠΊΠΎΠΌΠ°Π½Π΄ kubeadm (init ΠΈ join). Если Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, Ρ‚ΠΎ для этого:

  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ кластСром сСртификаты пСрСносятся Π² сСкрСты;
  • для возмоТности использования кластСра etcd Π²Π½ΡƒΡ‚Ρ€ΠΈ K8s-кластСра (Ρ‚.Π΅. избавлСния ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€ внСшнСй зависимости) задСйствован etcd-operator;
  • Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ настройки для внСшнСго балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ (Π² дальнСйшСм планируСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΈ ΠΎΡ‚ этой зависимости, Π½ΠΎ Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС).

Kubernetes 1.14: ΠΎΠ±Π·ΠΎΡ€ основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²
АрхитСктура HA-кластСра Kubernetes, созданного с kubeadm

Π‘ подробностями ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² design proposal. Π­Ρ‚Π° Ρ„ΠΈΡ‡Π° Π±Ρ‹Π»Π° ΠΏΠΎ-настоящСму Π΄ΠΎΠ»Π³ΠΎΠΆΠ΄Π°Π½Π½ΠΎΠΉ: Π°Π»ΡŒΡ„Π°-вСрсия оТидалась Π΅Ρ‰Ρ‘ Π² K8s 1.9, Π½ΠΎ появилась Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ.

API

Команда apply ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ вынСсСны ΠΈΠ· kubectl Π² apiserver. Π‘Π°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΏΠΎΡΡΠ½ΡΡŽΡ‚ своё Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ kubectl apply β€” Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с конфигурациями Π² Kubernetes, ΠΎΠ΄Π½Π°ΠΊΠΎ Β«ΠΏΠΎΠ»Π½Π° Π±Π°Π³ΠΎΠ² ΠΈ слоТно поддаётся исправлСниям», Π² связи с Ρ‡Π΅ΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ привСсти ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ ΠΈ пСрСнСсти Π² control plane. ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΈ наглядныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… сСгодня ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

Kubernetes 1.14: ΠΎΠ±Π·ΠΎΡ€ основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Π² KEP. ВСкущая Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ β€” Π°Π»ΡŒΡ„Π°-вСрсия (ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎ Π±Π΅Ρ‚Ρ‹ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π»ΠΈΠ· Kubernetes).

Π’ Π°Π»ΡŒΡ„Π°-вСрсии стала доступной Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования схСмы OpenAPI v3 для создания ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ OpenAPI-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ CustomResources (CR), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ (Π½Π° сторонС сСрвСра) рСсурсов K8s, опрСдСляСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (CustomResourceDefinition, CRD). ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ OpenAPI для CRD позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, kubectl) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π½Π° своСй сторонС (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… kubectl create ΠΈ kubectl apply) ΠΈ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ схСмС (kubectl explain). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ β€” Π² KEP.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ Ρ€Π°Π½Π΅Π΅ Π»ΠΎΠ³ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ с Ρ„Π»Π°Π³ΠΎΠΌ O_APPEND (Π° Π½Π΅ O_TRUNC) Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π»ΠΎΠ³ΠΎΠ² Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях ΠΈ для удобства truncate’Π° Π»ΠΎΠ³ΠΎΠ² внСшними ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ для Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΊΠΆΠ΅ Π² контСкстС Kubernetes API ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² PodSandbox ΠΈ PodSandboxStatus Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅ runtime_handler для ΡƒΡ‡Ρ‘Ρ‚Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎ RuntimeClass Π² pod’Π΅ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π½Ρ‘ΠΌ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² тСкстС ΠΏΡ€ΠΎ Ρ€Π΅Π»ΠΈΠ· Kubernetes 1.12, Π³Π΄Π΅ этот класс ΠΈ появился ΠΊΠ°ΠΊ Π°Π»ΡŒΡ„Π°-вСрсия), Π° Π² Admission Webhooks Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии AdmissionReview ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚. НаконСц, Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… Admission Webhooks Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹ ΠΈΡ… примСнСния namespace’Π°ΠΌΠΈ ΠΈ Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ кластСра.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°

PersistentLocalVolumes, имСвшиС статус Π±Π΅Ρ‚Π°-вСрсии с Ρ€Π΅Π»ΠΈΠ·Π° K8s 1.10, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ (GA): этот feature gate большС Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ Π² Kubernetes 1.17.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Downward API (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π½ΠΈ pod’Π°) для Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠ°ΠΊ subPath, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ β€” Π² Π²ΠΈΠ΄Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ поля subPathExpr, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈ опрСдСляСтся Π½ΡƒΠΆΠ½ΠΎΠ΅ имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ„ΠΈΡ‡Π° появилась Π² Kubernetes 1.11, Π½ΠΎ ΠΈ для 1.14 ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π² статусС Π°Π»ΡŒΡ„Π°-вСрсии.

Как ΠΈ Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· Kubernetes, ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ прСдставлСно для Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ CSI (Container Storage Interface):

CSI

Π‘Ρ‚Π°Π»Π° доступной (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π°Π»ΡŒΡ„Π°-вСрсии) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° для CSI-Ρ‚ΠΎΠΌΠΎΠ². Для Π΅Ρ‘ использования потрСбуСтся Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ feature gate ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ExpandCSIVolumes, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ CSI-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° Ρ„ΠΈΡ‡Π° для CSI Π² Π°Π»ΡŒΡ„Π°-вСрсии β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Ρ‚.Π΅. Π±Π΅Π· использования PV/PVC) Π½Π° CSI-Ρ‚ΠΎΠΌΡ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… спСцификации pod’ΠΎΠ². Π­Ρ‚ΠΎ снимаСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° использованиС CSI ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ…, открывая для Π½ΠΈΡ… Π΄Π²Π΅Ρ€ΠΈ Π² ΠΌΠΈΡ€ local ephemeral volumes. Для использования (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ CSIInlineVolume feature gate.

НамСтился прогрСсс ΠΈ Π²ΠΎ «внутрСнностях» Kubernetes, связанных с CSI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Π°ΠΊ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ (систСмным администраторам)… Π’ настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ вСрсии ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°: ΠΎΠ΄ΠΈΠ½ β€” Β«Π½Π° старый Π»Π°Π΄Β», Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ K8s (in-tree), Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½ΠΎΠ²ΠΎΠ³ΠΎ CSI (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π½Ρ‘ΠΌ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² здСсь). Π­Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ понятныС нСудобства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ стабилизации CSI ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ (deprecated) API Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… (in-tree) ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π½Π΅ прСдставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΈΠ·-Π·Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Kubernetes.

Всё это ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π°Π»ΡŒΡ„Π°-вСрсии достиг процСсс ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠ°ΠΊ in-tree, Π² CSI plugins, благодаря Ρ‡Π΅ΠΌΡƒ Π·Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ свСдСны ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΠ΄Π½ΠΎΠΉ вСрсии ΠΈΡ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со старыми API сохранится ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΏΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ. ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π΅Π»ΠΈΠ·Ρƒ Kubernetes (1.15) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° миграция всСх ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², рСализация ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ статус Π±Π΅Ρ‚Π°-вСрсии ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² инсталляциях K8s ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ см. Π² design proposal. БлСдствиСм этой ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ стал ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ для Ρ‚ΠΎΠΌΠΎΠ², опрСдСляСмых ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ (AWS, Azure, GCE, Cinder).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств с CSI (CSIBlockVolume) ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° Π² Π±Π΅Ρ‚Π°-Π²Π΅Ρ€ΡΠΈΡŽ.

Π£Π·Π»Ρ‹ / Kubelet

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π° Π°Π»ΡŒΡ„Π°-вСрсия Π½ΠΎΠ²ΠΎΠ³ΠΎ endpoint Π² Kubelet, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΠΎΡ‚Π΄Π°Ρ‡ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΏΠΎ основным рСсурсам. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Ссли Ρ€Π°Π½ΡŒΡˆΠ΅ Kubelet ΠΏΠΎΠ»ΡƒΡ‡Π°Π» статистику ΠΏΠΎ использованию ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈΠ· cAdvisor, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈΠ· исполняСмой срСды ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· CRI (Container Runtime Interface), ΠΎΠ΄Π½Π°ΠΊΠΎ сохранСна ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со старыми вСрсиями Docker. РаньшС собранная Π² Kubelet статистика ΠΎΡ‚Π΄Π°Π²Π°Π»Π°ΡΡŒ Ρ‡Π΅Ρ€Π΅Π· REST API, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ endpoint, располоТСнный ΠΏΠΎ адрСсу /metrics/resource/v1alpha1. Долгосрочная ΠΆΠ΅ стратСгия Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, прСдоставляСмых Kubelet. ΠšΡΡ‚Π°Ρ‚ΠΈ, сами эти ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ Β«core metricsΒ», Π° Β«resource metricsΒ», ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ Β«first-class resources, such as cpu, and memoryΒ».

Π’Π΅ΡΡŒΠΌΠ° занятный нюанс: нСсмотря Π½Π° явноС прСимущСство Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ gRPC endpoint Π² сравнСнии с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ случаями использования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Prometheus (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· benchmark’ΠΎΠ² см. Π½ΠΈΠΆΠ΅), Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Prometheus ΠΈΠ·-Π·Π° явного лидСрства этой систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² сообщСствС.

Β«gRPC Π½Π΅ совмСстим с основными ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Endpoint ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для поставки ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² Metrics Server ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с Π½ΠΈΠΌ. ΠŸΡ€ΠΈ использовании ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² Metrics Server ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ тСкстового Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Prometheus достаточно Ρ…ΠΎΡ€ΠΎΡˆΠ° для нас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ Prometheus, Π° Π½Π΅ gRPC, учитывая ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ Prometheus Π² сообщСствС. Когда Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ OpenMetrics станСт Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, ΠΌΡ‹ смоТСм ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ gRPC с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° основС protoΒ».

Kubernetes 1.14: ΠΎΠ±Π·ΠΎΡ€ основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²
Один ΠΈΠ· ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… тСстов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ использования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² gRPC ΠΈ Prometheus Π² Π½ΠΎΠ²ΠΎΠΌ endpoint’Π΅ Kubelet для ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ подробности ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² KEP.

Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  • Kubelet Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ (Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹) пытаСтся ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² нСизвСстном состоянии (unknown) ΠΏΠ΅Ρ€Π΅Π΄ опСрациями рСстарта ΠΈ удалСния.
  • ΠŸΡ€ΠΈ использовании PodPresets Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ init-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ добавляСтся Ρ‚Π° ΠΆΠ΅ информация, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ.
  • Kubelet Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ usageNanoCores ΠΈΠ· ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° статистики CRI, Π° для ΡƒΠ·Π»ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² Windows Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° сСтСвая статистика.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ записываСтся Π² Π»Π΅ΠΉΠ±Π»Ρ‹ kubernetes.io/os ΠΈ kubernetes.io/arch ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Node (ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ ΠΈΠ· Π±Π΅Ρ‚Ρ‹ Π² GA).
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмной Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² pod’Π΅ (RunAsGroup, появилась Π² K8s 1.11) ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΠ»Π°ΡΡŒ Π΄ΠΎ Π±Π΅Ρ‚Π°-вСрсии (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).
  • du ΠΈ find, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² cAdvisor, Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° Go-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

CLI

Π’ cli-runtime ΠΈ kubectl Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ -k для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с kustomize (кстати, Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вСдётся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ), Ρ‚.Π΅. для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… YAML-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ kustomization (подробности ΠΎΠ± ΠΈΡ… использовании см. Π² KEP):

Kubernetes 1.14: ΠΎΠ±Π·ΠΎΡ€ основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простого использования Ρ„Π°ΠΉΠ»Π° kustomization (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ kustomize Π² Ρ€Π°ΠΌΠΊΠ°Ρ… overlays)

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π° kubectl create cronjob, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π·Π° сСбя.
  • Π’ kubectl logs Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ΠΈ -f (--follow для стриминга Π»ΠΎΠ³ΠΎΠ²) ΠΈ -l (--selector для label query).
  • kubectl Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ wild card.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ kubectl wait Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ„Π»Π°Π³ --all для Π²Ρ‹Π±ΠΎΡ€Π° всСх рСсурсов Π² пространствС ΠΈΠΌΡ‘Π½ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° рСсурсов.

Π”Ρ€ΡƒΠ³ΠΈΠ΅

Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ (GA) статус ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности:

  • ReadinessGate, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² спСцификации pod’Π° для опрСдСлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… условий, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² готовности pod’Π°;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… страниц (feature gate ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ HugePages);
  • CustomPodDNS;
  • PriorityClass API, Pod Priority & Preemption.

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ измСнСния, прСдставлСнныС Π² Kubernetes 1.14:

  • ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° RBAC ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ большС Π½Π΅ Π΄Π°Ρ‘Ρ‚ доступа ΠΊ API discovery ΠΈ access-review ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π±Π΅Π· Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (unauthenticated).
  • ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CoreDNS обСспСчиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Linux, поэтому ΠΏΡ€ΠΈ использовании kubeadm для Π΅Π³ΠΎ (CoreDNS) развёртывания Π² кластСрС ΡƒΠ·Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Linux (для этого ограничСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ nodeSelectors).
  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ CoreDNS ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½ forward вмСсто proxy. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² CoreDNS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° readinessProbe, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ (Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΡŽ) pod’Ρ‹.
  • Π’ kubeadm, Π½Π° Ρ„Π°Π·Π°Ρ… init ΠΈΠ»ΠΈ upload-certs, стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ сСртификаты, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ control-plane ΠΊ сСкрСту kubeadm-certs (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Π»Π°Π³ --experimental-upload-certs).
  • Для Windows-инсталляций появилась Π°Π»ΡŒΡ„Π°-вСрсия ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ gMSA (Group Managed Service Account) β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… записСй Π² Active Directory, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ.
  • Для GCE Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ mTLS-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ etcd ΠΈ kube-apiserver.
  • ОбновлСния Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ/зависимом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Docker 18.09 Π² kubeadm, Π° минимальной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ вСрсиСй Docker API стала 1.26.

P.S.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π² нашСм Π±Π»ΠΎΠ³Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

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