ΠΡΠΎΠΉ Π½ΠΎΡΡΡ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, Π²Π·ΡΡΠ° ΠΈΠ·
ΠΠ°ΡΠ½ΡΠΌ Ρ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΡ SIG cluster-lifecycle: Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΡ Kubernetes (Π° Π΅ΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ, ΡΠΎ self-hosted HA deployments) ΡΠ΅ΠΏΠ΅ΡΡ kubeadm
(init
ΠΈ join
). ΠΡΠ»ΠΈ Π²ΠΊΡΠ°ΡΡΠ΅, ΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ:
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΡ;
- Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° etcd Π²Π½ΡΡΡΠΈ K8s-ΠΊΠ»Π°ΡΡΠ΅ΡΠ° (Ρ.Π΅. ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΠ΅ΠΉ Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ) Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½
etcd-operator ; - Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΡΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ (Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ°Π·Π° ΠΈ ΠΎΡ ΡΡΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅).
ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° HA-ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ kubeadm
Π‘ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π²
API
ΠΠΎΠΌΠ°Π½Π΄Π° apply
ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ kubectl
Π² apiserver. Π‘Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΠΎΡΡΠ½ΡΡΡ ΡΠ²ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌ, ΡΡΠΎ kubectl apply
β ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ Π² Kubernetes, ΠΎΠ΄Π½Π°ΠΊΠΎ Β«ΠΏΠΎΠ»Π½Π° Π±Π°Π³ΠΎΠ² ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΒ», Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π² control plane. ΠΡΠΎΡΡΡΠ΅ ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ:
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ β Π²
Π Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ ΡΡΠ°Π»Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ kubectl
) Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ (Π² ΡΠ°ΠΌΠΊΠ°Ρ
kubectl create
ΠΈ kubectl apply
) ΠΈ Π²ΡΠ΄Π°Π²Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡ
Π΅ΠΌΠ΅ (kubectl explain
). ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ β Π²
Π‘ΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΠΈΠ΅ ΡΠ°Π½Π΅Π΅ Π»ΠΎΠ³ΠΈ O_APPEND
(Π° Π½Π΅ O_TRUNC
) Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ Π»ΠΎΠ³ΠΎΠ² Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
ΠΈ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° truncate’Π° Π»ΠΎΠ³ΠΎΠ² Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΡΠ°ΡΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Kubernetes API ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² PodSandbox
ΠΈ PodSandboxStatus
runtime_handler
Π΄Π»Ρ ΡΡΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΎ RuntimeClass
Π² pod’Π΅ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π½ΡΠΌ ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎ AdmissionReview
ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² ΠΏΡΠ°Π²ΠΈΠ»Π°Ρ
Admission Webhooks ΡΠ΅ΠΏΠ΅ΡΡ
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°
PersistentLocalVolumes
subPath
subPathExpr
, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ ΠΈΠΌΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΈΡΠ° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² Kubernetes 1.11, Π½ΠΎ ΠΈ Π΄Π»Ρ 1.14 ΠΎΡΡΠ°Π»Π°ΡΡ Π² ΡΡΠ°ΡΡΡΠ΅ Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ.
ΠΠ°ΠΊ ΠΈ Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ΅Π»ΠΈΠ· Kubernetes, ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠΈΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π΄Π»Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ CSI (Container Storage Interface):
CSI
Π‘ΡΠ°Π»Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ (Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ) ExpandCSIVolumes
, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ CSI-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅.
ΠΡΡ ΠΎΠ΄Π½Π° ΡΠΈΡΠ° Π΄Π»Ρ CSI Π² Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ β CSIInlineVolume
feature gate.
ΠΠ°ΠΌΠ΅ΡΠΈΠ»ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ ΠΈ Π²ΠΎ Β«Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΡΡ
Β» Kubernetes, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ CSI, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ°ΠΊ Π·Π°ΠΌΠ΅ΡΠ½Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ (ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ)β¦ Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°: ΠΎΠ΄ΠΈΠ½ β Β«Π½Π° ΡΡΠ°ΡΡΠΉ Π»Π°Π΄Β», Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ K8s (in-tree), Π° Π²ΡΠΎΡΠΎΠΉ β Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π½ΠΎΠ²ΠΎΠ³ΠΎ CSI (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π½ΡΠΌ ΡΠΈΡΠ°ΠΉΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²
ΠΡΡ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΡΡΠΈΠ³
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±Π»ΠΎΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ² Ρ CSI (CSIBlockVolume
)
Π£Π·Π»Ρ / Kubelet
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΡ /metrics/resource/v1alpha1
. ΠΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½Π°Ρ ΠΆΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
ΠΠ΅ΡΡΠΌΠ° Π·Π°Π½ΡΡΠ½ΡΠΉ Π½ΡΠ°Π½Ρ: Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ gRPC endpoint Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ»ΡΡΠ°ΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° Prometheus (ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· benchmark’ΠΎΠ² ΡΠΌ. Π½ΠΈΠΆΠ΅), Π°Π²ΡΠΎΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Prometheus ΠΈΠ·-Π·Π° ΡΠ²Π½ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΡΡΠ²Π° ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅.
Β«gRPC Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. Endpoint ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊ Π² Metrics Server ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ Π½ΠΈΠΌ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Metrics Server ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Prometheus Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠ° Π΄Π»Ρ Π½Π°Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ Prometheus, Π° Π½Π΅ gRPC, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠΈΡΠΎΠΊΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΡΡΡ Prometheus Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅. ΠΠΎΠ³Π΄Π° ΡΠΎΡΠΌΠ°Ρ OpenMetrics ΡΡΠ°Π½Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΊ ΠΏΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ gRPC Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ protoΒ».
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² gRPC ΠΈ Prometheus Π² Π½ΠΎΠ²ΠΎΠΌ endpoint’Π΅ Kubelet Π΄Π»Ρ ΠΌΠ΅ΡΡΠΈΠΊ. ΠΠΎΠ»ΡΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²
Π‘ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
- Kubelet ΡΠ΅ΠΏΠ΅ΡΡ (Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ)
ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Π² Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ (unknown) ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΡΠ΅ΡΡΠ°ΡΡΠ° ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. - ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ
ΡΠ΅ΠΏΠ΅ΡΡ init-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡPodPresets
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ° ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. - 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
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ:
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°kubectl create cronjob
, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ Π·Π° ΡΠ΅Π±Ρ. - Π
kubectl logs
ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎΡΠΎΡΠ΅ΡΠ°ΡΡ ΡΠ»Π°Π³ΠΈ-f
(--follow
Π΄Π»Ρ ΡΡΡΠΈΠΌΠΈΠ½Π³Π° Π»ΠΎΠ³ΠΎΠ²) ΠΈ-l
(--selector
Π΄Π»Ρ label query). - kubectl
Π½Π°ΡΡΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ wild card. - Π ΠΊΠΎΠΌΠ°Π½Π΄Ρ
kubectl wait
Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ»Π°Π³--all
Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π²ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΡΡΠ³ΠΈΠ΅
Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ (GA) ΡΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
-
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ pod’Π° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π² Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ pod’Π°;ReadinessGate
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΎΠ»ΡΡΠΈΡ
ΡΡΡΠ°Π½ΠΈΡ (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.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
Kubernetes 1.13: ΠΎΠ±Π·ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ² Β»; - Β«
Kubernetes 1.12: ΠΎΠ±Π·ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ² Β»; - Β«
Kubernetes 1.11: ΠΎΠ±Π·ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ² Β»; - Β«
Kubernetes 1.10: ΠΎΠ±Π·ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ² Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com