ä»æ¥ãæ°Žææ¥ã
ãã®è³æã®äœæã«äœ¿çšãããæ
å ±ã¯ã以äžããååŸãããŠããŸãã
ããŒã
æ¬åœã«å€æ°ã®æ³šç®ãã¹ãã€ãããŒã·ã§ã³ (ã¢ã«ãã¡çã¹ããŒã¿ã¹) ããK8s ã¯ã©ã¹ã¿ãŒ ããŒã (Kubelet) åŽã«è¡šç€ºãããŸãã
ãŸããããããã «kubectl debug
ãæ¬è³ªçã«ã¯äŒŒãŠããŸã kubectl exec
: ã³ã³ããå
ã§ããã»ã¹ãå®è¡ãã代ããã«ã®ã¿ (次ã®ããã«) exec
) ãããå
ã®ã³ã³ãããŒãèµ·åããŸãã ããšãã°ã次ã®ã³ãã³ãã¯æ°ããã³ã³ããããããã«æ¥ç¶ããŸãã
kubectl debug -c debug-shell --image=debian target-pod -- bash
äžæã³ã³ãã㌠(ããã³ãã®äœ¿çšäŸ) ã®è©³çŽ°ã«ã€ããŠã¯ã以äžãåç
§ããŠãã ããã
NB: ãã®æ¬è³ªããã³ãã®ååã«ãããŠãããã®æ©èœã¯æ¢åã®ãã©ã°ã€ã³ã«äŒŒãŠããŸãã
ããäžã€ã®é©æ° - PodOverhead
PodSpec
ãã£ãŒã«ããè¿œå ãããŸãã Overhead *ResourceList
(ã®ããŒã¿ãšæ¯èŒ RuntimeClass
ã䜿çšãããŠããå Žå)ã
ããäžã€ã®æ³šç®ãã¹ãã€ãããŒã·ã§ã³ã¯ã ããŒãããããžãŒãããŒãžã£ãŒ (ããŒã ããããž ãããŒãžã£ãŒ)ãKubernetes ã®ããŸããŸãªã³ã³ããŒãã³ãã«å¯ŸããããŒããŠã§ã¢ ãªãœãŒã¹ã®å²ãåœãŠã埮調æŽããã¢ãããŒããçµ±äžããããã«èšèšãããŠããŸãã ãã®åãçµã¿ã¯ãé«æ§èœã®äžŠåã³ã³ãã¥ãŒãã£ã³ã°ãšãé«åºŠãª CPU ãšæäœã®å®è¡ã®é
延ãæå°éã«æããããã®ããŸããŸãªææ°ã·ã¹ãã (é»æ°éä¿¡ãæ©æ¢°åŠç¿ãéèãµãŒãã¹ãªã©ã®åéãã) ã®ããŒãºã®é«ãŸãã«ãã£ãŠæšé²ãããŠããŸããããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ©èœã Kubernetes ã«ããããã®ãããªæé©åã¯ããããŸã§ç°çš®ã³ã³ããŒãã³ã (CPU ãããŒãžã£ãŒãããã€ã¹ ãããŒãžã£ãŒãCNI) ã®ãããã§å®çŸãããŠããŸããããä»åŸã¯ãã¢ãããŒããçµ±åããæ°ããåæ§ã®æ¥ç¶ (ããããããããžãŒ) ãç°¡çŽ åããåäžã®å
éšã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ãããäºå®ã§ããèªè - Kubelet åŽã®ã³ã³ããŒãã³ãã 詳现 - ã§
ããããžãŒã»ãããŒãžã£ãŒã®ã³ã³ããŒãã³ãå³
次ã®æ©èœ - ã³ã³ããã®å®è¡äžã«ãã§ãã¯ãã (StartupProbeEnabled
) ãããã®å®è¡ãçµäºããç¬éãŸã§ä»ã®ãã§ãã¯ã®å¹æããã£ã³ã»ã«ããŸã (ã€ãŸãã延æããŸã)ã ãã®ããããã®æ©èœã¯åœåã
ããã«ããç°çš®ã¯ã©ã¹ã¿ãŒãã®ãµããŒããè¿œå ãããRuntimeClass ã®æ¹è¯çãããŒã¿çãšããŠããã«å©çšå¯èœã«ãªããŸãã C
СеÑÑ
Kubernetes 1.16 ã§åã㊠(ã¢ã«ãã¡çã§) ç»å Žãã XNUMX ã€ã®éèŠãªãããã¯ãŒã¯æ©èœã¯æ¬¡ã®ãšããã§ãã
-
ãµããŒã ãã¥ã¢ã«ãããã¯ãŒã¯ã¹ã¿ã㯠- IPv4/IPv6 - ããããããŒãããµãŒãã¹ã®ã¬ãã«ã§ã®ããã«å¯Ÿå¿ãããç解ãã ããã«ã¯ããããããå€éšãµãŒãã¹ããªãã¡ã¬ã³ã¹å®è£ (ããªããž CNIãPTP CNIãããã³ãã¹ãããŒã«ã« IPAM ãã©ã°ã€ã³å ) ã«è³ããããéã® IPv4 察 IPv4 ããã³ IPv6 察 IPv6 ã®çžäºéçšæ§ãå«ãŸããå®è¡äžã® Kubernetes ã¯ã©ã¹ã¿ãŒãšã®éäºææ§ãå«ãŸããŸãã IPv4 ãŸã㯠IPv6 ã®ã¿ã å®è£ ã®è©³çŽ°ã¯æ¬¡ã®ãšããã§ãKEP .ãããã®ãªã¹ãã« 4 ã€ã®ã¿ã€ã (IPv6 ãš IPvXNUMX) ã® IP ã¢ãã¬ã¹ã衚瀺ããäŸ:
kube-master# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE nginx-controller 1/1 Running 0 20m fd00:db8:1::2,192.168.1.3 kube-minion-1 kube-master#
- ãšã³ããã€ã³ãçšã®æ°ãã API -
ãšã³ããã€ã³ãã¹ã©ã€ã¹ API ã ããã«ãããã³ã³ãããŒã« ãã¬ãŒã³ã®ããŸããŸãªã³ã³ããŒãã³ã (apiserverãetcdãendpoints-controllerãkube-proxy) ã«åœ±é¿ãäžãããæ¢åã® Endpoint API ã®ããã©ãŒãã³ã¹/ã¹ã±ãŒã©ããªãã£ã®åé¡ã解決ãããŸãã æ°ãã API 㯠Discovery API ã°ã«ãŒãã«è¿œå ãããæ°åã®ããŒãã§æ§æãããã¯ã©ã¹ã¿ãŒå ã®åãµãŒãã¹ã§æ°äžã®ããã¯ãšã³ã ãšã³ããã€ã³ãã«ãµãŒãã¹ãæäŸã§ããããã«ãªããŸãã ãããè¡ãããã«ãåãµãŒãã¹ã¯ N åã®ãªããžã§ã¯ãã«ãããã³ã°ãããŸãEndpointSlice
ãããã©ã«ãã§ã¯ãããããã®ãšã³ããã€ã³ã㯠100 å以äžã§ã (å€ã¯æ§æå¯èœã§ã)ã EndpointSlice API ã¯ãåãããã®è€æ°ã® IP ã¢ãã¬ã¹ã®ãµããŒãããšã³ããã€ã³ãã®æ°ããç¶æ (ã ãã§ãªã) ãªã©ãå°æ¥ã®éçºã®æ©äŒãæäŸããŸããReady
ОNotReady
)ããšã³ããã€ã³ãã®åçãµãã»ããåã
ååã®ãªãªãŒã¹ã§çºè¡šããããã®ã¯ããŒã¿çã«ãªããŸãã service.kubernetes.io/load-balancer-cleanup
åãµãŒãã¹ã« type ã§ä»å ãããŸã LoadBalancer
ã ãã®ãããªãµãŒãã¹ãåé€ãããšãé¢é£ãããã¹ãŠã®ãã©ã³ãµãŒ ãªãœãŒã¹ã®ãã¯ãªãŒã³ã¢ããããå®äºãããŸã§ããªãœãŒã¹ã®å®éã®åé€ãé²æ¢ãããŸãã
APIæ©æ¢°
æ¬åœã®ãå®å®åã®ãã€ã«ã¹ããŒã³ãã¯ãKubernetes API ãµãŒããŒãšãããšã®å¯Ÿè©±ã®é åã«ãããŸãã ããã¯äž»ã«æ¬¡ã®ãããã§èµ·ãããŸãã å®å®ç¶æ
ãžã®ç§»è¡ ç¹å¥ãªçŽ¹ä»ãå¿
èŠãªãæ¹
-
ããµããªãœãŒã¹ã ãšãšãââã«/status
О/scale
ã«ã¹ã¿ã ãªãœãŒã¹ã®å Žåã -
å€å®¹ å€éš Webhook ã«åºã¥ã CRD ã®ããŒãžã§ã³ã -
æè¿çºè¡šããã (K8s 1.15 ã®å Žå) ããã©ã«ãå€ (ããã©ã«ã) ããã³èªåãã£ãŒã«ãåé€ ïŒåªå®ïŒ ã«ã¹ã¿ã ãªãœãŒã¹ã®å Žåã -
æ©äŒ OpenAPI v3 ã¹ããŒãã䜿çšããŠããµãŒããŒåŽã§ CRD ãªãœãŒã¹ãæ€èšŒããããã«äœ¿çšããã OpenAPI ããã¥ã¡ã³ããäœæããã³å ¬éããŸãã
Kubernetes 管çè
ã«ãšã£ãŠé·ãé銎æã¿ã®ãããã XNUMX ã€ã®ã¡ã«ããºã ã¯æ¬¡ã®ãšããã§ãã
ä»ã® XNUMX ã€ã®æ©èœãããŒã¿çã«éããŸããã
ã¢ã«ãã¡çã«ãããå¯äžã®éèŠãªé©æ°ã¯ã SelfLink
â æå®ããããªããžã§ã¯ããè¡šãããã®äžéšã§ããç¹å¥ãª URI ObjectMeta
О ListMeta
(ã€ãŸããKubernetes å
ã®ãªããžã§ã¯ãã®äžéš)ã ãªã圌ãã¯ãããæŸæ£ããã®ã§ããããïŒ ã·ã³ãã«ãªæ¹æ³ã§ã¢ãããŒã·ã§ã³ãé«ãã SelfLink
Kubernetes ããŒãžã§ã³ 1.20 ãŸã§ã«å®çŸãããæçµçã«ã¯ 1.21 ã«ãªããŸãã
ããŒã¿ä¿å
以åã®ãªãªãŒã¹ãšåæ§ã«ãã¹ãã¬ãŒãžé åã®äž»ãªäœæ¥ã¯ã次ã®é åã§èŠ³å¯ãããŸãã
- åã㊠(ã¢ã«ãã¡çã§)
åºçŸãã Windows ã¯ãŒã«ãŒ ããŒãã® CSI ãã©ã°ã€ã³ã®ãµããŒã: çŸåšã®ã¹ãã¬ãŒãžã®æäœæ¹æ³ã§ã¯ãKubernetes ã³ã¢ã®ããªãŒå ãã©ã°ã€ã³ãšãPowershell ã«åºã¥ãã Microsoft ã® FlexVolume ãã©ã°ã€ã³ã眮ãæããããŸãã
Kubernetes for Windows ã« CSI ãã©ã°ã€ã³ãå®è£ ããããã®ã¹ããŒã - æ©äŒ
CSI ããªã¥ãŒã ã®ãµã€ãºå€æŽ ãK8s 1.12 ã§å°å ¥ãããŸããããããŒã¿çã«æé·ããŸããã - åæ§ã®ãããã¢ãŒã·ã§ã³ã(ã¢ã«ãã¡ããããŒã¿ãž) ã¯ãââCSI ã䜿çšããŠããŒã«ã«ã®äžæããªã¥ãŒã ãäœæããæ©èœã«ãã£ãŠéæãããŸãã (
CSI ã€ã³ã©ã€ã³ ããªã¥ãŒã ã®ãµããŒã ).
以åã®ããŒãžã§ã³ã® Kubernetes ã§å°å
¥ãããŸãã DataSource
æ°ãã PVC ãäœæãã) ãããŒã¿çã¹ããŒã¿ã¹ãååŸããŸããã
ãã©ã
ã¹ã±ãžã¥ãŒã«ã«å¯Ÿãã XNUMX ã€ã®æ³šç®ãã¹ãå€æŽ (äž¡æ¹ãšãã¢ã«ãã¡ç):
-
- æ©äŒ è² è·ã®ãå ¬å¹³ãªåæ£ãã®ããã«è«çã¢ããªã±ãŒã·ã§ã³ãŠãããã®ä»£ããã«ãããã䜿çšãã (Deployment ã ReplicaSet ã®ããã«)ããã®é åã (ããŒãèŠä»¶ãŸãã¯ãœããæ¡ä»¶ãã€ãŸãåªå 床ãšããŠ) 調æŽããŸãã ãã®æ©èœã¯ãçŸåšãªãã·ã§ã³ã«ãã£ãŠå¶éãããŠãããèšç»ãããŠãããããã®æ¢åã®é åžæ©èœãæ¡åŒµããŸããEvenPodsSpreading
PodAffinity
ОPodAntiAffinity
ããã«ããã管çè ã¯ãã®åé¡ã«é¢ããŠãã现ããå¶åŸ¡ã§ããããã«ãªããé«å¯çšæ§ãåäžãããªãœãŒã¹æ¶è²»ãæé©åãããããšã«ãªããŸãã 詳现 - ã§KEP . - äœ¿çš ãã¹ããã£ããããªã·ãŒ в RequestedToCapacityRatio åªå
é¢æ° ãããã®èšç»äžã«ã é©çšãã
ãã³ãããã³ã° åºæ¬ãªãœãŒã¹ (ããã»ããµãŒãã¡ã¢ãªãŒ) ãšæ¡åŒµãªãœãŒã¹ (GPU ãªã©) ã®äž¡æ¹ãã³ã³ãããŒã«ãããã³ã°ããŸãã 詳现ã«ã€ããŠã¯ããåç §ããŠãã ãããKEP .
ãããã®ã¹ã±ãžã¥ãŒãªã³ã°: æé©ãªããªã·ãŒã䜿çšããå (ããã©ã«ãã®ã¹ã±ãžã¥ãŒã©ãŒãä»ããŠçŽæ¥)ââ ãšãã®äœ¿çšæ (ã¹ã±ãžã¥ãŒã©ãŒ ãšã¯ã¹ãã³ããŒãä»ããŠ)
å ããŠã
ãã®ä»ã®å€æŽ
Kubernetes 1.16 ãªãªãŒã¹ã§ã泚ç®ãã¹ãç¹ããããŸãã ã®ããã®ã€ãã·ã¢ãã
ããã«ã次ã®ãããªå€æŽç¹ã確èªã§ããŸãã
- Windows ãµããŒãéçº Ñ
ã®åºçŸ ãã® OS çšã® Kubeadm ãŠãŒãã£ãªã㣠(ã¢ã«ãã¡ç)ããã£ã³ã¹ RunAsUserName
Windows ã³ã³ãã㌠(ã¢ã«ãã¡ç) ã®å Žåãæ¹å ã°ã«ãŒã管çãµãŒãã¹ ã¢ã«ãŠã³ã (gMSA) ã¯ããŒã¿çãŸã§ãµããŒããããŸãããµããŒã vSphere ããªã¥ãŒã ã®ããŠã³ã/ã¢ã¿ããã -
ãªãµã€ã¯ã« API å¿çã®ããŒã¿å§çž®ã¡ã«ããºã ã 以åã¯ããããã®ç®ç㧠HTTP ãã£ã«ã¿ãŒã䜿çšãããŠããŸããããããã©ã«ãã§æå¹ã«ããããšãã§ããªãå€ãã®å¶éã課ããããŠããŸããã ãééçãªãªã¯ãšã¹ãå§çž®ããæ©èœããããã«ãªããŸãã: ã¯ã©ã€ã¢ã³ããéä¿¡Accept-Encoding: gzip
ããããŒã§ããµã€ãºã 128 KB ãè¶ ããå Žåã¯ãGZIP å§çž®ãããå¿çãåãåããŸãã Go ã¯ã©ã€ã¢ã³ãã¯å§çž® (å¿ èŠãªããããŒã®éä¿¡) ãèªåçã«ãµããŒãããããããã©ãã£ãã¯ã®æžå°ã«ããã«æ°ã¥ããŸãã (ä»ã®èšèªã§ã¯è¥å¹²ã®å€æŽãå¿ èŠã«ãªãå ŽåããããŸãã) -
å¯èœã«ãªã£ã å€éšã¡ããªãã¯ã«åºã¥ã㊠HPA ããŒãããããããŒããããã«ã¹ã±ãŒãªã³ã°ããã ãªããžã§ã¯ã/å€éšã¡ããªãã¯ã«åºã¥ããŠã¹ã±ãŒãªã³ã°ããå Žåãã¯ãŒã¯ããŒããã¢ã€ãã«ç¶æ ã®ãšãã«èªåçã« 0 ã¬ããªã«ã«ã¹ã±ãŒãªã³ã°ããŠãªãœãŒã¹ãç¯çŽã§ããŸãã ãã®æ©èœã¯ãã¯ãŒã«ãŒã GPU ãªãœãŒã¹ãèŠæ±ããããŸããŸãªçš®é¡ã®ã¢ã€ãã«ç¶æ ã®ã¯ãŒã«ãŒã®æ°ãå©çšå¯èœãª GPU ã®æ°ãè¶ ããŠããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã - æ°ããã¯ã©ã€ã¢ã³ã -
â ãªããžã§ã¯ããžã®ãäžè¬åããããã¢ã¯ã»ã¹çšã ã¡ã¿ããŒã¿ (ã€ãŸãããµãã»ã¯ã·ã§ã³) ãç°¡åã«ååŸã§ããããã«èšèšãããŠããŸããk8s.io/client-go/metadata.Client
metadata
) ãã¯ã©ã¹ã¿ãŒ ãªãœãŒã¹ããååŸãããããã䜿çšããŠã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãšã¯ã©ãŒã¿æäœãå®è¡ããŸãã - Kubernetes ãæ§ç¯ãã
ä»ã§ãã åŸæ¥ã® (ãçµã¿èŸŒã¿ãããªãŒå ) ã¯ã©ãŠã ãããã€ã㌠(ã¢ã«ãã¡ç) ãªãã - kubeadm ãŠãŒãã£ãªãã£ãž
è¿œå ãã éçšäžã«ã«ã¹ã¿ãã€ãºããããé©çšããå®éšçïŒã¢ã«ãã¡çïŒæ©èœinit
,join
Оupgrade
ã ãã©ã°ã®äœ¿çšæ¹æ³ã«ã€ããŠè©³ããã¯ããã¡ããã芧ãã ããã--experimental-kustomize
ãåç §ããŠãã ãããKEP . - apiserver ã®æ°ãããšã³ããã€ã³ã -
, - æºåç¶æ³ã«é¢ããæ å ±ããšã¯ã¹ããŒãã§ããŸãã API ãµãŒããŒã«ããã©ã°ãè¿œå ãããŸããreadyz
--maximum-startup-sequence-duration
ãåèµ·åãå¶åŸ¡ã§ããããã«ãªããŸãã - äºã€ Azureã®æ©èœ å®å®å®£èš: ãµããŒã
ã¢ãã€ã©ããªãã£ãŒãŸãŒã³ (ã¢ãã€ã©ããªãã£ãŒãŸãŒã³) ããã³ã¯ãã¹ãªãœãŒã¹ã°ã«ãŒã (RG)ã ããã«ãAzure ã¯ä»¥äžãè¿œå ããŸããã-
èªèšŒãµããŒã AAD ãš ADFSã -
泚é service.beta.kubernetes.io/azure-pip-name
ããŒããã©ã³ãµãŒã®ãããªãã¯IPãæå®ããŸãã -
æ©äŒ МаÑÑÑПйкОLoadBalancerName
ОLoadBalancerResourceGroup
.
-
- AWS ã¯çŸåšã
ãµããŒã Windows äžã® EBS ããã³æé©å EC2 APIåŒã³åºãDescribeInstances
. - Kubeadm ãç¬ç«ããŸãã
移äœãã CoreDNS ããŒãžã§ã³ãã¢ããã°ã¬ãŒãããå Žåã® CoreDNS æ§æã - ãã€ã㪠etcd 察å¿ãã Docker ã€ã¡ãŒãžå
å®äºããŸãã world-executable ã«ãããroot æš©éãå¿ èŠãšããã«ãã®ã€ã¡ãŒãžãå®è¡ã§ããããã«ãªããŸãã ãŸããetcd移è¡ã€ã¡ãŒãžåæ¢ãã etcd2 ããŒãžã§ã³ã®ãµããŒãã - Ð
ã¯ã©ã¹ã¿ãŒ ãªãŒãã¹ã±ãŒã©ãŒ 1.16.0 åºæ¬ã€ã¡ãŒãžãšã㊠distroless ã®äœ¿çšã«åãæ¿ããããããã©ãŒãã³ã¹ãåäžããæ°ããã¯ã©ãŠã ãããã€ã㌠(DigitalOceanãMagnumãPacket) ãè¿œå ãããŸããã - 䜿çš/äŸåãœãããŠã§ã¢ã®ã¢ããããŒã: Go 1.12.9ãetcd 3.3.15ãCoreDNS 1.6.2ã
PS
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
Kubernetes 1.15: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ "; - «
Kubernetes 1.14: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ "; - «
Kubernetes 1.13: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ "; - «
Kubernetes 1.12: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ 'ã
åºæïŒ habr.com