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

Π’Ρ‡Π΅Ρ€Π°, 9 дСкабря, состоялся ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π΅Π»ΠΈΠ· Kubernetes β€” 1.17. По слоТившСйся для нашСго Π±Π»ΠΎΠ³Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ, ΠΌΡ‹ рассказываСм ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… измСнСниях Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии.

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

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

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π’ΠΎΡ‚ ΡƒΠΆΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Π² сообщСствС Kubernetes ΠΆΠ΄Π°Π»ΠΈ этой Ρ„ΠΈΡ‡ΠΈ β€” Topology-aware service routing. Если KEP ΠΏΠΎ Π½Π΅ΠΉ Π±Π΅Ρ€Ρ‘Ρ‚ своё Π½Π°Ρ‡Π°Π»ΠΎ Π² октябрС 2018-Π³ΠΎ, Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ enhancement β€” 2 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ issues (Π²Ρ€ΠΎΠ΄Π΅ этого) β€” ΠΈ вовсС ΡΡ‚Π°Ρ€ΡˆΠ΅ Π΅Ρ‰Ρ‘ Π½Π° нСсколько лСт…

ΠžΠ±Ρ‰Π°Ρ идСя сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Β«Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽΒ» ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ для сСрвисов, находящихся Π² Kubernetes. Β«Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΒ» Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый топологичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒΒ» (topology level), ΠΊΠΎΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ:

  • ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ для сСрвисов ΡƒΠ·Π΅Π»,
  • Ρ‚Π° ΠΆΠ΅ самая сСрвСрная стойка,
  • Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый Ρ€Π΅Π³ΠΈΠΎΠ½,
  • Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€,
  • …

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΈΡ‡ΠΈ:

  • экономия Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… инсталляциях со мноТСством Π·ΠΎΠ½ доступности (multi-AZ) β€” см. ΡΠ²Π΅ΠΆΡƒΡŽ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π΅Π³ΠΈΠΎΠ½Π°, Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… AZ Π² AWS;
  • мСньшиС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ/Π»ΡƒΡ‡ΡˆΠ°Ρ пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ;
  • ΡˆΠ°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сСрвис, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΡƒΠ·Π»Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡˆΠ°Ρ€Π΄Π΅;
  • Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ fluentd (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²) Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π» с прилоТСниями, Π»ΠΎΠ³ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ;
  • …

Π’Π°ΠΊΡƒΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ, Β«Π·Π½Π°ΡŽΡ‰ΡƒΡŽΒ» ΠΎ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π΅Ρ‰Ρ‘ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ΠΌ network affinity β€” ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с node affinity, pod affinity/anti-affinity ΠΈΠ»ΠΈ появившимся Π½Π΅ Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ Topology-Aware Volume Scheduling (ΠΈ Volume Provisioning). Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ServiceTopology Π² Kubernetes β€” Π°Π»ΡŒΡ„Π°-вСрсия.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ„ΠΈΡ‡Π° устроСна ΠΈ ΠΊΠ°ΠΊ Π΅ΠΉ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Π²Ρ‚ΠΎΡ€ΠΎΠ².

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ стСка IPv4/IPv6

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ прогрСсс зафиксирован Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСтСвой Ρ„ΠΈΡ‡Π΅: ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π΄Π²ΡƒΡ… IP-стСков, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ прСдставлСна Π² K8s 1.16. Π’ частности, Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· принёс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния:

  • Π² kube-proxy Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΎΠ±ΠΎΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… (IPv4 ΠΈ IPv6);
  • Π² Pod.Status.PodIPs появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° downward API (ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с этим Π² /etc/hosts Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ для хоста Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ IPv6-адрСс);
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΡƒΡ… стСков Π² KIND (Kubernetes IN Docker) ΠΈ kubeadm;
  • ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹Π΅ e2e-тСсты.

Kubernetes 1.17: ΠΎΠ±Π·ΠΎΡ€ основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²
Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ использования Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ стСка IPV4/IPv6 Π² KIND

ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ ΠΏΠΎ CSI

