ืืชืืื, 9 ืืืฆืืืจ,
ืืืืืข ืืืฉืืฉ ืืืื ืช ืืืืจ ืื ื ืืงื ืืืืืืขื ืืจืฉืืืช,
ื ืืชืื ืืืืข ืืืืคืืืืืื
ืงืืืืช Kubernetes ืืืืชื ืืชืืื ื ืื ืืืฉื ืืื ืจื - ื ืืชืื ืฉืืจืืช ืืืืข ืืืืคืืืืืื. ืื
ืืจืขืืื ืืืืื ืืื ืืกืคืง ืืช ืืืืืืช ืืืืฉื ื ืืชืื "ืืงืืื" ืขืืืจ ืฉืืจืืชืื ืืฉืืื ืื ื-Kubernetes. "ืืงืืื" ืืืงืจื ืื ืคืืจืืฉื "ืืืชื ืจืื ืืืคืืืืืืช" (ืจืืช ืืืคืืืืืื), ืฉืืืื ืืืืืช:
- ืฆืืืช ืืื ืืฉืืจืืชืื,
- ืืืชื ืืชืื ืฉืจืช,
- ืืืชื ืืืืจ
- ืืืชื ืกืคืง ืขื ื,
- ...
ืืืืืืืช ืืฉืืืืฉ ืืชืืื ื ืื:
- ืืืกืืื ืืชืขืืืจื ืืืชืงื ืืช ืขื ื ืขื ืืกืคืจ ืืืืจื ืืืื ืืช (ืืืืื-AZ) - ืจืื.
ืืืืจ ืืจื ืฉืืืืฉ ืืืืืื ืฉื ืชืขืืืจื ืืืืชื ืืืืจ, ืืื AZs ืฉืื ืื ื-AWS; - ืืืืื ืืืฆืืขืื ื ืืื ืืืชืจ/ืชืคืืงื ืืืื ืืืชืจ;
- ืฉืืจืืช ืืคืืฆื ืืขื ืืืืข ืืงืืื ืขื ืืฆืืืช ืืื ืจืกืืก;
- ืืืงืื ืฉื fluentd (ืื ืื ืืืืื) ืืืืชื ืฆืืืช ืขื ืืืืฉืืืื ืฉืืืืื ืื ืฉืืื ื ืืกืคืื;
- ...
ื ืืชืื ืืื, ืฉ"ืืืืข" ืขื ืืืืคืืืืืื, ื ืงืจื ืื ืืืงื ืืจืฉืช - ืืื ืืืืื ื ServiceTopology
ื-Kubernetes - ืืจืกืช ืืืคื.
ืืคืจืืื ืขื ืืื ืืชืืื ื ืคืืขืืช ืืืืฆื ืืชื ืืืจ ืืืื ืืืฉืชืืฉ ืื, ืงืจื
ืชืืืื ื-IPv4/IPv6 ืืคืื ืืืกื ืืช
ืืชืงืืืืช ืืฉืืขืืชืืช
- ื-kube-proxy
ืืืืืข ืืคืฉืจืืช ืืคืขืืื ืื ืืื ืืช ืืฉื ื ืืืฆืืื (IPv4 ื- IPv6); - ะฒ
Pod.Status.PodIPs
ืืืคืืข ืชืืืื ื-API ืืืคื ืืื (ืืืงืืื ืืื ื/etc/hosts
ืืขืช ืื ืืืจืฉืื ืืืืืจื ืืืืกืืฃ ืืชืืืช IPv6); - ืชืืืื ืืขืจืืื ืืคืืื
ืกืื (Kubernetes IN Docker) ืkubeadm ; - ืืืืงืืช e2e ืืขืืืื ืืช.
ืืชืงืืืืช ื-CSI
ืืืืจื ืืฆืื
ืืืืื ืขืืืจ ืืืืจื ืฉื ืชืืกืคื ื ืคื ื-CSI -
ืืจืืข, ืืืขืืจื ืขืืืจ ืื ืืื ืืชืงื ืื ืฉื AWS EBS ืืืื ื ืืืจืกืช ืืื (kubernetes.io/aws-ebs
) ื-GCE PD (kubernetes.io/gce-pd
). ืืชืืืืืช ืขืืืจ ืืชืงื ื ืืืกืื ืืืจืื ืื ืืืืงืื:
ืืืืจื ื ืขื ืืื ืชืืืืช ืืืกืื "ืืกืืจืชืืช" ื-K8s ืืืืขื ื-CSI
ืื ืืกืฃ, ืคืื ืงืฆืืื ืืืืช ืืฉืืขืืชืืช ื ืืกืคืช ืืืงืฉืจ ืฉื CSI, ืฉืืงืืจื (ืืืฉืื ืืืคื) ื-K1.17s 8, ืืืืขื ืืืฆื ืืื (ืืืืืจ ืืืคืขืืช ืืืจืืจืช ืืืื) ืืืืืืจืช Kubernetes 1.12 -
- ืคืืฆืื ื-Snapshotter ืืืืฆืื ื ืฉื CSI ืืฉื ื ืืงืจืื,
- ืกืื ื ืืกืฃ ืืืืืงื (ืกืื ืืืืงื) ืืืขืจื ืืชืืื ืฉื ืชืืื ืช ืืฆื,
- ืืกืืื ืืืฉ (ืืืืจ) ืืื ืืื ืืข ืืืืงืช ืืืืืืงื ื-API ืฉื ืชืืื ืช ืืฆื ืื ื ืืชืจื ืืืืืจืื.
ืืืื ืฉืืจืืจ 1.17, ืืชืืื ื ื ืชืืืช ืขื ืืื ืฉืืืฉื ืื ืืื ืืชืงื ืื ืฉื CSI: ืื ืื ืืชืงื GCE Persistent Disk CSI, ืื ืื ืืชืงื Portworx CSI ื-NetApp Trident CSI Driver. ืคืจืืื ื ืืกืคืื ืขื ืืืืฉืื ืืืฉืืืืฉ ืื ื ืืชื ืืืฆืื ื
ืชืืืืืช ืกืคืง ืขื ื
ืืชืืื ืืช ืื ืืืืืืืืช ืืืงืฆืื ืืฆืืชืื ืืืืฆืขื ืืืกืื ืฉื ืืฆืจื ืืืชืื ืืกืคืง ืืขื ื ืฉืื ื ืขืฉื ืฉืืืืฉ, ืืื ืืืื ืื ื-Kubernetes ืืืจืกืช ืืื ืืืฉื ืืื ืจื ืืืื - ืืื ืืฉืงืช K8s 1.2 (ืืคืจืื 2016!). ืืืชืืฉื ืืฉืืืืฉ ืื ืจืื ืฉืืื ืืืฉื ืื ืื ืืจืื ืืื, ืืคืชืืื
ืืื, ืืืื ืฉืื ื ืืืชืื (ืืคื ืืืคืืืืืื):
-
beta.kubernetes.io/instance-type
โnode.kubernetes.io/instance-type
-
failure-domain.beta.kubernetes.io/zone
โtopology.kubernetes.io/zone
-
failure-domain.beta.kubernetes.io/region
โtopology.kubernetes.io/region
... ืื ืขืืืื ืืืื ืื ืชืืช ืืฉืืืช ืืืฉื ืื ืฉืืื (ืืฆืืจื ืชืืืืืช ืืืืืจ). ืขื ืืืช, ืืืืืฅ ืืื ืืื ืืืื ืืขืืืจ ืืชืืืืืช ืื ืืืืืืช.
ืคืื ืืืื ื ืฉื kubeadm
ืืืฆื ืืืจืกืช ืืืคื ืืคืขื ืืจืืฉืื ื
ืืืืืืฆืื ืืืืฉืื ืชืืื ื ืื (ืขื ืคื
ืืขืื ืฉื ืืชื ืืคืจืืก Kubernetes ืืืืคื ืืื ื, ืืชืงื ืืคืืขื (ืื ืื ืื ืืืจื) ืืคืขืืื ืื ืืื ืฉืืืืฉ ื-kubeadm. ืืื ื ืืืื ืืขืจืืืช ืคืืคืืืจืืื ืืื Terraform ืืกืชืืืื ืขื kubeadm ืขืืืจ ืคืจืืกืช Kubernetes. ืฉืืคืืจืื ืืชืืื ื ืื ื-Cluster API ืืืืืื ืืืืื ืื ืืชื ืช ืืืืืืจ ืขืืืจ Kubernetes bootstrapping ืขื kubeadm ื-cloud-init.
ืืื ืคืื ืืืื ื, ืืคืืื ืืฉืื ืืืื ืืชืืืืื ืืืืชืจ ืืืื ืจืืฉืื ืืืืืื ืืฉืืืจ ืืช Terraform, Cluster API ืืชืืื ืืช ืืืจืืช ืฉืืฉืชืืฉืืช ืืชืืฆืืืช ืฉื kubeadm.
ืืชืืื ืืืช ืืืืืืืืช ืฉืื ื ืืืืืืช ืชืืืื (ืืฆืืจื ืฉื ืคืื ืืืื ื) ืืคืงืืืืช kubeadm ืืืืืช:
-
alpha certs
-
config images list
-
init
-
token create
-
token list
-
upgrade plan
-
version
ืืืืจ ืฉื ืชืืืืช JSON ืืคืงืืื kubeadm init -o json
:
{
"node0": "192.168.20.51:443",
"caCrt": "sha256:1f40ff4bd1b854fb4a5cf5d2f38267a5ce5f89e34d34b0f62bf335d74eef91a3",
"token": {
"id": "5ndzuu.ngie1sxkgielfpb1",
"ttl": "23h",
"expires": "2019-05-08T18:58:07Z",
"usages": [
"authentication",
"signing"
],
"description": "The default bootstrap token generated by 'kubeadm init'.",
"extraGroups": [
"system:bootstrappers:kubeadm:default-node-token"
]
},
"raw": "Rm9yIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSAia3ViZWFkbSBpbml0IiBjb21tYW5kLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2FrdXR6LzdhNjg2ZGU1N2JmNDMzZjkyZjcxYjZmYjc3ZDRkOWJhI2ZpbGUta3ViZWFkbS1pbml0LW91dHB1dC1sb2c="
}
ืืืฆืื ืฉื ืืืืืฉืื ืืืจืื
ืืืืคื ืืืื, ืืฉืืจืืจ ืฉื Kubernetes 1.17 ืืชืจืืฉ ืชืืช ืืืืื "ืืฆืืืืช" ืื ืืืงื ืขื ืืื ืืขืืืื ืฉืชืืื ืืช ืจืืืช ืื (ืืืกืคืจ ืืืืื ืฉืืื ืืื 14) ืงืืื ืกืืืืก GA. ืืื ืืื:
- "ืกืืืื" ืฆืืชืื ืืคื ืชื ืืื ืืกืืืืื (
), ืืืคืืข ืTaintNodesByCondition
K8s 1.8 ; -
ืฆืคื ืืกืืื ืืืช - ืกืื ืืืฉ ืฉื ืืืจืืขืื ืฉืืฉ ืืื ืชืืืืช ืฉืื ืืืืืืืงืืื ืื ืขื ืืจืกื ืืกืืืืช (resourceVersion
) ืืืจ ืขืืืื ืขื ืืื ืฉืขืื; -
ืขืจืื ืืจืืจืช ืืืื (ืืจืืจืช ืืืื) ืขืืืจ ืืฉืืืื ืืืชืืืื ืืืฉืืช; -
ืืฉืืชืฃ ืืื ืืืืืืช ืืจืืื ืฉืืืช ืืชืืืื ืืคืื; -
ScheduleDaemonSetPods
-ืชืืืื ืชืจืืืืื ื-DaemonSet ืืืืฆืขืืช kube-scheduler (ืืืงืื ืืงืจ DaemonSet); -
ืืืืืืช ืืื ืืืื ืขื ืืกืคืจ ืืืจืืื ืืืชืื ืืกืื ืืฆืืืช; -
ืชืืืืช ืืฉืชื ื ืกืืืื ืขืืืจ ืฉืืืช ืกืคืจืืืช ืืืชืงื ืsubPath
; -
ืืขืืจืช ืคืขืืืืช ืื ืฉื Kubelet ืืืืฉืง API ืืืืื ืฉื ืืืืจื; - "ืืื ื ืขื ืืืืจ" (
ืืื ื ืขื ืืืืจ ) ืขืืืจ ืืืื ื ืขืืืกืื (ืืืืงืช ืืฉืืื ืืฉืืจืืช ืืืชืืืืื ืืคื ื ืืืืงืช ืืฉืืื LoadBalancer); -
ืืืคืืืืืืฆืื ืฉื kube-apiserver ืืืืฆืืขืื ืืืฉืจ ืขืืืืื ืขื ืืกืคืจ ืฉืขืื ืื ืื ืืืืจ ืงืืืฆืืช ืืืืช ืฉื ืืืืืืงืืื - ืืืฉืืช ืขื ืืื ืืืื ืขืืช ืืกืืจื ืืืืจืช ืื ืฉื ืืช ืฉื ืืืชื ืืืืืืงืืื ืขืืืจ ืื ืฆืืคื.
ืฉืื ืืืื ืืืจืื
ืืจืฉืืื ืืืืื ืฉื ืืืืืืฉืื ื-Kubernetes 1.17, ืืืืื, ืืื ื ืืืืืืช ืืืื ืืืคืืจืืื ืืขืื. ืื ื ืืื ืืืจืื (ืืืจืฉืืื ืืืื ืืืชืจ, ืจืื
- ืืชืืื ื ืฉืืืฆืื ืืืืืืจื ืืืืจืื ื ืืืืขื ืืืจืกืช ืืืื
;RunAsUserName
ืขืืืจ ืืืื ืืช - ืฉืื ืื ืืืื
ืงืจื EndpointSlice API (ืื ื-K8s 1.16), ืืืื ืืขืช ืขืชื ืคืชืจืื ืื ืืฉืืคืืจ ืืืืฆืืขืื/ืืืจืืืืช ืฉื ื-Endpoint API ืืื ื ืืืคืขื ืืืจืืจืช ืืืื; - ืชืจืืืืื ืื ืืขืช ืงืจืืืืื ืืืคืขืืช ืืฉืืื
ื ืืชื ืืืฆืืจ ืื ืจืง ืืืจืืื ืฉืืืชkube-system
(ืืคืจืืื, ืขืืื ืืชืืขืื ืขืืืจืืืื ืืช ืฆืจืืืช ืืืืงื ืขืืืคืืช ); - ืืคืฉืจืืช ืืืฉื ืขืืืจ kubelet -
- ืืืคืฉืจ ืื ืืืืืืจ ืืืคืืจืฉ ืืช ืจืฉืืืช ืืืขืืืื ืืฉืืืจืื ืืืขืจืืช;--reserved-cpus
- ืขืืืจ
kubectl logs
ืืฆืื ืืื ืืืฉ--prefix
, ืืืกืคืช ืฉื ืืชืจืืื ืืืื ืืืงืืจ ืืื ืฉืืจื ืืืืื; - ะฒ
label.Selector
ืืืกืืฃ RequiresExactMatch
; - ืื ืืืืืืืช ื-kube-dns
ืคืืขืืื ืืขืช ืขื ืคืืืช ืืจืฉืืืช; -
ืืืคืจืงืืื ืืืคืจืืื ืืืืืจ GitHub ื ืคืจื ืืื ืืืืื ืขืื ืืืืืืจืืช Kubernetes; - ืืจืื
ืืืฆืืขืื ืืฉืืคืจืื kube-proxy ืขืืืจ ืืฆืืืืช ืฉืืื ื UDP.
ืฉืื ืืืื ืืชืืืช:
- ืืจืกืช CoreDNS ืืืืืื ื-kubeadm ืืื 1.6.5;
- ืืจืกืช crictl ืขืืืื ื ื-v1.16.1;
- CSI 1.2.0;
- ืืื' 3.4.3;
- ืืจืกืช Docker ืฉื ืืืงื ืืืืจืื ื ืฉืืืจืื ื-19.03;
- ืืจืกืช ื-Go ืืืื ืืืืืช ืื ืืจืฉืช ืืื ืืืช Kubernetes 1.17 ืืื 1.13.4.
ื .ื.
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
Kubernetes 1.16: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื "; - ยซ
Kubernetes 1.15: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื "; - ยซ
Kubernetes 1.14: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื "; - ยซ
Kubernetes 1.13: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื ".
ืืงืืจ: www.habr.com