Kubernetes 1.14: ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื

Kubernetes 1.14: ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื

ื”ืœื™ืœื” ื”ื–ื” ืžืชืจื—ืฉ ื”ืžื”ื“ื•ืจื” ื”ื‘ืื” ืฉืœ Kubernetes - 1.14. ืขืœ ืคื™ ื”ืžืกื•ืจืช ืฉื”ืชืคืชื—ื” ืขื‘ื•ืจ ื”ื‘ืœื•ื’ ืฉืœื ื•, ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ื”ืฉื™ื ื•ื™ื™ื ื”ืžืจื›ื–ื™ื™ื ื‘ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ืžื•ืฆืจ ื”ืงื•ื“ ื”ืคืชื•ื— ื”ื ืคืœื ื”ื–ื”.

ื”ืžื™ื“ืข ื”ืžืฉืžืฉ ืœื”ื›ื ืช ื—ื•ืžืจ ื–ื” ื ืœืงื— ืž ื˜ื‘ืœืื•ืช ืžืขืงื‘ ืœืฉื™ืคื•ืจื™ Kubernetes, CHANGELOG-1.14 ื•ื ื•ืฉืื™ื ืงืฉื•ืจื™ื, ื‘ืงืฉื•ืช ืžืฉื™ื›ื”, Kubernetes Enhancement Proposals (KEP).

ื ืชื—ื™ืœ ืขื ื”ืงื“ืžื” ื—ืฉื•ื‘ื” ืžืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ืืฉื›ื•ืœ SIG: ืืฉื›ื•ืœื•ืช ื›ืฉืœ ื“ื™ื ืžื™ื™ื Kubernetes (ืื• ืœื™ืชืจ ื“ื™ื•ืง, ืคืจื™ืกื•ืช HA ื‘ืื™ืจื•ื— ืขืฆืžื™) ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ื‘ืืžืฆืขื•ืช ืคืงื•ื“ื•ืช ืžื•ื›ืจื•ืช (ื‘ื”ืงืฉืจ ืฉืœ ืืฉื›ื•ืœื•ืช ืฆืžืชื™ื ื‘ื•ื“ื“ื™ื). kubeadm (init ะธ join). ื‘ืงื™ืฆื•ืจ, ื‘ืฉื‘ื™ืœ ื–ื”:

  • ืชืขื•ื“ื•ืช ื”ืžืฉืžืฉื•ืช ืืช ื”ืืฉื›ื•ืœ ืžื•ืขื‘ืจื•ืช ืœืกื•ื“ื•ืช;
  • ืœืืคืฉืจื•ืช ืœื”ืฉืชืžืฉ ื‘ืืฉื›ื•ืœ etcd ื‘ืชื•ืš ืืฉื›ื•ืœ K8s (ื›ืœื•ืžืจ ื”ื™ืคื˜ืจื•ืช ืžื”ืชืœื•ืช ื”ื—ื™ืฆื•ื ื™ืช ื”ืงื™ื™ืžืช ื‘ืขื‘ืจ) etcd-ืžืคืขื™ืœ;
  • ืžืชืขื“ ืืช ื”ื”ื’ื“ืจื•ืช ื”ืžื•ืžืœืฆื•ืช ืœืžืื–ืŸ ืขื•ืžืกื™ื ื—ื™ืฆื•ื ื™ ื”ืžืกืคืง ืชืฆื•ืจื” ืขืžื™ื“ื” ืœืชืงืœื•ืช (ื‘ืขืชื™ื“ ืžืชื•ื›ื ืŸ ืœื‘ื˜ืœ ืชืœื•ืช ื–ื•, ืืš ืœื ื‘ืฉืœื‘ ื–ื”).

Kubernetes 1.14: ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื
ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ ืืฉื›ื•ืœ Kubernetes HA ืฉื ื•ืฆืจ ืขื kubeadm

ืคืจื˜ื™ื ืขืœ ื”ื™ื™ืฉื•ื ื ื™ืชืŸ ืœืžืฆื•ื ื‘ ื”ืฆืขืช ืขื™ืฆื•ื‘. ืœืชื›ื•ื ื” ื”ื–ื• ื‘ืืžืช ื—ื™ื›ื• ื–ืžืŸ ืจื‘: ื’ืจืกืช ื”ืืœืคื ื”ื™ื™ืชื” ืฆืคื•ื™ื” ืœื—ื–ื•ืจ ื‘-K8s 1.9, ืื‘ืœ ื”ื•ืคื™ืขื” ืจืง ืขื›ืฉื™ื•.

