ืืืื, ืืื ืจืืืขื,
ืืืืืข ืืืฉืืฉ ืืืื ืช ืืืืจ ืื ื ืืงื ื
ืฆืืชืื
ืืกืคืจ ืืืื ืืืืช ืฉื ืืืืืฉืื ืืืืืื (ืืกืืืืก ืืจืกืช ืืืคื) ืืืฆืืื ืืฆื ืฉื ืฆืืชื ืืืฉืืื K8s (Kubelet).
ืจืืฉืืช, ืื ืฉื ืงืจื ยซkubectl debug
, ืืืื ืืืืืชื ื kubectl exec
: ืจืง ืืืงืื ืืืคืขืื ืชืืืื ืืืืื (ืืื ื exec
) ืืื ืืฉืืจ ืืืื ืืชืจืืื. ืืืืืื, ืคืงืืื ืื ืชืืืจ ืืืื ืืืฉ ืืชืจืืื:
kubectl debug -c debug-shell --image=debian target-pod -- bash
ืคืจืืื ืขื ืืืืืื ืืจืขืืื (ืืืืืืืืช ืืฉืืืืฉ ืืื) ื ืืชื ืืืฆืื ื
NB: ืืืืืชื ืืืคืืื ืืฉืื, ืืชืืื ื ืืืื ืืชืืกืฃ ืฉืืืจ ืงืืื
ืืืืืฉ ื ืืกืฃ - PodOverhead
PodSpec
ืฉืื ื ืืกืฃ Overhead *ResourceList
(ืืฉืืื ืื ืชืื ืื ื RuntimeClass
, ืื ื ืขืฉื ืฉืืืืฉ ืืื).
ืืืืืฉ ืืืื ื ืืกืฃ ืืื ืื ืื ืืืคืืืืืืืช ืฆืืชืื (ืื ืื ืืืคืืืืืืืช ืืฆืืชืื), ืฉื ืืขื ืืืื ืืช ืืืืฉื ืืืืื ืื ืขืืื ืฉื ืืงืฆืืช ืืฉืืื ืืืืืจื ืขืืืจ ืจืืืืื ืฉืื ืื ื-Kubernetes. ืืืืื ืื ืืื ืขืช ืืืฆืืจื ืืืืื ืืืืืจ ืฉื ืืขืจืืืช ืืืืจื ืืืช ืฉืื ืืช (ืืชืืื ืืืืงืืืื ืืงืฆืื, ืืืืืช ืืืื ื, ืฉืืจืืชืื ืคืื ื ืกืืื ืืื') ืืืืฉืื ืืงืืื ืืขื ืืืฆืืขืื ืืืืืื ืืืืืขืืจ ืขืืืืืื ืืืืฆืืข ืืคืขืืืืช, ืขืืืจื ืื ืืฉืชืืฉืืช ืืืขืื ืืชืงืื ืืืืืืช ืืืฆืช ืืืืจื. ืืืคืืืืืืฆืืืช ืืืื ื-Kubernetes ืืืฉืื ืขื ืื ืืืืืช ืืจืืืืื ืฉืื ืื (ืื ืื ืืขืื, ืื ืื ืืชืงื ืื, CNI), ืืืขืช ืืชืืืกืฃ ืืื ืืืฉืง ืคื ืืื ืืืื ืฉืืืื ืืช ืืืืฉื ืืืคืฉื ืืช ืืืืืืจ ืฉื ืืืืื ืืืฉืื - ืื ืฉื ืงืจื ืืืคืืืืืื- ืืืืข - ืจืืืืื ืืฆื Kubelet. ืคืจืืื - ื
ืชืจืฉืื ืจืืืื ืื ืื ืืืคืืืืืื
ืืชืืื ื ืืืื - ืืืืงืช ืืืืืื ืืืื ืฉืื ืคืืขืืื (StartupProbeEnabled
) ืืืื - ืื ืืืชืจ ื ืืื, ืืืื - ืืช ืืฉืคืขืช ืื ืืืืงื ืืืจืช ืขื ืืจืืข ืฉืืคืื ืกืืื ืืคืขืื. ืืกืืื ืื, ืืชืืื ื ื ืงืจืื ืืืงืืจ
ืื ืืกืฃ, ืฉืืคืืจ ืขืืืจ RuntimeClass ืืืื ืืืืคื ืืืืื ืืกืืืืก ืืื, ืืืืกืืฃ ืชืืืื ื"ืืฉืืืืืช ืืืจืืื ืืื". ื
ืจืฉืช
ืฉืชื ืชืืื ืืช ืจืฉืช ืืฉืืขืืชืืืช ืฉืืืคืืขื ืืจืืฉืื ื (ืืืจืกืช ืืืคื) ื-Kubernetes 1.16 ืื:
-
ืชืืืื ืขืจืืืช ืจืฉืช ืืคืืื - IPv4/IPv6 - ืื"ืืื ื" ืืืงืืืื ืฉืื ืืจืืช ืืชืจืืืืื, ืืฆืืชืื, ืืฉืืจืืชืื. ืื ืืืื ืืืืืช ืคืขืืื ืืืืืช ืฉื IPv4-to-IPv4 ื-IPv6-to-IPv6 ืืื ืคืืืื, ื-pods ืืขื ืฉืืจืืชืื ืืืฆืื ืืื, ืืืืขืืช ืืชืืืืกืืช (ืืชืื ืืชืืกืคืื Bridge CNI, PTP CNI ื- Host-Local IPAM), ืืื ืชืืื ืืืืืจ ืขื ืืฉืืืืืช Kubernetes ืืคืืขืืื IPv4 ืื IPv6 ืืืื. ืคืจืื ืืืืฉืื ื ืืฆืืืืงืค .ืืืืื ืืืฆืืช ืืชืืืืช IP ืืฉื ื ืกืืืื (IPv4 ื-IPv6) ืืจืฉืืืช ืืคืืืื:
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 ืืืฉ ืขืืืจ ื ืงืืืช ืงืฆื -
EndpointSlice API . ืื ืคืืชืจ ืืช ืืขืืืช ืืืืฆืืขืื/ืกืงืืืืืืืช ืฉื ื-Endpoint API ืืงืืื ืฉืืฉืคืืขืืช ืขื ืจืืืืื ืฉืื ืื ืืืืฉืืจ ืืืงืจื (apiserver, ืืื', ืงืฆื-ืืงืจ, kube-proxy). ื-API ืืืืฉ ืืชืืืกืฃ ืืงืืืฆืช Discovery API ืืืืื ืืฉืจืช ืขืฉืจืืช ืืืคื ื ืงืืืืช ืงืฆื ืขืืจืคืืืช ืืื ืฉืืจืืช ืืืฉืืื ืืืืจืื ืืืืคื ืฆืืชืื. ืืฉื ืื, ืื ืฉืืจืืช ืืืืคื ื-N ืืืืืืงืืืEndpointSlice
, ืฉืืื ืืืช ืืื ืืืจืืจืช ืืืื ืืื ืืืชืจ ื-100 ื ืงืืืืช ืงืฆื (ืืขืจื ื ืืชื ืืืืืจื). ื-API ืฉื EndpointSlice ืืกืคืง ืื ืืืืื ืืืืช ืืคืืชืื ืขืชืืื ืฉืื: ืชืืืื ืืืกืคืจ ืืชืืืืช IP ืขืืืจ ืื ืคืื, ืืฆืืื ืืืฉืื ืขืืืจ ื ืงืืืืช ืงืฆื (ืื ืจืงReady
ะธNotReady
), ืืืืจืช ืืฉื ื ืืื ืืืช ืขืืืจ ื ืงืืืืช ืงืฆื.
ืื ืฉืืืฆื ืืืืืืจื ืืืืจืื ื ืืืืข ืืืจืกืช ืืืื service.kubernetes.io/load-balancer-cleanup
ืืืฆืืจืคืช ืืื ืฉืืจืืช ืขื ืกืื LoadBalancer
. ืืืื ืืืืงืช ืฉืืจืืช ืืื, ืืื ืืื ืข ืืช ืืืืืงื ืืคืืขื ืฉื ืืืฉืื ืขื ืืืฉืืืช ื"ื ืืงืื" ืฉื ืื ืืฉืืื ืืืืืื ืืจืืืื ืืืื.
ืืืื ืืช API
"ืืื ืืืจื ืืืืฆืื" ืืืืืชืืช ืืื ืืืืืจ ืฉืจืช ื-API ืฉื Kubernetes ืืืืื ืืจืืงืฆืื ืืืชื. ืื ืงืจื ืืขืืงืจ ืืืืืช ืืขืืจืช ืืืขืื ืืฆืื ืืช ืื ืฉืื ืฆืจืื ืืืืจืืช ืืืืืืช
-
"ืืฉืืื ืืฉื ื" ืขื/status
ะธ/scale
ืขืืืจ CustomResources; -
ืืจื ืกืคืืจืืฆืื ืืจืกืืืช ืขืืืจ CRD, ืืืืืกืกืืช ืขื webhook ืืืฆืื ื; -
ืืืฆื ืืืืจืื ื (ื-K8s 1.15) ืขืจืื ืืจืืจืช ืืืื (ืืจืืจืช ืืืื) ืืืกืจืช ืฉืืืช ืืืืืืืืช (ืงึดืฆืึผืฅ) ืขืืืจ CustomResources; -
ืืืืื ืืช ืฉืืืืฉ ืืกืืืืช OpenAPI v3 ืืื ืืืฆืืจ ืืืคืจืกื ืชืืขืื OpenAPI ืืืฉืืฉ ืืืืืืช ืืฉืืื CRD ืืฆื ืืฉืจืช.
ืื ืื ืื ื ืืกืฃ ืฉืืคื ืืืืจ ืืืื ืืื ืืื Kubernetes:
ืฉืชื ืชืืื ืืช ื ืืกืคืืช ืืืืขื ืืืื:
ืืืืืืืฉ ืืืฉืืขืืชื ืืืืื ืืืจืกืช ืืืืคื ืืื SelfLink
- URI ืืืืื ืืืืืฆื ืืช ืืืืืืืงื ืฉืฆืืื ืืืืืื ืืืง ืืื ื ObjectMeta
ะธ ListMeta
(ืืืืืจ ืืืง ืืื ืืืืืืงื ื-Kubernetes). ืืื ืื ื ืืืฉืื ืืช ืื? ืืืืืืฆืื ืืฆืืจื ืคืฉืืื SelfLink
ืืชืจืืฉ ืขื ืืื Kubernetes ืืจืกื 1.20, ืืกืืคื - 1.21.
ืืืกืื ื ืชืื ืื
ืืขืืืื ืืขืืงืจืืช ืืชืืื ืืืืกืื, ืืื ืืืืืืจืืช ืงืืืืืช, ื ืฆืคืชื ืืืืืจ
- ืืคืขื ืืจืืฉืื ื (ืืืจืกืช ืืืคื)
ืืืคืืข ืชืืืื ืืคืืืืื CSI ืืฆืืชื ืขืืืื ืฉื Windows: ืืจื ืืขืืืื ืื ืืืืืช ืขื ืืืกืื ืชืืืืฃ ืื ืชืืกืคืื ืืชืื ืืขืฅ ืืืืืช Kubernetes ืืชืืกืคื FlexVolume ืืืืช ืืืงืจืืกืืคื ืืืืืกืกืื ืขื Powershell;
ืชืื ืืช ืืืืืขืช ืชืืกืคืื ืฉื CSI ื-Kubernetes ืขืืืจ Windows - ืืืืื ืืช
ืฉืื ืื ืืืื ื ืคืื CSI , ืฉืืืฆื ืืืืจื ื-K8s 1.12, ืืื ืืืจืกืช ืืื; - "ืงืืืื" ืืืื (ืืืืคื ืืืื) ืืืฉื ืขื ืืื ืืืืืืช ืืืฉืชืืฉ ื-CSI ืืืฆืืจืช ื ืคืืื ืืจืขืืื ืืงืืืืื (
ืชืืืื ืื ืคื ืืืืืข ื-CSI ).
ืืืฆื ืืืจืกื ืืงืืืืช ืฉื Kubernetes DataSource
ืืื ืืืฆืืจ PVC ืืืฉ) ืงืืืื ืื ืืขืช ืกืืืืก ืืื.
ืืชืืื
ืฉื ื ืฉืื ืืืื ืืืืืื ืืชืืืื (ืฉื ืืื ืืืืคื):
-
- ืืืืื ืืช ืืฉืชืืฉ ืืชืจืืืืื ืืืงืื ืืืืืืืช ืืืฉืื ืืืืืืช ื"ืืืืงื ืืืื ืช" ืฉื ืขืืืกืื (ืืื Deployment ื- ReplicaSet) ืืืชืืืช ืืคืฆื ืื (ืืืจืืฉื ืงืฉื ืื ืืชื ืื ืจื, ืืืืืจ ืขืืืคืืช). ืืชืืื ื ืชืจืืื ืืช ืืืืืืช ืืืคืฆื ืืงืืืืืช ืฉื ืคืืืื ืืชืืื ื ืื, ืืืืืืืช ืืขืช ืขื ืืื ืืคืฉืจืืืืชEvenPodsSpreading
PodAffinity
ะธPodAntiAffinity
, ื ืืชื ืืื ืืื ืืขืจืืช ืฉืืืื ืขืืื ื ืืืชืจ ืืขื ืืื ืื, ืื ืฉืืืืจ ืืืื ืืช ืืืืื ืืืชืจ ืืฆืจืืืช ืืฉืืืื ืืืคืืืืืืช. ืคืจืืื - ืืงืค . - ืืืฉืชืืฉ ืืืื ืืืช BestFit ะฒ RequestedToCapacityRatio Priority Function ืืืืื ืชืื ืื ืืชืจืืื, ืื ืฉืืืคืฉืจ ืืืืื
ืืจืืืช ืคืืื ("ืืจืืื ืืืืืืืช") ืื ืขืืืจ ืืฉืืืื ืืกืืกืืื (ืืขืื, ืืืืจืื) ืืื ืขืืืจ ืืฉืืืื ืืืจืืืื (ืืื GPU). ืืคืจืืื ื ืืกืคืื, ืจืืืงืค .
ืชืืืื ืชืจืืืืื: ืืคื ื ืืฉืืืืฉ ืืืืื ืืืช ืืืชืืื ืืืืื ืืืืชืจ (ืืฉืืจืืช ืืืืฆืขืืช ืืชืืื ืืจืืจืช ืืืืื) ืืขื ืืฉืืืืฉ ืื (ืืืืฆืขืืช ืืจืืื ืืชืืื)
ืื ืืกืฃ,
ืฉืื ืืืื ืืืจืื
ืื ืืืืืืจืช Kubernetes 1.16 ื ืืชื ืืฆืืื ืืืช ืืืืื ืขืืืจ
ืื ืืกืฃ, ื ืืชื ืืฆืืื ืืช ืืฉืื ืืืื ืืืืื:
- ืชืืืื ืืคืืชืื Windows ั
ืืจืื ืืืฆืื ื ืืื ืฉืืจืืช Kubeadm ืขืืืจ ืืขืจืืช ืืคืขืื ืื (ืืจืกืช ืืืคื),ืึดืืึทืึฐื ืึผืช RunAsUserName
ืขืืืจ ืืืืื Windows (ืืจืกืช ืืืคื),ืึทืฉืืึผึธืึธื ืชืืืื ืืืฉืืื ืฉืืจืืช ืื ืืื ืืงืืืฆื (gMSA) ืขื ืืจืกืช ืืื,ืชืืืื ืืจืื/ืืฆืจืฃ ืขืืืจ ืืืฆืขื ืืืกืื ืฉื vSphere. -
ืืืืืืจ ืื ืื ืื ืืืืกืช ื ืชืื ืื ืืชืืืืืช API. ืืขืืจ, ื ืขืฉื ืฉืืืืฉ ืืืกื ื HTTP ืืืืจืืช ืืื, ืืฉืจ ืืืื ืืกืคืจ ืืืืืืช ืฉืื ืขื ืืช ืืคืขืืชื ืืืจืืจืช ืืืื. "ืืืืกื ืฉืงืืคื ืฉื ืืงืฉื" ืขืืืืช ืืขืช: ืืงืืืืช ืฉืืืืืAccept-Encoding: gzip
ืืืืชืจืช, ืื ืืงืืืื ืชืืืื ืืืืกื ืฉื GZIP ืื ืืืืื ืฉืื ืขืืื ืขื 128 KB. ืืงืืืืช Go ืชืืืืื ืืืืคื ืืืืืืื ืืืืืกื (ืฉืืืืช ืืืืชืจืช ืื ืืจืฉืช), ืื ืฉืื ืืืืื ื ืืื ืืืจืืื ืืชืขืืืจื. (ืืืชืื ืฉืืืื ืฆืืจื ืืฉืื ืืืื ืงืืื ืขืืืจ ืฉืคืืช ืืืจืืช.) -
ืืคื ืืคืฉืจื ืฉืื ืื ืงื ื ืืืืื ืฉื HPA ื/ืืืคืก ืชืจืืืืื ืืืชืืกืก ืขื ืืืืื ืืืฆืื ืืื. ืื ืืชื ืืฉื ื ืงื ื ืืืื ืขื ืกืื ืืืืืืงืืื/ืืืืื ืืืฆืื ืืื, ืื ืืืฉืจ ืขืืืกื ืืขืืืื ืืื ื ืคืขืืืื ืชืืื ืืฉื ืืช ืืช ืงื ื ืืืืื ืืืืืืืืช ื-0 ืืขืชืงืื ืืื ืืืกืื ืืืฉืืืื. ืชืืื ื ืื ืืืืจื ืืืืืช ืฉืืืืฉืืช ืืืืืื ืืืงืจืื ืฉืืื ืขืืืืื ืืืงืฉืื ืืฉืืื GPU, ืืืกืคืจ ืืกืืืื ืืฉืื ืื ืฉื ืขืืืืื ืกืจืง ืขืืื ืขื ืืกืคืจ ื-GPUs ืืืืื ืื. - ืืงืื ืืืฉ -
- ืืืืฉื "ืืืืืืช" ืืืืืืืงืืื. ืื ื ืืขื ืืืืืจ ืืงืืืช ืืื ื ืชืื ืื (ืืืืืจ ืกืขืืฃ ืืฉื ืk8s.io/client-go/metadata.Client
metadata
) ืืืฉืืื ืืฉืืื ืืืืฆืข ืืืชื ืคืขืืืืช ืืืกืืฃ ืืฉืคื ืืืืกืืช. - ืื ื Kubernetes
ืขืืฉืื ืืชื ืืืื ืืื ืกืคืงื ืขื ื ืืืืจ ืงืืื ("ืืืื ื" ืืชืื ืืขืฅ) (ืืจืกืช ืืืคื). - ืืืื ืืฉืืจืืช kubeadm
ืืืกืืฃ ืืืืืช ื ืืกืืื ืืช (ืืจืกืช ืืืคื) ืืืืื ืชืืงืื ืื ืืืชืืืื ืืืฉืืช ืืืืื ืืคืขืืืืชinit
,join
ะธupgrade
. ืืืืืข ื ืืกืฃ ืขื ืืืคื ืืฉืืืืฉ ืืืื--experimental-kustomize
, ืจืื ืืงืค . - ื ืงืืืช ืงืฆื ืืืฉื ืขืืืจ apiserver -
, - ืืืคืฉืจ ืืืืฆื ืืืืข ืขื ืืืื ืืชื. ืื ืืฉืจืช ื-API ืืฉ ืืขืช ืืืreadyz
--maximum-startup-sequence-duration
, ืืืืคืฉืจ ืื ืืืืกืช ืืช ืืืคืขืื ืืืืฉ ืฉืื. - ืฉื ื ืชืืื ืืช ืขืืืจ Azure ืืืืจื ืืฆืื: ืชืืืื
ืืืืจื ืืืื ืืช (ืืืืจื ืืืื ืืช) ืืงืืืฆืช ืืฉืืืื ืืืฆื (RG). ืื ืืกืฃ, Azure ืืืกืืคื:-
ืชืืืื ืืืืืืช AAD ื-ADFS; -
ืืืืืจ service.beta.kubernetes.io/azure-pip-name
ืืื ืืฆืืื ืืช ื-IP ืืฆืืืืจื ืฉื ืืืื ืืขืืืก; -
ืืืืื ืืช ะฝะฐัััะพะนะบะธLoadBalancerName
ะธLoadBalancerResourceGroup
.
-
- ื-AWS ืืฉ ืขืืฉืื
ืืชืืื ืขืืืจ EBS ื-Windows ืืืืคืืืืืืฆืื ืงืจืืืืช EC2 APIDescribeInstances
. - Kubeadm ืืื ืืขืช ืขืฆืืื
ื ืืื ืชืฆืืจืช CoreDNS ืืขืช ืฉืืจืื ืืจืกืช CoreDNS. - ืืื ืืจืืื ืืื ' ืืชืืื ืช Docker ืืืชืืืื
ืขืฉื world-executable, ืืืืคืฉืจ ืื ืืืจืืฅ ืชืืื ื ืื ืืื ืฆืืจื ืืืืืืืช ืฉืืจืฉ. ืืื ืื, ืชืืื ืช ืืืืจื ืืื'ืืื ืชืืืื ืืืจืกืช etcd2. - ะ
Cluster Autoscaler 1.16.0 ืขืืจ ืืืฉืชืืฉ ื-Distroless ืืชืืื ืช ืืืกืืก, ืืืฆืืขืื ืืฉืืคืจืื, ื ืืกืคื ืกืคืงื ืขื ื ืืืฉืื (DigitalOcean, Magnum, Packet). - ืขืืืื ืื ืืชืืื ื ืืฉืืืฉืช/ืชืืืื: Go 1.12.9, etcd 3.3.15, CoreDNS 1.6.2.
ื .ื.
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
Kubernetes 1.15: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื "; - ยซ
Kubernetes 1.14: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื "; - ยซ
Kubernetes 1.13: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื "; - ยซ
Kubernetes 1.12: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื ".
ืืงืืจ: www.habr.com