ααααααα, αααααα»α,
ααααααΆααααααααΎααΎααααΈαααα
ααααααΆαααααααααΌαααΆαααα
ααααΈ
ααααΆαα
αα½αα ααα½αααααααΆαα αααααααα·ααα½αα±ααααααααααΆαα (αα αααα»αααααΆαααΆαααααα’αΆααα αααΆ) ααααΌαααΆααααα αΆααα αααααααααΆαααααααΆααα ααααα K8s (Kubelet) α
ααααΌαααα α
ααΆ Β«kubectl debug
, ααααααααααΆαα
αααα»αααααΉαααΆα kubectl exec
α αααα½αα±ααααααΎαααΆααα
αααα»ααα»αααΊααα (ααΌα
αα
αααα»α exec
) ααΆααΎααα»αααΊααααα
αααα»αααα α§ααΆα ααα ααΆααααααααΆαααααΉαααααΆαααα»αααΊαααααααΈαα
ααα
kubectl debug -c debug-shell --image=debian target-pod -- bash
ααααααΆααααα’α·αα’αααΈαα»ααααα»ααα·αααααααααΈ (αα·αα§ααΆα αααααααΆαααααΎααααΆααααααααΆ) α’αΆα
ααααΆααα
αααα»α
NBα αα
αααα»αααααΉαααΆαααααααΆ αα·αααΌααααΈαααααααααααααΆ αα»αααΆαααααααα αΆαααααα ααααΉααααααα·ααΈαααα½ααααααΆαααααΆαα
ααΆαα
αααααααα·ααα½αααα - PodOverhead
PodSpec
ααΆααααααα Overhead *ResourceList
(ααααααααααΆαα½ααα·αααααααα
αααα»α RuntimeClass
ααααα·αααΎαα½αααααΌαααΆαααααΎ) α
ααΆαα
αααααααα·ααα½αα±ααααααααααΆαααα½ααααααΊ αααααα·ααΈααααααααα node topology (αααααα·ααΈααααααααα Node Topology)αα
ααΆα‘αΎαααΎααααΈααααα½αααααα½ααα·ααΈααΆααααααααα»αααΆαααααααα½αααΆααααα
ααααααΆααααααααΉααααααΆαααααΆαααΆαα»αααααααα
αααα»α Kubernetes α αααα·ααααα½α
ααααΎααααααααΌαααΆααααα»αααααααααΌαααΆαααααααα»αααΎαα‘αΎαααααααααααααααΎααααααα (ααΈαα·αααααΌαααααΆαααα ααΆαααααααΆαααΈα ααααΆααααα α·ααααααααα»α αααααααΆααααααΎαααααΏααααααααΉαα ααΆααααααΎαααααα·αααααΆααααααααα
αααα»α Kubernetes αα αΌααααααααααααααααΌαααΆααααααα
αααα’ααα»αα
ααααααΆαα»ααααααααα»αααααΆ (αααααα·ααΈααααααααα CPU, Device manager, CNI) α αΎαα₯α‘αΌαααααα½αααααΉαααααΌαααΆαααααααα
ααα»α
αααααΆααααΆααααα»ααααα½ααααααααα½αααααα½ααα·ααΈααΆααααα αα·αααααα½ααααααΆααααααΆααααααααααααααΆααααΈ αααα α
ααΆ topology- ααΉα - αααΆαααΆαα»αα
ααΆα Kubelet α ααααααΆααααα’α·α - αααα»α
ααααΆααααΆααααΆαααΆαα’αααααααααααα Topology
αα»αααΆααααααΆαα - αα·αα·ααααα»αααααααααααα½ααααααα»αααααΎαααΆα (StartupProbeEnabled
) αα»αα
αα - α¬αααα»ααα
αα·α αααααΆα - α₯αααα·ααααααΆααααα½ααα·αα·ααααααααααααα αΌααααααααααααααΆαααααΎαααΆαα αααααΆααα ααα»ααααααααααααα·ααααααααααΌαααΆαααα α
ααΆααΎα
ααΎαααΈααα ααΆααααααα’αααααΆαα RuntimeClass ααΊααΆαααααΆαααα
αααα»αααααΆαααΆαααααΆ αααααααααααΆαααΆαααααααααΆαα "α
αααααααααααααααΆ" α α
αααααΆα
αα»αααΆααααααΆαααααΆαααα ααα½αααΈααααααΆααααα αΆααααα½αααΆααΎαααααΌα (αα αααα»αααααα’αΆααα αααΆ) αα αααα»α Kubernetes 1.16 ααΊα
-
ααΆαααΆαααα ααααααααΆαααΈα - IPv4/IPv6 - αα·α "ααΆααααααΉα" αααααααΌαααααΆααααααΆαα ααααα·α pods, nodes, services α ααΆαα½ααααα αΌα IPv4-to-IPv4 αα·α IPv6-to-IPv6 α’ααααααααα·ααααα·ααΆααααΆααα ααΈαα αααααααΆααΆααααα ααΆαα’αα»ααααααα ααααΈααα (αα αααα»ααααααα·ααΈαααα½α Bridge CNI, PTP CNI αα·α Host-Local IPAM plugins) ααααΌα ααΆαααα αααΆααααααααΌαααααΆααΆαα½ααααα»α 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 ααααΈαααααΆαα Endpoint -
EndpointSlice API . ααΆαααααααΆααααα αΆααΆαα’αα»αααα/ααΆαααααΎααΆαααααααΆααα Endpoint API αααααΆαααααΆαα ααααααααΆααααααααΆαααΆαα»αααααααα αααα»αααααα αααααααΆ (apiserver, etcd, endpoints-controller, kube-proxy)α API ααααΈααΉαααααΌαααΆααααα αΌααα αααα»ααααα»α Discovery API α αΎαααΉαα’αΆα αααααΎα ααα»α αααα αααααααααα·ααΈααΆααααααααΆαααααΊααα ααΎααααΆααααααΈαα½αααα αααα»αα ααααααααααΆαααααΆααααΆααααΆααα ααΎααααΈααααΎααΌα αααα ααααΆααΈαα½ααααααΌαααΆαααΌααααααΈαα ααααα» NEndpointSlice
αααααΈαα½ααααΆαααααΆαααΎαααΆαα ααα»α αααα αααα·αααΎαααΈ 100 (αααααα’αΆα αααααααΆα)α EndpointSlice API ααααΉααααααα±ααΆααααααΆααααΆαα’αα·ααααααααΆαααα’ααΆααααααααΆαααααα ααΆαααΆαααααααααΆααα’αΆααααααΆα IP α αααΎααααααΆααααααΈαα½αα ααααααααΈαααααΆααα ααα»α αααα αα (αα·αααααΉαααααα»αααααReady
ΠΈNotReady
) ααΆααααααααααΆααααααααααΆααα ααα»α αααα ααα
αααααααααΆααααα αΆααα
αααα»αααΆαα
ααααααΆαα
α»ααααααααΆαααΆααααααααααααΆ service.kubernetes.io/load-balancer-cleanup
αα·αααααΆααααΆαα½αααααΆααααααΈαα½ααααΆαα½ααααααα LoadBalancer
. αα
ααααα»αααααΆαααααααααα ααΆααΆαααΆαααΆααα»αααααΆααα·αααααΆαααα αΌαααα "ααΆααααα’αΆα" ααααααΆααα»αααααΆααααααΆαααααααααΆααα’ααααααΌαααΆααααα
ααα
ααααΏααααΆαααΈα API
"ααααΆααααΆααααααααΆα" αα·αααααΆααααΊαα
αααα»αααααααααααΆαααΈααα Kubernetes API αα·αα’ααααααααααΆαα½αααΆα αααααΆαααΎαα‘αΎαααΆαα
αααΎαα’ααα»αα
αααα ααααααα
ααααΆαααΆααααα·αααΆαα’αααααααα·αααααΌαααΆαααΆαααααΆααα·ααα
-
"ααααΆαβαα" αα/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 ααΆαααααααααΆααααααΆααααααααααΈαααΌα αα·ααΈαα αα α»ααααααααααΆαααααΎααΆαααΆαα½αα§ααααααααα»αααααΉααααα½ααααααα·ααΈαααα½ααααα»ααααααΆαααααααα αααα»αααααΌα Kubernetes αα·ααααααα·ααΈαααα½α FlexVolume ααΈ Microsoft αααααα’ααααΎ Powershell;
αααααααΆααααααααΆααααΆαα’αα»αααααααααα·ααΈαααα½α CSI αα αααα»α Kubernetes αααααΆαα Windows - α±ααΆα
ααααΆααααααΌαααα αααα·ααΆα CSI αααααΆαααααΆαα‘αΎααα·ααα αααα»α K8s 1.12 ααΆαααΈαα ααααΎααα ααΆααααααααΆα - "ααΆαααααααααααΆα" ααααααααααΆ (ααΈα’αΆααα αααΆαα
ααααΆ) ααααΌαααΆααααααα
ααααααααααΆααααα»αααΆαααααΎααααΆαα CSI ααΎααααΈαααααΎαααα·ααΆα ephemeral αααα»αααααα (
ααΆαααΆααααααααα·αααα‘αααααα»ααααααΆα CSI ).
ααΆαααααΆααα
αααα»ααααααα»ααααα Kubernetes DataSource
ααΎααααΈαααααΎα PVC ααααΈ) α₯α‘αΌααααααααα½αααΆαααααΆαααΆαααααΆαααααα
α’ααααααα αααΆααα·ααΆα
ααΆαααααΆααααααΌααα½αα±ααααααααααΆααααΈαα ααααααΆααααααααα (ααΆαααα αααα»αα’αΆααα αααΆ)α
-
- α±ααΆα ααααΎ pods αααα½αα±ααα―αααΆαααααα·ααΈα‘αΌααΈαααααααΆαα "ααΆαα ααα αΆαααααα»αααα·ααα" ααααααα»α (ααΌα ααΆααΆαααΆαααααααΆα αα·ααα»αα αααα) αα·αααΆαααααααα½αααΆαα ααα αΆαααα (ααΆαααααΌαααΆαααΉα α¬ααΆααααααααααα αααααΊα’αΆαα·ααΆα)α αα»αααΆααααααΉααααααΈααααααααΆαα ααα αΆααααααΆαααααΆααααααααααααααΆαααααααα»α ααααα αα α»ααααααααααΌαααΆααααααααααααααΎαEvenPodsSpreading
PodAffinity
ΠΈPodAntiAffinity
αααααα±ααα’ααααααααααααααΌαααΆααααααααααααΆααααααα’α·αααα’αααααα»ααααα αΆααα αααααΆααααααΆααΆαα’αΆα ααααΆααααααααΆαααααααααΎα αα·αααΆαααααΎααααΆααααααΆαααααααααΎαα‘αΎαα ααααααΆααααα’α·α - αααα»αααα’α . - ααααΎ αααααΆααα BestFit Π² α’αα»ααααβα’αΆαα·ααΆαβααβααΆαβααααΎβαα»αβToCapacityRatio αααα»αα’αα‘α»ααααααααΎαααααΆα pod αααααΉαα’αα»ααααΆα ααααΎ
ααΆαααα ααα αααα»αααααΆα ("ααΆαααα ααα αααααα»ααα»α") αααααΆααααΆααααααΆαααΌαααααΆα (α§αααααααααΎαααΆα α’αααα αα αΆα) αα·αα§ααααααααααα (ααΌα ααΆ GPU)α αααααΆααααααααΆααααα’α·αααΌαααΎαααα’α .
ααΆααααααααΆααα·ααΆαα αα»ααααααααΎαααααΆααααααααα»α (αααααααΆααααΆαααααααααα·ααΈααααααααααααΆαααΎα) αα·αααΆαα½αααΉαααΆαααααΎααααΆααααααααΆ (ααΆαααααααααα·ααΈαααααΈαααΆααα·ααΆα)
ααΎαααΈαααααα,
ααΆαααααΆααααααΌααααααααα
ααααααα
αααα»αααΆαα
ααααααΆα Kubernetes 1.16 α’αααα’αΆα
ααααααααΆαα αααα·ααααα½α
ααααΎααααααΆαα
ααΎαααΈααααααααΆαααααΆααααααΌαααΆααααααα’αΆα ααααΌαααΆαααααααααΆαα:
- ααΈαααΌααΆααααααΆαα’αα·αααααα Ρ
ααΌαααΆα α§αααααααααΎααααΆαα Kubeadm αααααΆααααααααααααααα·ααααα·ααΆαααα (ααααα’αΆααα αααΆ)α±ααΆα RunAsUserName
αααααΆααα§ααααααααα»αααΈαααΌ (ααααα’αΆααα αααΆ)ααΆααααααα’ ααααΈααααΆααααααααααααααααα»α (gMSA) ααΆαααααα αΌααααααααααααΆααΆαααα αααα / ααααΆαααααααΆααααΆα vSphere α -
ααα αααα‘αΎααα·α ααααααΆααααα αΆαααα·αααααααααα»αααΆαααααΎααα API. ααΈαα»α ααααα HTTP ααααΌαααΆαααααΎαααααΆαααααααααααΆααααα αααααΆααααααα·ααα½αα ααα½ααααααΆααΆααααΆααΈααΆαααΎαααααΎαααΆαααΆαααααΆαααΎαα α₯α‘αΌαααα "ααΆααααα αΆααααααΎαααααΆααΆα" ααααΎαααΆαα ααΆαααααΎα’αα·αα·ααAccept-Encoding: gzip
αα αααα»αααααααΆ αα½αααααα½αααΆαααΆαααααΎααααααααΆααααα αΆαα GZIP ααααα·αααΎααα αααααααΆααΎαααΈ 128 KB α α’αα·αα·αα Go ααΆααααααΆααααα αΆαααααααααααααααααα· (ααααΎααααααΆαααααααΌαααΆα) ααΌα αααααα½αααααΉαααααααααΆααααααΆααααΌαααΆαααα α»αααα ααΆα αααα (α’αΆα ααΆαααΆαααααααααααα·α ααααα½α αααααΆααααΆααΆααααααααα ) -
ααΆαααααΆαααΆα’αΆα ααααΎαα ααΆα ααααΎααΆαααααααΆα HPA ααΈ/αα ααΌααα αα αααααα’ααααΎαααααΆααααΆααααα . ααααα·αααΎα’αααααααΎααΆαααααααΆααααααα’ααααΎααααα»/ααααααααΆααααα ααααα ααααααααααα»αααΆαααΆααα ααααα α’αααα’αΆα ααααΎααΆαααααααΆααα 0 α αααααααααααααααααααα· ααΎααααΈαααααΆαα»αααααΆαα αααααααα·αααααααα½αααααΆαααααααααααΆαα·ααααααααΆααααααΈαααααααααααααΎαα»αααααΆα GPU α αΎαα ααα½ααααααααααααααααααΆαααααααααααααααΎαααΈα ααα½α GPU αααααΆαα - α’αα·αα·ααααααΈ -
- αααααΆααααΆαα αΌαααααΎ "ααΌαα " αα ααΆααααααα»α ααΆααααΌαααΆααα ααΆα‘αΎαααΎααααΈααΆααααα·ααααααααααΆααΆααααΆαααΆααααα½α (α§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 αααα’αα»ααααΆαα±ααα’αααααααΎαααΆαααΌαααΆααααααααα·αα αΆαααΆα αααΆααα·αααα·ααΆ root α ααααα, etcd ααΌαααΆαααΆαααααΎα αααΆααααα»αααα ααΆαααΆαααααααα etcd2 α - Π
Cluster Autoscaler 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α αα·αααααΆαααΌαα ααααΆαα αααααααα·αααααΆααα "α
ααααα: www.habr.com