API

ืงื‘ื•ืฆื” apply ื•ื‘ืื•ืคืŸ ื›ืœืœื™ ื ื™ื”ื•ืœ ืื•ื‘ื™ื™ืงื˜ ื”ืฆื”ืจืชื™ ืขื‘ืจ ืฉืœ kubectl ื‘-apiserver. ื”ืžืคืชื—ื™ื ืขืฆืžื ืžืกื‘ื™ืจื™ื ื‘ืงืฆืจื” ืืช ื”ื—ืœื˜ืชื ื‘ื›ืš kubectl apply - ื—ืœืง ืžื”ื•ืชื™ ื‘ืขื‘ื•ื“ื” ืขื ืชืฆื•ืจื•ืช ื‘- Kubernetes, ืขื ื–ืืช, "ื”ื•ื ืžืœื ื‘ืื’ื™ื ื•ืงืฉื” ืœืชืงืŸ", ื•ืœื›ืŸ ื™ืฉ ืœื”ื—ื–ื™ืจ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ื–ื• ืœืงื“ืžื•ืชื” ื•ืœื”ืขื‘ื™ืจ ืื•ืชื” ืœืžื™ืฉื•ืจ ื”ื‘ืงืจื”. ื“ื•ื’ืžืื•ืช ืคืฉื•ื˜ื•ืช ื•ื‘ืจื•ืจื•ืช ืœื‘ืขื™ื•ืช ื”ืงื™ื™ืžื•ืช ื”ื™ื•ื:

Kubernetes 1.14: ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื

ืคืจื˜ื™ื ืขืœ ื”ื™ื™ืฉื•ื ื ืžืฆืื™ื ืงืค. ื”ืžื•ื›ื ื•ืช ื”ื ื•ื›ื—ื™ืช ื”ื™ื ืืœืคื (ื”ืงื™ื“ื•ื ืœื‘ื˜ื ืžืชื•ื›ื ืŸ ื‘ืžื”ื“ื•ืจื” ื”ื‘ืื” ืฉืœ Kubernetes).

ื–ืžื™ืŸ ื‘ื’ืจืกืช ืืœืคื ื”ื–ื“ืžื ื•ืช ื‘ืืžืฆืขื•ืช ืกื›ื™ืžืช OpenAPI v3 ืขื‘ื•ืจ ื™ืฆื™ืจื” ื•ืคืจืกื•ื ืฉืœ ืชื™ืขื•ื“ OpenAPI ืขื‘ื•ืจ CustomResources (CR) ื”ืžืฉืžืฉ ืœืื™ืžื•ืช (ื‘ืฆื“ ื”ืฉืจืช) ืฉืœ ืžืฉืื‘ื™ื ื”ืžื•ื’ื“ืจื™ื ืขืœ ื™ื“ื™ ื”ืžืฉืชืžืฉ ืฉืœ K8 (CustomResourceDefinition, CRD). ืคืจืกื•ื OpenAPI ืขื‘ื•ืจ CRD ืžืืคืฉืจ ืœืœืงื•ื—ื•ืช (ืœืžืฉืœ. kubectl) ื‘ืฆืข ืื™ืžื•ืช ื‘ืฆื“ ืฉืœืš (ื‘ืชื•ืš kubectl create ะธ kubectl apply) ื•ื”ื ืคืงืช ืชื™ืขื•ื“ ื‘ื”ืชืื ืœืชื›ื ื™ืช (kubectl explain). ืคืจื˜ื™ื - ื‘ ืงืค.

ื™ื•ืžื ื™ื ืงื™ื™ืžื™ื ื ืคืชื—ื™ื ื›ืขืช ืขื ื“ื’ืœ O_APPEND (ืื‘ืœ ืœื O_TRUNC) ื›ื“ื™ ืœืžื ื•ืข ืื•ื‘ื“ืŸ ืฉืœ ื™ื•ืžื ื™ื ื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื ื•ืœื ื•ื—ื•ืช ืฉืœ ื—ื™ืชื•ืš ื™ื•ืžื ื™ื ืขื ื›ืœื™ ืขื–ืจ ื—ื™ืฆื•ื ื™ื™ื ืœืกื™ื‘ื•ื‘.