ОбъявлСна ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΉ для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π½Π° Π±Π°Π·Π΅ CSI, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ прСдставлСнная Π² K8s 1.12.

Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° ΠΏΠΎ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Ρ‚ΠΎΠΌΠΎΠ² Π½Π° CSI β€” CSI Migration β€” достигла Π±Π΅Ρ‚Π°-вСрсии. Π­Ρ‚Π° Ρ„ΠΈΡ‡Π° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ пСрСвСсти ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ (in-tree) Π½Π° соврСмСнный интСрфСйс (CSI, out-of-tree) Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Kubernetes. Администраторам кластСров Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CSI Migration, послС Ρ‡Π΅Π³ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ stateful-рСсурсы ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ «просто Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΒ»β€¦ Π½ΠΎ ΡƒΠΆΠ΅ с использованиСм Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… CSI-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² вмСсто ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ…, входящих Π² ядро Kubernetes.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² статусС Π±Π΅Ρ‚Π°-вСрсии Π³ΠΎΡ‚ΠΎΠ²Π° миграция для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² AWS EBS (kubernetes.io/aws-ebs) ΠΈ GCE PD (kubernetes.io/gce-pd). ΠŸΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ Ρ‚Π°ΠΊΠΎΠ²Ρ‹:

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

О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ «традиционная» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π² K8s ΠΏΡ€ΠΈΡˆΠ»Π° ΠΊ CSI, ΠΌΡ‹ рассказывали Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. А ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρƒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ CSI Π² статус Π±Π΅Ρ‚Π°-вСрсии посвящСна ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ публикация Π² Π±Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, статуса Π±Π΅Ρ‚Π°-вСрсии (Ρ‚.Π΅. Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) Π² Ρ€Π΅Π»ΠΈΠ·Π΅ Kubernetes 1.17 достигла другая значимая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² контСкстС CSI, бСрущая своё Π½Π°Ρ‡Π°Π»ΠΎ (Π°Π»ΡŒΡ„Π°-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ) Π² K8s 1.12, β€” созданиС ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ² ΠΈ восстановлСниС ΠΈΠ· Π½ΠΈΡ…. Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π² Kubernetes Volume Snapshot Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ Π±Π΅Ρ‚Π°-Ρ€Π΅Π»ΠΈΠ·Ρƒ:

  • Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠ° sidecar’Π° CSI external-snapshotter Π½Π° Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°,
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ сСкрСт Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (deletion secret) ΠΊΠ°ΠΊ аннотация ΠΊ содСрТимому ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° Ρ‚ΠΎΠΌΠ°,
  • Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ (finalizer) для прСдотвращСния удалСния API-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π° ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ связСй.

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π»ΠΈΠ·Π° 1.17 Ρ„ΠΈΡ‡Π° поддСрТиваСтся Ρƒ Ρ‚Ρ€Ρ‘Ρ… CSI-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ²: GCE Persistent Disk CSI Driver, Portworx CSI Driver ΠΈ NetApp Trident CSI Driver. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π΅Ρ‘ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ использовании ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² этой ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Π±Π»ΠΎΠ³Π΅.

Cloud Provider Labels

Π›Π΅ΠΉΠ±Π»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π° создаваСмыС ΡƒΠ·Π»Ρ‹ ΠΈ Ρ‚ΠΎΠΌΠ° Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°, Π±Ρ‹Π»ΠΈ доступны Π² Kubernetes ΠΊΠ°ΠΊ Π±Π΅Ρ‚Π°-вСрсия ΡƒΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π²Π½ΠΎ β€” начиная с Ρ€Π΅Π»ΠΈΠ·Π° K8s 1.2 (Π°ΠΏΡ€Π΅Π»ΡŒ 2016 Π³ΠΎΠ΄Π°!). Учитывая ΠΈΡ… ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ настало врСмя ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ„ΠΈΡ‡Ρƒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ (GA).

ΠŸΠΎΡΠ΅ΠΌΡƒ всС ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (ΠΏΠΎ топологиям):

  • beta.kubernetes.io/instance-type β†’ node.kubernetes.io/instance-type
  • failure-domain.beta.kubernetes.io/zone β†’ topology.kubernetes.io/zone
  • failure-domain.beta.kubernetes.io/region β†’ topology.kubernetes.io/region

… Π½ΠΎ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ доступны ΠΈ ΠΏΠΎ своим старым названиям (для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости). Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, всСм администраторам рСкомСндуСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»Π΅ΠΉΠ±Π»Ρ‹. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ докумСнтация K8s Π±Ρ‹Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ kubeadm

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π°Π»ΡŒΡ„Π°-вСрсии Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ прСдставлСн структурированный Π²Ρ‹Π²ΠΎΠ΄ для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ kubeadm. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹: JSON, YAML, Go-шаблон.

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этой Ρ„ΠΈΡ‡ΠΈ (согласно KEP) Ρ‚Π°ΠΊΠΎΠ²Π°:

