ä»å€
ãã®è³æã®äœæã«äœ¿çšãããæ
å ±ã¯ã以äžããååŸãããŠããŸãã
SIG ã¯ã©ã¹ã¿ãŒã®ã©ã€ããµã€ã¯ã«ããã®éèŠãªçŽ¹ä»ããå§ããŸãããã åçãã§ã€ã«ãªãŒããŒã¯ã©ã¹ã¿ãŒ Kubernetes (ããæ£ç¢ºã«èšãã°ãã»ã«ããã¹ãå HA ãããã€ã¡ã³ã) ã¯çŸåšã kubeadm
(init
О join
ïŒã ã€ãŸããããã«ã€ããŠã¯æ¬¡ã®ããã«ãªããŸãã
- ã¯ã©ã¹ã¿ãŒã«ãã£ãŠäœ¿çšããã蚌ææžã¯ã·ãŒã¯ã¬ããã«è»¢éãããŸãã
- K8s ã¯ã©ã¹ã¿ãŒå
㧠etcd ã¯ã©ã¹ã¿ãŒã䜿çšã§ããããã«ãã (ã€ãŸãã以åã«ååšããŠããå€éšäŸåé¢ä¿ãåãé€ã)
etcd ãªãã¬ãŒã¿ãŒ ; - ãã©ãŒã«ã ãã¬ã©ã³ãæ§æãæäŸããå€éšããŒã ãã©ã³ãµãŒã®æšå¥šèšå®ãææžåããŸã (å°æ¥çã«ã¯ãã®äŸåé¢ä¿ãæé€ããäºå®ã§ãããçŸæ®µéã§ã¯ããã§ã¯ãããŸãã)ã
kubeadm ã§äœæããã Kubernetes HA ã¯ã©ã¹ã¿ãŒã®ã¢ãŒããã¯ãã£
å®è£
ã®è©³çŽ°ã«ã€ããŠã¯ã以äžãåç
§ããŠãã ããã
API
ããŒã apply
äžè¬ç㫠宣èšåãªããžã§ã¯ã管ç kubectl
ã¢ããµãŒããŒã§ã éçºè
èªèº«ãèªåãã¡ã®æ±ºå®ã次ã®ããã«ç°¡åã«èª¬æããŠããŸãã kubectl apply
- ãã㯠Kubernetes ã§æ§æãæäœããåºæ¬çãªéšåã§ãããããã°ãå€ãä¿®æ£ãé£ãããããããã®æ©èœãéåžžã®ç¶æ
ã«æ»ããŠã³ã³ãããŒã« ãã¬ãŒã³ã«è»¢éããå¿
èŠããããŸãã çŸåšååšããåé¡ã®åçŽãã€æ確ãªäŸ:
å®è£
ã®è©³çŽ°ã«ã€ããŠã¯ã
ã¢ã«ãã¡çã§å©çšå¯èœã«ãªããŸãã kubectl
ïŒããªãã®åŽã§æ€èšŒãå®è¡ããŸãïŒå
ã§ïŒ kubectl create
О kubectl apply
) ã¹ããŒã ã«åŸã£ãŠææžãçºè¡ããŸã (kubectl explain
ïŒã 詳现 - ã§
æ¢åã®ãã° O_APPEND
ïŒã§ã¯ãªã O_TRUNC
) ç¶æ³ã«ãã£ãŠã¯ãã°ã®æ倱ãåé¿ããããŒããŒã·ã§ã³ã®ããã«å€éšãŠãŒãã£ãªãã£ã䜿çšããŠãã°ãåãè©°ããéã«äŸ¿å©ã§ãã
ãŸããKubernetes API ã®ã³ã³ããã¹ãã§ã¯ã次ã®ããšã«æ³šæããŠãã ããã PodSandbox
О PodSandboxStatus
runtime_handler
ïœã«é¢ããæ
å ±ãèšé²ãã RuntimeClass
ãããå
(詳现ã«ã€ããŠã¯æ¬æãåç
§ããŠãã ãã) AdmissionReview
圌ãã¯ãµããŒãããŸãã æåŸã«ãã¢ãããã·ã§ã³ Webhook ã«ãŒã«ãè¿œå ãããŸããã
ä¿ç®¡
PersistentLocalVolumes
subPath
subPathExpr
ãããã¯ç®çã®ãã£ã¬ã¯ããªåã決å®ããããã«äœ¿çšãããããã«ãªããŸããã ãã®æ©èœã¯æåã« Kubernetes 1.11 ã§ç»å ŽããŸãããã1.14 ã§ã¯ã¢ã«ãã¡çã®ãŸãŸã§ããã
以åã® Kubernetes ãªãªãŒã¹ãšåæ§ã«ãçŸåšéçºäžã® CSI (Container Storage Interface) ã«å¯ŸããŠå€ãã®éèŠãªå€æŽãå°å ¥ãããŠããŸãã
CSI
å©çšå¯èœã«ãªããŸããïŒã¢ã«ãã¡çã®äžéšãšããŠïŒ ExpandCSIVolumes
ãããã³ç¹å®ã® CSI ãã©ã€ããŒã§ã®ãã®æäœã®ãµããŒãã®ååšã
ã¢ã«ãã¡çã® CSI ã®ãã XNUMX ã€ã®æ©èœ - CSIInlineVolume
ç¹åŸŽçãªã²ãŒãã
CSI ã«é¢é£ãã Kubernetes ã®ãå
éšãã§ãé²æ©ããããŸãããããšã³ã ãŠãŒã¶ãŒ (ã·ã¹ãã 管çè
) ã«ã¯ããŸãèŠããŸãã... çŸåšãéçºè
ã¯åã¹ãã¬ãŒãž ãã©ã°ã€ã³ã® 8 ã€ã®ããŒãžã§ã³ããµããŒãããå¿
èŠããããŸããå€ãæ¹æ³ããKXNUMXs ã³ãŒãããŒã¹å
(ããªãŒå
)ãããã³ XNUMX çªç® - æ°ãã CSI ã®äžéšãšã㊠(詳现ã«ã€ããŠã¯ãããšãã°ã
ããããã¹ãŠããã¢ã«ãã¡çãå°éãããšããäºå®ã«ã€ãªãããŸããã
ããã«ãCSI ã«ããããã㯠ããã€ã¹ã®ãµããŒã (CSIBlockVolume
)
ããŒã/Kubelet
ã¢ã«ãã¡çãçºè¡šãããŸãã /metrics/resource/v1alpha1
ã éçºè
ã®é·ææŠç¥
éåžžã«èå³æ·±ããã¥ã¢ã³ã¹: Prometheus 圢åŒã䜿çšããããŸããŸãªã±ãŒã¹ãšæ¯èŒããŠãgRPC ãšã³ããã€ã³ãã®ããã©ãŒãã³ã¹äžã®æãããªå©ç¹ã«ãããããã (以äžã®ããããã®ãã³ãããŒã¯ã®çµæãåç §ããŠãã ãã)ãã³ãã¥ããã£ã«ããããã®ç£èŠã·ã¹ãã ã®æ確ãªãªãŒããŒã·ããã«ãããèè ã㯠Prometheus ã®ããã¹ã圢åŒã奜ã¿ãŸããã
ãgRPC ã¯äž»èŠãªç£èŠãã€ãã©ã€ã³ãšäºææ§ããããŸããã ãšã³ããã€ã³ãã¯ãã¡ããªã¯ã¹ã Metrics Server ã«é ä¿¡ããå ŽåããŸã㯠Metrics Server ãšçŽæ¥çµ±åããã³ã³ããŒãã³ããç£èŠããå Žåã«ã®ã¿åœ¹ç«ã¡ãŸãã Metrics Server ã§ãã£ãã·ã¥ã䜿çšããå Žåã® Prometheus ããã¹ã圢åŒã®ããã©ãŒãã³ã¹ ååã§ã ã³ãã¥ããã£ã§ Prometheus ãåºãæ¡çšãããŠãããããç§ãã¡ã¯ gRPC ããã Prometheus ãåªå ããŸãã OpenMetrics 圢åŒãããå®å®ãããšããããããŒã¹ã®åœ¢åŒã§ gRPC ã®ããã©ãŒãã³ã¹ã«ã¢ãããŒãã§ããããã«ãªããŸããã
ã¡ããªã¯ã¹çšã®æ°ãã Kubelet ãšã³ããã€ã³ã㧠gRPC ãš Prometheus 圢åŒã䜿çšããå Žåã®æ¯èŒããã©ãŒãã³ã¹ ãã¹ãã® XNUMX ã€ã ãã®ä»ã®ã°ã©ãããã®ä»ã®è©³çŽ°ã«ã€ããŠã¯ã次ã®ãµã€ããåç
§ããŠãã ããã
ãã®ä»ã®å€æŽç¹ã¯æ¬¡ã®ãšããã§ãã
- Kubelet ã®çŸåš (XNUMX å)
æ¢ããããšããŠãã åèµ·åããã³åé€æäœã®åã«ãã³ã³ãããŒã¯äžæãªç¶æ ã«ãããŸãã - 䜿çšããŠããå Žå
ä»åºŠã¯åæåã³ã³ããã«ç§»åããŸãPodPresets
è¿œå ãããŸã éåžžã®ã³ã³ãããšåãæ å ±ã§ãã - ã¯ãã¬ãã
䜿ãå§ãã usageNanoCores
CRI çµ±èšãããã€ããŒãããããã³ Windows äžã®ããŒããšã³ã³ãããŒããè¿œå ãã ãããã¯ãŒã¯çµ±èšã - ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãšã¢ãŒããã¯ãã£ã®æ
å ±ãã©ãã«ã«èšé²ãããããã«ãªããŸãã
kubernetes.io/os
Оkubernetes.io/arch
ããŒã ãªããžã§ã¯ã (ããŒã¿çãã GA ã«è»¢é)ã - ãããå
ã®ã³ã³ãããŒã«ç¹å®ã®ã·ã¹ãã ãŠãŒã¶ãŒ ã°ã«ãŒããæå®ããæ©èœ (
RunAsGroup
ã ã«ç»å ŽK8s 1.11 )é«åºŠ ããŒã¿çã®å (ããã©ã«ãã§æå¹)ã - cAdvisor ã§äœ¿çšããã du ãš findã
ãšåãæãã Go ã®å®è£ ã
CLI
cli-runtime ãš kubectl ã®å Žå
ç°¡åãªãã¡ã€ã«ã®äœ¿çšäŸ
ããã«ïŒ
-
è¿œå ãã æ°ããããŒãkubectl create cronjob
ããã®ååèªäœãç©èªã£ãŠããŸãã - Ð
kubectl logs
ä»ã§ããçµã¿åããã ãã©ã°-f
(--follow
ã¹ããªãŒãã³ã° ãã°ã®å ŽåïŒããã³-l
(--selector
ã©ãã«ã¯ãšãªã®å Žå)ã - ãã¥ãŒãã¯ã«
æãã ã¯ã€ã«ãã«ãŒãã§éžæãããã¡ã€ã«ãã³ããŒããŸãã - ããŒã ã«
kubectl wait
è¿œå ãã ãã©ã°--all
æå®ãããªãœãŒã¹ ã¿ã€ãã®åå空éå ã®ãã¹ãŠã®ãªãœãŒã¹ãéžæããŸãã
ä»äºº
次ã®æ©èœã¯å®å®ç (GA) ã¹ããŒã¿ã¹ãååŸããŠããŸãã
-
ããããã®æºåç¶æ ã§èæ ®ãããè¿œå ã®æ¡ä»¶ãå®çŸ©ããããã«ãããä»æ§ã§äœ¿çšãããŸããReadinessGate
- 倧ããªããŒãžã®ãµããŒã (æ©èœã²ãŒããšåŒã°ãã)
);HugePages
-
ã«ã¹ã¿ã ãããDNS ; - PriorityClass API
ãããã®åªå é äœãšããªãšã³ãã·ã§ã³ .
Kubernetes 1.14 ã§å°å ¥ããããã®ä»ã®å€æŽ:
- ããã©ã«ãã® RBAC ããªã·ãŒã§ã¯ API ã¢ã¯ã»ã¹ãèš±å¯ãããªããªããŸãã
discovery
Оaccess-review
èªèšŒã®ãªããŠãŒã¶ãŒ (æªèªèšŒ). - å
¬åŒ CoreDNS ãµããŒã
ã«ãã£ãŠæäŸããã Linux ã®ã¿ããã®ãããkubeadm ã䜿çšããŠã¯ã©ã¹ã¿ãŒå ã«ããã〠(CoreDNS) ããå ŽåãããŒã㯠Linux äžã§ã®ã¿å®è¡ããå¿ èŠããããŸã (ãã®å¶éã®ããã« nodeSelector ã䜿çšãããŸã)ã - ããã©ã«ãã® CoreDNS æ§æã¯æ¬¡ã®ãšããã§ã
䜿çšãã ãã©ã¯ãŒããã©ã°ã€ã³ ãããã·ã®ä»£ããã«ã ãŸããCoreDNSã§ã¯è¿œå ãã readinessProbeãé©å㪠(ãµãŒãã¹ã®æºåãã§ããŠããªã) ãããã§ã®ããŒã ãã©ã³ã·ã³ã°ãé²ããŸãã - kubeadm ã§ã¯ããã§ãŒãºã«ã€ããŠ
init
ãŸãã¯upload-certs
,å¯èœã«ãªã£ã æ°ããã³ã³ãããŒã«ãã¬ãŒã³ã kubeadm-certs ã·ãŒã¯ã¬ããã«æ¥ç¶ããããã«å¿ èŠãªèšŒææžãããŒãããŸã (ãã©ã°ã䜿çšããŸã)--experimental-upload-certs
). - Windows ã€ã³ã¹ããŒã«çšã®ã¢ã«ãã¡çãç»å ŽããŸãã
ãµããŒã gMSA (ã°ã«ãŒã管çãµãŒãã¹ ã¢ã«ãŠã³ã) - ã³ã³ãããŒã§ã䜿çšã§ãã Active Directory ã®ç¹å¥ãªã¢ã«ãŠã³ãã - G.C.Eã®å Žå
ã¢ã¯ãã£ãåããã etcd ãš kube-apiserver éã® mTLS æå·åã - 䜿çš/äŸåãœãããŠã§ã¢ã®æŽæ°: Go 1.12.1ãCSI 1.1ãCoreDNS 1.3.1ãkubeadm ã§ã® Docker 18.09 ã®ãµããŒãããµããŒãããã Docker API ã®æå°ããŒãžã§ã³ã¯ 1.26 ã«ãªããŸããã
PS
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
Kubernetes 1.13: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ "; - «
Kubernetes 1.12: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ "; - «
Kubernetes 1.11: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ "; - «
Kubernetes 1.10: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ 'ã
åºæïŒ habr.com