ื’ื ื‘ื”ืงืฉืจ ืฉืœ Kubernetes API, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ื›ื™ ื‘ PodSandbox ะธ PodSandboxStatus ื”ื•ืกื™ืฃ ืฉื“ื” runtime_handler ืœืจืฉื•ื ืžื™ื“ืข ืขืœ RuntimeClass ื‘ืชืจืžื™ืœ (ืงืจื ืขื•ื“ ืขืœ ื–ื” ื‘ื˜ืงืกื˜ ืขืœ ืžื”ื“ื•ืจืช Kubernetes 1.12, ืฉื‘ื• ื”ื›ื™ืชื” ื”ื–ื• ื”ื•ืคื™ืขื” ื›ื’ืจืกืช ืืœืคื), ื•ื‘-Admission Webhooks ืžื•ื˜ืžืข ื”ื™ื›ื•ืœืช ืœืงื‘ื•ืข ืื™ืœื• ื’ืจืกืื•ืช AdmissionReview ื”ื ืชื•ืžื›ื™ื. ืœื‘ืกื•ืฃ, ื—ื•ืงื™ ื”-Admission Webhooks ื”ื ืขื›ืฉื™ื• ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื•ื’ื‘ืœ ืžื™ื“ืช ื”ืฉื™ืžื•ืฉ ื‘ื”ื ืขืœ ื™ื“ื™ ืžืจื—ื‘ื™ ืฉืžื•ืช ื•ืžืกื’ืจื•ืช ืืฉื›ื•ืœื•ืช.

ืงืžืจื•ื ื•ืช

PersistentLocalVolumes, ืฉื”ื™ื” ืœื• ืกื˜ื˜ื•ืก ื‘ื˜ื ืžืื– ื”ืฉื—ืจื•ืจ K8s 1.10, ื”ื ื”ื•ื“ื™ืขื• ื™ืฆื™ื‘ (GA): ืฉืขืจ ืชื›ื•ื ื” ื–ื” ืื™ื ื• ืžื•ืฉื‘ืช ื™ื•ืชืจ ื•ื”ื•ื ื™ื•ืกืจ ื‘-Kubernetes 1.17.

ื”ื–ื“ืžื ื•ืช ื‘ืืžืฆืขื•ืช ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื”ื ืงืจืื™ื API ื›ืœืคื™ ืžื˜ื” (ืœื“ื•ื’ืžื”, ืฉื ื”ืชืจืžื™ืœ) ืขื‘ื•ืจ ืฉืžื•ืช ื”ืกืคืจื™ื•ืช ื”ืžื•ืจื›ื‘ื•ืช ื› subPath, ืคื•ืชื—ื” - ื‘ืฆื•ืจื” ืฉืœ ืชื—ื•ื ื—ื“ืฉ subPathExpr, ื”ืžืฉืžืฉ ื›ืขืช ืœืงื‘ื™ืขืช ืฉื ื”ืกืคืจื™ื™ื” ื”ืจืฆื•ื™ื”. ื”ืชื›ื•ื ื” ื”ื•ืคื™ืขื” ื‘ืชื—ื™ืœื” ื‘-Kubernetes 1.11, ืืš ืขื‘ื•ืจ 1.14 ื”ื™ื ื ืฉืืจื” ื‘ืกื˜ื˜ื•ืก ื’ืจืกืช ืืœืคื.

ื›ืžื• ื‘ืžื”ื“ื•ืจื” ื”ืงื•ื“ืžืช ืฉืœ Kubernetes, ืฉื™ื ื•ื™ื™ื ืžืฉืžืขื•ืชื™ื™ื ืจื‘ื™ื ืžื•ืฆื’ื™ื ืขื‘ื•ืจ ื”-CSI (ืžืžืฉืง ืื—ืกื•ืŸ ืžื™ื›ืœ) ื”ืžืชืคืชื— ื‘ืื•ืคืŸ ืคืขื™ืœ:

CSI

ื”ืคืš ื–ืžื™ืŸ (ื›ื—ืœืง ืžื’ืจืกืช ื”ืืœืคื) ืœืชืžื•ืš ืฉื™ื ื•ื™ ื’ื•ื“ืœ ืขื‘ื•ืจ ืืžืฆืขื™ ืื—ืกื•ืŸ CSI. ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ื• ืชืฆื˜ืจืš ืœื”ืคืขื™ืœ ืืช ืฉืขืจ ื”ืชื›ื•ื ื” ืฉื ืงืจื ExpandCSIVolumes, ื›ืžื• ื’ื ื ื•ื›ื—ื•ืช ืฉืœ ืชืžื™ื›ื” ืœืคืขื•ืœื” ื–ื• ื‘ืžื ื”ืœ ื”ืชืงืŸ CSI ืกืคืฆื™ืคื™.