Π₯ΠΎΡ‚ΡŒ Kubernetes ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ (Ссли Π½Π΅ Π΄Π΅-ΡŽΡ€Π΅) для этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ являСтся использованиС kubeadm. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ инструмСнты управлСния систСмами Π²Ρ€ΠΎΠ΄Π΅ Terraform ΠΎΠΏΠΈΡ€Π°ΡŽΡ‚ΡΡ Π½Π° kubeadm для дСплоя Kubernetes. Π—Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Cluster API Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ для bootstrapping’Π° Kubernetes с kubeadm ΠΈ cloud-init.

Π‘Π΅Π· структурированного Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°ΠΆΠ΅ самыС Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½Ρ‹Π΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд измСнСния ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Terraform, Cluster API ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ софт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ kubeadm.

Π’ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… ΠΏΠ»Π°Π½Π°Ρ… значится ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° (Π² Π²ΠΈΠ΄Π΅ структурированного Π²Ρ‹Π²ΠΎΠ΄Π°) для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ kubeadm:

  • alpha certs
  • config images list
  • init
  • token create
  • token list
  • upgrade plan
  • version

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ JSON-ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ kubeadm init -o json:

{
  "node0": "192.168.20.51:443",
  "caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
  "token": {
    "id":          "5ndzuu.ngie1sxkgielfpb1",
    "ttl":         "23h",
    "expires":     "2019-05-08T18:58:07Z",
    "usages":      [
      "authentication",
      "signing"
    ],
    "description": "The default bootstrap token generated by 'kubeadm init'.",
    "extraGroups": [
      "system:bootstrappers:kubeadm:default-node-token"
    ]
  },
  "raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}

Бтабилизация Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²

Π’ΠΎΠΎΠ±Ρ‰Π΅ ΠΆΠ΅, Ρ€Π΅Π»ΠΈΠ· Kubernetes 1.17 состоялся ΠΏΠΎΠ΄ Π΄Π΅Π²ΠΈΠ·ΠΎΠΌ Β«Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΒ». Π’ΠΎΠΌΡƒ способствовал Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΠΈΡ‡ΠΈ Π² Π½Ρ‘ΠΌ (ΠΈΡ… ΠΎΠ±Ρ‰Π΅Π΅ количСство β€” 14) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ статус GA. Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ…:

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ измСнСния

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π² Π² Kubernetes 1.17, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ ограничиваСтся пСрСчислСнными Π²Ρ‹ΡˆΠ΅. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… (Π° для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ пСрСчня β€” см. CHANGELOG):

  • Π΄ΠΎ Π±Π΅Ρ‚Π°-вСрсии «доросла» прСдставлСнная Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Ρ€Π΅Π»ΠΈΠ·Π΅ Ρ„ΠΈΡ‡Π° RunAsUserName для Windows;
  • Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ постигло EndpointSlice API (Ρ‚ΠΎΠΆΠ΅ ΠΈΠ· K8s 1.16), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠΊΠ° это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π΅ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ/ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ Endpoint API Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ;
  • ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ кластСра pod’Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² пространств ΠΈΠΌΡ‘Π½ kube-system (подробности см Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ Limit Priority Class consumption);
  • новая опция для kubelet β€” --reserved-cpus β€” позволяСт явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ список CPU, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для систСмы;
  • для kubectl logs прСдставлСн Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π»Π°Π³ --prefix, добавлящий Π½Π°Π·Π²Π°Π½ΠΈΠ΅ pod’Π° ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° источника ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π»ΠΎΠ³Π°;
  • Π² label.Selector Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ RequiresExactMatch;
  • всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² kube-dns Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ с мСньшими привилСгиями;
  • hyperkube Π²Ρ‹Π΄Π΅Π»Π΅Π½ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π΅Π»ΠΈΠ·Ρ‹ Kubernetes;
  • Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ kube-proxy для Π½Π΅-UDP-ΠΏΠΎΡ€Ρ‚ΠΎΠ².

ИзмСнСния Π² зависимостях:

  • вСрсия CoreDNS Π² составС Π² kubeadm β€” 1.6.5;
  • вСрсия crictl ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π΄ΠΎ v1.16.1;
  • CSI 1.2.0;
  • etcd 3.4.3;
  • послСдняя провСрСнная вСрсия Docker ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Π΄ΠΎ 19.03;
  • минимальная вСрсия Go, трСбуСмая для сборки Kubernetes 1.17, β€” 1.13.4.

P.S.

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

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