ืชื›ื•ื ื” ื ื•ืกืคืช ืขื‘ื•ืจ CSI ื‘ื’ืจืกืช ื”ืืœืคื - ื”ื–ื“ืžื ื•ืช ืขื™ื™ืŸ ื™ืฉื™ืจื•ืช (ื›ืœื•ืžืจ ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘-PV/PVC) ืœื ืคื—ื™ CSI ื‘ืชื•ืš ืžืคืจื˜ ื”ืชืจืžื™ืœ. ื–ึถื” ืžืกื™ืจ ืืช ื”ื”ื’ื‘ืœื” ืขืœ ื”ืฉื™ืžื•ืฉ ื‘-CSI ื›ืื—ืกื•ืŸ ื ืชื•ื ื™ื ืžืจื—ื•ืง ื‘ืœื‘ื“, ืคื•ืชื—ื™ื ืขื‘ื•ืจื ื“ืœืชื•ืช ืœืขื•ืœื ื›ืจื›ื™ื ืืจืขื™ื™ื ืžืงื•ืžื™ื™ื. ืœืฉื™ืžื•ืฉ (ื“ื•ื’ืžื” ืžืชื•ืš ืชื™ืขื•ื“) ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื•ืคืขืœ CSIInlineVolume ืฉืขืจ ืชื›ื•ื ื”.

ื—ืœื” ื”ืชืงื“ืžื•ืช ื’ื ื‘"ืคื ื™ืžื™ื™ื" ืฉืœ Kubernetes ื”ืงืฉื•ืจื™ื ืœ-CSI, ืฉืื™ื ื ื›ืœ ื›ืš ื’ืœื•ื™ื™ื ืœืžืฉืชืžืฉื™ ืงืฆื” (ืžื ื”ืœื™ ืžืขืจื›ืช)... ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, ืžืคืชื—ื™ื ื ืืœืฆื™ื ืœืชืžื•ืš ื‘ืฉืชื™ ื’ืจืกืื•ืช ืฉืœ ื›ืœ ืชื•ืกืฃ ืื—ืกื•ืŸ: ื”ืื—ืช - "ื‘- old way", ื‘ืชื•ืš ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ K8s (ื‘-tree), ื•ื”ืฉื ื™ - ื›ื—ืœืง ืžื”-CSI ื”ื—ื“ืฉ (ืงืจื ืขื•ื“ ืขืœ ื–ื”, ืœืžืฉืœ, ื‘ ื›ืืŸ). ื–ื” ื’ื•ืจื ืœื—ื•ืกืจ ื ื•ื—ื•ืช ืžื•ื‘ืŸ ืฉื™ืฉ ืœื˜ืคืœ ื‘ื”ื ื›ืืฉืจ ื”-CSI ืขืฆืžื• ืžืชื™ื™ืฆื‘. ืœื ื ื™ืชืŸ ืคืฉื•ื˜ ืœื‘ื˜ืœ ืืช ื”-API ืฉืœ ืชื•ืกืคื™ื ืคื ื™ืžื™ื™ื (ื‘ืขืฅ) ืขืงื‘ ื”ืžื“ื™ื ื™ื•ืช ื”ืจืœื•ื•ื ื˜ื™ืช ืฉืœ Kubernetes.

ื›ืœ ื–ื” ื”ื•ื‘ื™ืœ ืœื›ืš ืฉื’ืจืกืช ื”ืืœืคื ื”ื’ื™ืขื” ืชื”ืœื™ืš ื”ื’ื™ืจื” ืงื•ื“ ืชื•ืกืฃ ืคื ื™ืžื™, ืžื™ื•ืฉื ื›-in-tree, ื‘ืชื•ืกืคื™ื ืฉืœ CSI, ืฉื‘ื–ื›ื•ืชื ื”ื“ืื’ื•ืช ืฉืœ ื”ืžืคืชื—ื™ื ื™ืฆื˜ืžืฆืžื• ืœืชืžื™ื›ื” ื‘ื’ืจืกื” ืื—ืช ืฉืœ ื”ืชื•ืกืคื™ื ืฉืœื”ื, ื•ื”ื”ืชืืžื” ืœืžืžืฉืงื™ API ื™ืฉื ื™ื ืชื™ืฉืืจ ื•ื ื™ืชืŸ ืœื”ื›ืจื™ื– ืขืœื™ื”ื ืžื™ื•ืฉื ื™ื ื‘ืชืจื—ื™ืฉ ื”ืจื’ื™ืœ. ืฆืคื•ื™ ืฉืขื“ ื”ืžื”ื“ื•ืจื” ื”ื‘ืื” ืฉืœ Kubernetes (1.15) ื›ืœ ื”ืชื•ืกืคื™ื ืฉืœ ืกืคืงื™ ื”ืขื ืŸ ื™ื•ืขื‘ืจื•, ื”ืžื™ืžื•ืฉ ื™ืงื‘ืœ ืกื˜ื˜ื•ืก ื‘ื˜ื ื•ื™ื•ืคืขืœ ื‘ื”ืชืงื ื•ืช K8s ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ืœืคืจื˜ื™ื, ืจืื” ื”ืฆืขืช ืขื™ืฆื•ื‘. ื’ื ื”ื”ื’ื™ืจื” ื”ื–ื• ื”ื‘ื™ืื” ื›ื™ืฉืœื•ืŸ ืžืžื’ื‘ืœื•ืช ื ืคื— ืฉื”ื•ื’ื“ืจื• ืขืœ ื™ื“ื™ ืกืคืงื™ ืขื ืŸ ืกืคืฆื™ืคื™ื™ื (AWS, Azure, GCE, Cinder).

ื‘ื ื•ืกืฃ, ืชืžื™ื›ื” ื‘ืžื›ืฉื™ืจื™ ื—ืกื™ืžื” ืขื CSI (CSIBlockVolume) ื”ื•ืขื‘ืจ ืœื’ืจืกืช ื‘ื˜ื.

ืฆืžืชื™ื/ืงื•ื‘ืœื˜

ืžื•ืฆื’ืช ื’ืจืกืช ืืœืคื ื ืงื•ื“ืช ืงืฆื” ื—ื“ืฉื” ื‘-Kubelet, ืžื™ื•ืขื“ ื”ื—ื–ืจ ืžื“ื“ื™ื ืขืœ ืžืฉืื‘ื™ ืžืคืชื—. ื‘ืื•ืคืŸ ื›ืœืœื™, ืื ื‘ืขื‘ืจ ืงื™ื‘ืœื” Kubelet ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืขืœ ืฉื™ืžื•ืฉ ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ืž-cAdvisor, ื›ืขืช ื”ื ืชื•ื ื™ื ื”ืœืœื• ืžื’ื™ืขื™ื ืžืกื‘ื™ื‘ืช ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ ืงื•ื ื˜ื™ื™ื ืจ ื“ืจืš CRI (ืžืžืฉืง ืจื™ืฆื” ืฉืœ ืžื™ื›ืœ), ืืš ื’ื ืชืื™ืžื•ืช ืœืขื‘ื•ื“ื” ืขื ื’ืจืกืื•ืช ื™ืฉื ื•ืช ื™ื•ืชืจ ืฉืœ Docker ื ืฉืžืจืช. ื‘ืขื‘ืจ, ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืฉื ืืกืคื• ื‘-Kubelet ื ืฉืœื—ื• ื“ืจืš REST API, ืืš ื›ืขืช ื ืงื•ื“ืช ืงืฆื” ืฉื ืžืฆืืช ื‘ /metrics/resource/v1alpha1. ืืกื˜ืจื˜ื’ื™ื” ืืจื•ื›ืช ื˜ื•ื•ื— ืฉืœ ืžืคืชื—ื™ื ืžื•ืจื›ื‘ ื”ื™ื ืœืžื–ืขืจ ืืช ืงื‘ื•ืฆืช ื”ืžื“ื“ื™ื ืฉืกื•ืคืงื” ืขืœ ื™ื“ื™ Kubelet. ืื’ื‘, ื”ืžื“ื“ื™ื ื”ืืœื” ืขืฆืžื ืขื›ืฉื™ื• ื”ื ืžืชืงืฉืจื™ื ืœื "ืžื“ื“ื™ ืœื™ื‘ื”", ืืœื "ืžื“ื“ื™ ืžืฉืื‘ื™ื", ื•ืžืชื•ืืจื™ื ื›"ืžืฉืื‘ื™ื ืžื”ืฉื•ืจื” ื”ืจืืฉื•ื ื”, ื›ื’ื•ืŸ ืžืขื‘ื“ ื•ื–ื™ื›ืจื•ืŸ".

ื ื™ื•ืื ืก ืžืขื ื™ื™ืŸ ืžืื•ื“: ืœืžืจื•ืช ื™ืชืจื•ืŸ ื”ื‘ื™ืฆื•ืขื™ื ื”ื‘ืจื•ืจ ืฉืœ ื ืงื•ื“ืช ื”ืงืฆื” gRPC ื‘ื”ืฉื•ื•ืื” ืœืžืงืจื™ื ืฉื•ื ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘ืคื•ืจืžื˜ Prometheus (ืจืื” ืืช ื”ืชื•ืฆืื” ืฉืœ ืื—ื“ ืžื”ืืžื•ืช ืžื™ื“ื” ืœืžื˜ื”), ื”ืžื—ื‘ืจื™ื ื”ืขื“ื™ืคื• ืืช ืคื•ืจืžื˜ ื”ื˜ืงืกื˜ ืฉืœ ืคืจื•ืžืชืื•ืก ื‘ืฉืœ ื”ื”ื ื”ื’ื” ื”ื‘ืจื•ืจื” ืฉืœ ืžืขืจื›ืช ื”ื ื™ื˜ื•ืจ ื”ื–ื• ื‘ืงื”ื™ืœื”.

"gRPC ืื™ื ื• ืชื•ืื ืœืฆื™ื ื•ืจื•ืช ื ื™ื˜ื•ืจ ืžืจื›ื–ื™ื™ื. ื ืงื•ื“ืช ืงืฆื” ืชื”ื™ื” ืฉื™ืžื•ืฉื™ืช ืจืง ืœืืกืคืงืช ืžื“ื“ื™ื ืœ-Metrics Server ืื• ืœื ื™ื˜ื•ืจ ืจื›ื™ื‘ื™ื ื”ืžืฉืชืœื‘ื™ื ื™ืฉื™ืจื•ืช ืื™ืชื•. ื‘ื™ืฆื•ืขื™ ืคื•ืจืžื˜ ื˜ืงืกื˜ ืฉืœ Prometheus ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืžื˜ืžื•ืŸ ื‘-Metrics Server ืžืกืคื™ืง ื˜ื•ื‘ ื›ื“ื™ ืฉื ืขื“ื™ืฃ ืืช ืคืจื•ืžืชืื•ืก ืขืœ ืคื ื™ gRPC ืœืื•ืจ ื”ืื™ืžื•ืฅ ื”ื ืจื—ื‘ ืฉืœ ืคืจื•ืžืชืื•ืก ื‘ืงื”ื™ืœื”. ื‘ืจื’ืข ืฉื”ืคื•ืจืžื˜ ืฉืœ OpenMetrics ื™ื”ืคื•ืš ืœื™ืฆื™ื‘ ื™ื•ืชืจ, ื ื•ื›ืœ ืœื’ืฉืช ืœื‘ื™ืฆื•ืขื™ gRPC ืขื ืคื•ืจืžื˜ ืžื‘ื•ืกืก ืคืจื•ื˜ื•".

Kubernetes 1.14: ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื
ืื—ื“ ืžืžื‘ื—ื ื™ ื”ื‘ื™ืฆื•ืขื™ื ื”ื”ืฉื•ื•ืืชื™ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘ืคื•ืจืžื˜ื™ื gRPC ื•-Prometheus ื‘ื ืงื•ื“ืช ื”ืงืฆื” ื”ื—ื“ืฉื” ืฉืœ Kubelet ืœืžื“ื“ื™ื. ื’ืจืคื™ื ื ื•ืกืคื™ื ื•ืคืจื˜ื™ื ื ื•ืกืคื™ื ื ื™ืชืŸ ืœืžืฆื•ื ื‘ ืงืค.

ื‘ื™ืŸ ื™ืชืจ ื”ืฉื™ื ื•ื™ื™ื:

  • Kubelet ืขื›ืฉื™ื• (ืคืขื ืื—ืช) ืžื ืกื” ืœื”ืคืกื™ืง ืงื•ื ื˜ื™ื™ื ืจื™ื ื‘ืžืฆื‘ ืœื ื™ื“ื•ืข ืœืคื ื™ ื”ืคืขืœื” ืžื—ื“ืฉ ื•ืžื—ื™ืงื” ืฉืœ ืคืขื•ืœื•ืช.
  • ื‘ืขืช ืฉื™ืžื•ืฉ PodPresets ืขื›ืฉื™ื• ืœืžื™ื›ืœ ื”-init ื ื•ืกืฃ ืื•ืชื• ืžื™ื“ืข ื›ืžื• ืขื‘ื•ืจ ืžื™ื›ืœ ืจื’ื™ืœ.
  • ืงื•ื‘ืœื˜ ื”ืชื—ื™ืœ ืœื”ืฉืชืžืฉ usageNanoCores ืžืกืคืง ื”ืกื˜ื˜ื™ืกื˜ื™ืงื” ืฉืœ CRI, ื•ืœื’ื‘ื™ ืฆืžืชื™ื ื•ืžื›ื•ืœื•ืช ื‘-Windows ื”ื•ืกื™ืฃ ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ืจืฉืช.
  • ืžื™ื“ืข ืขืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื•ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžืชื•ืขื“ ื›ืขืช ื‘ืชื•ื•ื™ื•ืช kubernetes.io/os ะธ kubernetes.io/arch ืื•ื‘ื™ื™ืงื˜ื™ ืฆื•ืžืช (ื”ื•ืขื‘ืจื• ืžื‘ื˜ื ืœ-GA).
  • ื™ื›ื•ืœืช ืœืฆื™ื™ืŸ ืงื‘ื•ืฆืช ืžืฉืชืžืฉ ืกืคืฆื™ืคื™ืช ื‘ืžืขืจื›ืช ืขื‘ื•ืจ ืžื™ื›ืœื™ื ื‘ืคื•ื“ (RunAsGroup, ื”ื•ืคื™ืข ื‘ K8s 1.11) ืžึดืชืงึทื“ึตื ืœืคื ื™ ื‘ื˜ื (ืžื•ืคืขืœ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ).
  • du and find ื‘ืฉื™ืžื•ืฉ ื‘-cAdvisor, ื”ื•ื—ืœืฃ ื™ื™ืฉื•ื on Go.

CLI

ื‘-cli-runtime ื•-kubectl ื”ื•ืกื™ืฃ ื“ื’ืœ -k ืœืฉื™ืœื•ื‘ ืขื ืœื”ืกืชื›ืœ (ืื’ื‘, ื”ืคื™ืชื•ื— ืฉืœื• ืžืชื‘ืฆืข ื›ืขืช ื‘ืžืื’ืจ ื ืคืจื“), ื›ืœื•ืžืจ. ื›ื“ื™ ืœืขื‘ื“ ืงื‘ืฆื™ YAML ื ื•ืกืคื™ื ืžืกืคืจื™ื•ืช ืžื™ื•ื—ื“ื•ืช ืฉืœ kustomization (ืœืคืจื˜ื™ื ืขืœ ื”ืฉื™ืžื•ืฉ ื‘ื”ื, ืจืื” ืงืค):

Kubernetes 1.14: ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื
ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ืคืฉื•ื˜ ื‘ืงื•ื‘ืฅ ื”ืชืืžื” ืื™ืฉื™ืช (ื™ื™ืฉื•ื ืžื•ืจื›ื‘ ื™ื•ืชืจ ืฉืœ kustomize ืืคืฉืจื™ ื‘ืชื•ืš ืฉื›ื‘ื•ืช-ืขืœ)

ื‘ื ื•ืกืฃ:

  • ื ื•ืกืฃ ืงื‘ื•ืฆื” ื—ื“ืฉื” kubectl create cronjob, ืฉืฉืžื• ืžื“ื‘ืจ ื‘ืขื“ ืขืฆืžื•.
  • ะ’ kubectl logs ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœึฐืฉืึทืœึตื‘ ื“ื’ืœื™ื -f (--follow ืขื‘ื•ืจ ื™ื•ืžื ื™ ืกื˜ืจื™ืžื™ื ื’) ื• -l (--selector ืขื‘ื•ืจ ืฉืื™ืœืชืช ืชื•ื•ื™ืช).
  • ืงื•ื‘ืงื˜ืœ ืœื™ืžื“ ื”ืขืชืง ืงื‘ืฆื™ื ืฉื ื‘ื—ืจื• ื‘ืืžืฆืขื•ืช ืชื•ื•ื™ื ื›ืœืœื™ื™ื.
  • ืœืฆื•ื•ืช kubectl wait ื”ื•ืกื™ืฃ ื“ื’ืœ --all ื›ื“ื™ ืœื‘ื—ื•ืจ ืืช ื›ืœ ื”ืžืฉืื‘ื™ื ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ ืกื•ื’ ื”ืžืฉืื‘ ืฉืฆื•ื™ืŸ.

ืื—ืจื™ื

ื”ื™ื›ื•ืœื•ืช ื”ื‘ืื•ืช ืงื™ื‘ืœื• ืกื˜ื˜ื•ืก ื™ืฆื™ื‘ (GA):

  • ReadinessGate, ืžืฉืžืฉ ื‘ืžืคืจื˜ ื”ืคื•ื“ ืœื”ื’ื“ืจืช ืชื ืื™ื ื ื•ืกืคื™ื ืฉื ืœืงื—ื• ื‘ื—ืฉื‘ื•ืŸ ื‘ืžื•ื›ื ื•ืช ื”ืชืจืžื™ืœ;
  • ืชืžื™ื›ื” ื‘ื“ืคื™ื ื’ื“ื•ืœื™ื (ืฉืขืจ ืชื›ื•ื ื” ื ืงืจื HugePages);
  • CustomPodDNS;
  • API ืฉืœ PriorityClass ืขื“ื™ืคื•ืช ื•ืชืจืžื™ืœ.

ืฉื™ื ื•ื™ื™ื ื ื•ืกืคื™ื ืฉื”ื•ืฆื’ื• ื‘-Kubernetes 1.14:

  • ืžื“ื™ื ื™ื•ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ RBAC ืื™ื ื” ืžืืคืฉืจืช ื™ื•ืชืจ ื’ื™ืฉื” ืœ-API discovery ะธ access-review ืžืฉืชืžืฉื™ื ืœืœื ืื™ืžื•ืช (ืœื ืžืื•ืžืช).
  • ืชืžื™ื›ืช CoreDNS ืจืฉืžื™ืช ืžื•ื‘ื˜ื— ืœื™ื ื•ืงืก ื‘ืœื‘ื“, ื›ืš ืฉื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘-kubeadm ื›ื“ื™ ืœืคืจื•ืก ืื•ืชื• (CoreDNS) ื‘ืืฉื›ื•ืœ, ืฆืžืชื™ื ื—ื™ื™ื‘ื™ื ืœืคืขื•ืœ ืจืง ืขืœ ืœื™ื ื•ืงืก (ื‘ืžื’ื‘ืœื” ื–ื• ืžืฉืชืžืฉื™ื ื‘-nodeSelectors).
  • ืชืฆื•ืจืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ CoreDNS ื”ื™ื ื›ืขืช ะธัะฟะพะปัŒะทัƒะตั‚ ืชื•ืกืฃ ืงื“ื™ืžื” ื‘ืžืงื•ื ืคืจื•ืงืกื™. ื›ืžื• ื›ืŸ, ื‘-CoreDNS ื”ื•ืกื™ืฃ readinessProbe, ื”ืžื•ื ืข ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ืขืœ ืคื•ื“ื™ื ืžืชืื™ืžื™ื (ืœื ืžื•ื›ื ื™ื ืœืฉื™ืจื•ืช).
  • ื‘-kubeadm, ืขืœ ืฉืœื‘ื™ื init ืื• upload-certs, ื”ืคืš ืœืืคืฉืจื™ ื˜ืขืŸ ืืช ื”ืื™ืฉื•ืจื™ื ื”ื ื“ืจืฉื™ื ื›ื“ื™ ืœื—ื‘ืจ ืืช ืžื™ืฉื•ืจ ื”ื‘ืงืจื” ื”ื—ื“ืฉ ืœืกื•ื“ kubeadm-certs (ื”ืฉืชืžืฉ ื‘ื“ื’ืœ --experimental-upload-certs).
  • ื’ืจืกืช ืืœืคื ื”ื•ืคื™ืขื” ืขื‘ื•ืจ ื”ืชืงื ื•ืช ืฉืœ Windows ืชืžื™ื›ื” gMSA (Group Managed Service Account) - ื—ืฉื‘ื•ื ื•ืช ืžื™ื•ื—ื“ื™ื ื‘-Active Directory ืฉื™ื›ื•ืœื™ื ืœืฉืžืฉ ื’ื ืงื•ื ื˜ื™ื™ื ืจื™ื.
  • ืขื‘ื•ืจ G.C.E. ืžื•ึผืคืขึธืœ ื”ืฆืคื ืช mTLS ื‘ื™ืŸ etcd ืœ-kube-apiserver.
  • ืขื“ื›ื•ื ื™ื ื‘ืชื•ื›ื ื” ืžืฉื•ืžืฉืช/ืชืœื•ื™ื”: Go 1.12.1, CSI 1.1, CoreDNS 1.3.1, Docker 18.09 ืชืžื™ื›ื” ื‘-kubeadm, ื•ื’ืจืกืช ื”-API ืฉืœ Docker ื”ื ืชืžื›ืช ื”ืžื™ื ื™ืžืœื™ืช ื”ื™ื ื›ืขืช 1.26.

ื .ื‘.

ืงืจื ื’ื ื‘ื‘ืœื•ื’ ืฉืœื ื•:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”