ααΆααααααααΆααα‘αΎα α’αα·αα·αααααα»αααααΎαα»αα±ααααΎααααααααΌαααΆαα αΌαααααΎα ααααα Kubernetes ααΎααααΈα’αΆα α αΌαααααΎααααΆαααααα αααα»αα αααααα ααΎααααΈα’αΆα ααααΆαααααααααΆαααα ααΌαααααΆααα·αααααα α¬ααααΆαααααα½αα ααα½α ααΎααααΈααααΆαααααααα·ααΈαααα»ααααα»αααΆαα½ααααααα·ααΈαα αααα»αα ααααα...
ααΆα§ααΆα ααα ααΆαααααΌαααΆααααα»αααΆααααααΆααααΈαααΆαααΈααααα»ααααα»αααααα’ααααα
ααΆααααααΆαααααα½αα memcached.staging.svc.cluster.local
. ααΎαααααααααααααΆαααααααααααΎ VPN αα
αααα»αα
ααααααααα’αα·αα·ααααααΆααα ααΎααααΈβααααΎβααΌα
αααα ααΎαβαααααΆαβαααααΆαβααβααβαα, ααααΆ αα·αβαα»α DNS α
αααααβαα
βαααΆαααΈαβαααααα ααΌα
αααααα
ααααααα’αα·αα·ααααααΆααΆαααααΆαααα
ααααΆαααα memcached.staging.svc.cluster.local
ααααΎαα
ααΆαα cluster DNS α αΎαααΆααΆαααααΎααα ααα½αααΆαα’αΆααααααΆαααααααΆαααααααααΈαααααΆαααααΆ cluster α¬α’αΆααααααΆα pod α
ααΎαααααααα
ααΆαααααααααααα»α K8s αααααααΎ kubeadm ααααααααΆαααααααΆααααααααΆαααΎαααΊ 192.168.0.0/16
αα·ααααααΆααα pods ααΊ 10.244.0.0/16
. ααΆααααααΆα’αααΈαααααΎαααΆαααα’ ααα»ααααααΆαα
ααα»α
αα½αα
ααα½αα
- αααααΆααα
192.168.*.*
ααΆααΉαααΆααααααΌαααΆαααααααΎαα αααα»ααααααΆαααΆαα·ααΆαααα’αα·αα·αα α αΎααααααΆααααΆααΉαααΆαααα αααα»ααααααΆαααααα’αααα’αα·ααααααα α αΎααααααΆααααααΎαααα½αααΆαααααααα ααααααααα ααααααααΎαααΆαααΎαααααΆαααααα α αΎα VPN αα»ααααααΆαααααΆαααααααΈα ααααααα αααΆαααΈααααααα - ααΎαααΆαα αααααααΆα αααΎα (ααα·ααααα ααααΆααααΆα αα·α/α¬α αααααα’αααα’αα·ααααααααΆα αααΎα)α αααααΆαααα ααΆαααααΆαααΎα αα½αααΆααΆααα’ααααΉαααΆααααααΆαααααΌα ααααΆαααααΆαααα αα·αααααΆαααα ααααααααΎαααΆαααααΆααααΆαααααΆαααααααΆααααΆαααΆαααααΆαααααΆααΆαα½αααααΆαααααα αααα»αα αααααααΆα αααΎαα
ααΎαααΆαα’αα»ααααααΆααΌαααα αΎαααΌαααΆαα’αα»ααααααααΆαααααΎααααΆαααααααΆαααααααααααααΆαααααΆααααααΆαααα αα·ααααα αααα»αααααααααΌα ααααΆ - ααΆααΌαα ααΌα ααααα αααααααΆααα’ααααΆααααααΆαααααααααααΆα ααααααΆαααΆααααα ααΆαα ααααααα½αα ααα½αααααααααα»αααααΎαααΆα ααααααα»ααα·αα αααααα·αααΈααααΌαα‘αΎα α αΆααααΆααααΈαα½αααααααΎαααΆαααααΆααααααΆα αααΎα αααααα·ααΈαααααΆαααααΆαααΆαααΆααΎαα
α αΎααααααΆααααααΎααα½ααααα½αααΎαααΆ: ααααααααΆααααααΌααααααΆααααα αααα»αα ααααααααααΆαααααΆαα?
ααΆααααααααααΆααααααα α α·ααα
ααΆαα’αα»ααααααΌαα
αααα»αααΊααΆααααααΎαα‘αΎααα·α ααΆααα’αα ααααΆαααααααααΆααααααα ClusterIP α ααΆαααααΎααα½α
ααααΎαααΆαααΆααααααααΆααααα αΆα αααααΆααααΈα’αααΈαααΆαααααααα ααΆαααααααα αααααααααΆαα½α IP α αΆααααΆ DNS nameserver αα αααα»α /etc/resolv.conf α
αααααΆααααα»ααα αααααα·αααΎααααααααααΆα αααα»αααααΌααααααα αααααααΆααααΌαα‘αΎααα·ααααααααΎ kubeadm reset α αΎααααα αΌαααΆαααααααα
ααα»ααααβαααβαα·αβαααααα·ααβαααααΆααβα’αααβααΆααβααααΆβαα... αααβααΆβααΆαβααααΆαβαααα’α·αβααααααβαααβαααααΆααβααααΈβααααβααΎαα
- Flannel ααααΌαααΆαααααΎ;
- ααΆαα αααααααΆαααα αααα»αααα αα·ααα ααΎαααααααΉαα
- αααα»αα αααααααΆαααΆαααΆααα±ααααααΎααααΆααα‘αΎααα·αααΌαααααΆααααααΆααα’αααα αααα»αα αααααα
- ααΆααααααΌαααΆαααΆααΌαα ααΎααααΈααααΎα’αααΈααααααααΆαααΆαα½αααΉαα ααα½αα’αααααααΆαααααα αΆ;
- αααα Kubernetes ααΊ 1.16.6 (αααααΆαααΆαααΆααααα ααα αΆααααααααααααΉαααααααααααΆαααααΆαααααααααααααα);
- ααΆααα·α
αα
α
ααααααΊααΎααααΈααΆααΆααΆαα
αααα»αα
ααααααααααΆαααΆαααααααΆααααααααΎ kubeadm ααΆαα½ααααααΆαααααααΆαααα
192.168.0.0/16
αααα½αααΆααα172.24.0.0/16
.
α αΎαβααΆβααΎαααβααΎαβα‘αΎαβααΆβααΌαβααβα αΎαβαααβααΎαβα αΆααβα’αΆααααααβααΆβααΌαβααβα αΎαβαααα»αβααΆαβααΎαβα’αααΈβαα·αβααααβαααβαα βαααα»α Kubernetes ααααΌαβααΆαβαααααΆβαα»αβαα βαααα»α etcd α’αααΈβαααβα’αΆα βααααΎβααΆαβααΆαα½αβααΆ... ααΌα ααααβααΎαβαα·αβααΆβα Β«α ααα»α’αααΈαα·αααααΆααααααααΎαα αα α»ααααααααΆααα·αααααααα αααα»α etcd ααααααα½αα’αΆααααααΆα IP α αΆαα (αααααΆααα) ααΆαα½αααααΈα?
αααααΆααααααααα§ααααααααααααααα½α
ααΆααααα
αααααΆααααααΎααΆαααΆαα½ααα·αααααααα
αααα»α etcd ααΎααα·αααΆαααααΎαα’αααΈαααα’αΆα
αααααααΆααααα αΆααΆαααΆαααααα»ααααααα (ααααα·ααΈααα ααααα·αααΎα’αααααΉαα’αααΈα§αααααααααΎααααΆααααΆαα½ααααααΆααααααΎααΆαααΆαα½ααα·αααααααααααααΆαααα
αααα»α etcd ααΎαααΉααααα
α·αααα
αααααααααααΆαααααα ) ααααααΆαααΆααααα α
ααα»α
α
αΆααααααΎαααααα’αα½αααΊ
α§αααααααααΎααααΆαααααα’αΆα
ααααΆαααα
etcd αααααααΎαα·ααααΆαααααα αα·αα’αΆααα·ααααααααΈααΈααααααααααΎααΆααααααααΆ ls
, get
, dump
.
αααααα etdhelper
αααα·ααααααΆααααΊα‘αΌααΈααα "ααΎα’αααΈαα αααααΆααΆααα’αααααΈααΆαααααααα§αααααααααΎααααΆαααααααααααααααααααααΆααααα»αααΆαααααααα·αααααααα etd?"
ααΆααΆαααααΆαααΆαααααααααΆααααααααααα etcdhelper ααΆαα½αααΉααα»αααΆαααααΈααΈα changeServiceCIDR
ΠΈ changePodCIDR
. ααΎααΆα α’αααα’αΆα
ααΎααααααΌα
ααΎαα»αααΆαααααΈααααΎα’αααΈ? αααα½ααααααααΆα changeServiceCIDR
:
- αααααΎα deserializer αα½α;
- α αααααααααααααααααΆααΎααααΈαααα½α CIDR;
- ααΎαααααααΆααααααΆααααααΆααα’ααααΆαα½αααΉααααααα ClusterIP αα
αααα»αα
αααααα
- αα·ααΌααααααααΈ etcd α αΌααα αααα»αααααα» Go;
- αααααααΎααααααααααααΆ ααΎααααα½αααΈαααααααΌαααα’αΆααααααΆαα
- αααααααααΆααααα’αΆααααααΆα IP ααΈαααααΆαααααααΈ;
- αααααΎα serializer ααααααααααα» Go αα ααΆ protobuf ααααααα·ααααααααααΈαα ααΆ αα
αα»αααΆα changePodCIDR
ααααΆααααααααααααΆ changeServiceCIDR
- αααα½αα±ααααΆαααααααα½αααΆααααααΆααααααΆαααα ααΎαααααΎααΆαααααΆααααααΆαα αα·αααΆαααααΆααααααΌα .spec.PodCIDR
αα
αααααΆαααααααΈα
α’αα»αααα
ααααΆααααααΌαααααΆαααα CIDR
αααααΆααααααΆααααΆαα’αα»ααααααΆααα·α αα ααΊααΆααααααΆαα ααα»ααααααΆααΆαααααααααΉααααααααΆααα αΆααα αααααααΆααααααΎαα‘αΎααα·αααΌαααααΆααα’αααα αααα»αα αααααα αααααΆααααΈααΆααα·αααααΆα’αααΈααα αΆαααααΆααα ααΎαααααΉαα ααααααααααα·αα’αααΈαααααααααΆαααααΉααααΈ αααααααΆααα αΆααααα’αΆα ααααα½αα’αααααααΆα
ααα αΆαααααααααα αα
- ααα‘αΎααααααα·ααΈα αΆαααΆα α αα·αααα‘αΎα patched etcdhelper;
- ααΆαααααα»ααα»α αα αα·α
/etc/kubernetes
.
αααααΆααααααααΆααααααααααααΆααααΆαααααΆααααααΌαααααΆααααCIDRα
- ααΆαααααΆααααααΌα apiserver αα·α controller-manager manifests;
- ααΆαα αααα·ααααΆαααααα;
- ααΆαααααΆααααααΌαααααΆαααα ClusterIP αα αααα»α etcd;
- α αΆααααααΎαα‘αΎααα·αααααααΆααα’αααα αααα»αα αααααα
ααΆααααααβαααβααΆβααααΆααβαααααααΆαβαααΆαβαααα’α·αα
1. ααα‘αΎα etcd-client αααααΆααααΆααααα αααα·ααααααα
apt install etcd-client
2. Build etdhelper:
- ααα‘αΎα golang:
GOPATH=/root/golang mkdir -p $GOPATH/local curl -sSL https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz | tar -xzvC $GOPATH/local echo "export GOPATH="$GOPATH"" >> ~/.bashrc echo 'export GOROOT="$GOPATH/local/go"' >> ~/.bashrc echo 'export PATH="$PATH:$GOPATH/local/go/bin"' >> ~/.bashrc
- ααΎαααααααααααΆαααααα½αααΎα
etcdhelper.go
ααΆαααααΆαα’αΆααααα αααααΌααwget https://raw.githubusercontent.com/flant/examples/master/2020/04-etcdhelper/etcdhelper.go go get go.etcd.io/etcd/clientv3 k8s.io/kubectl/pkg/scheme k8s.io/apimachinery/pkg/runtime go build -o etcdhelper etcdhelper.go
3. ααααΎααΆα Backup ααΆααΎαα
backup_dir=/root/backup
mkdir ${backup_dir}
cp -rL /etc/kubernetes ${backup_dir}
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt --endpoints https://192.168.199.100:2379 snapshot save ${backup_dir}/etcd.snapshot
4. ααααΆααααααΌααααααΆαααααααΆαααααα
αααα»αααααα ααααααααααα Kubernetes manifests α αα
αααα»αα―αααΆα /etc/kubernetes/manifests/kube-apiserver.yaml
ΠΈ /etc/kubernetes/manifests/kube-controller-manager.yaml
ααααΆααααααΌααααΆαααΆαααααα --service-cluster-ip-range
αα
ααΆαααααααΆαααααααΈα 172.24.0.0/16
αααα½αα±ααα 192.168.0.0/16
.
5. αααααΆαααΎααααα»αααααΆααααααΌααααααΆαααααααΆααααααα kubeadm α αααα·ααααΆαααααααααααΆαα apiserver (αα½αααΆαα) αα½αααα αΆαααΆα αααααΌαα αααααααααα
- ααΌαααΎαααα αα·αα’αΆααααααΆα IP ααααα·ααααΆαααααααα
αα
α»ααααααααααΌαααΆαα
αααααααΆααα
openssl x509 -noout -ext subjectAltName </etc/kubernetes/pki/apiserver.crt X509v3 Subject Alternative Name: DNS:dev-1-master, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, DNS:apiserver, IP Address:192.168.0.1, IP Address:10.0.0.163, IP Address:192.168.199.100
- ααααααα
αααΆααααααα’αααααααΆαααααΆαα kubeadmα
cat kubeadm-config.yaml apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration networking: podSubnet: "10.244.0.0/16" serviceSubnet: "172.24.0.0/16" apiServer: certSANs: - "192.168.199.100" # IP-Π°Π΄ΡΠ΅Ρ ΠΌΠ°ΡΡΠ΅Ρ ΡΠ·Π»Π°
- ααααα»α crt αα·αααα
αΆαα αααααααΎααααΆαααΆαα αα·ααααΆααααααααααΈααΉααα·αααααΌαααΆαα
ααααα
rm /etc/kubernetes/pki/apiserver.{key,crt}
- αααα
αααα·ααααΆααααααα‘αΎααα·ααααααΆαααααΆαααΈααα APIα
kubeadm init phase certs apiserver --config=kubeadm-config.yaml
- ααΌααα·αα·αααααΎαααΆαα·ααααΆααααααααααΌαααΆαα
αααααααΆαααααααΆαααααααΈα
openssl x509 -noout -ext subjectAltName </etc/kubernetes/pki/apiserver.crt X509v3 Subject Alternative Name: DNS:kube-2-master, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, IP Address:172.24.0.1, IP Address:10.0.0.163, IP Address:192.168.199.100
- αααααΆααααΈα
αααα·ααααΆαααααααααΆαααΈααα API α‘αΎααα·α ααΌαα
αΆααααααΎααα»αααΊαααααααααΆα‘αΎααα·αα
docker ps | grep k8s_kube-apiserver | awk '{print $1}' | xargs docker restart
- ααααααααΎα config α‘αΎααα·α
admin.conf
:kubeadm alpha certs renew admin.conf
- αααααααααα½ααα·αααααααααα»α etcdα
./etcdhelper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/server.crt -key /etc/kubernetes/pki/etcd/server.key -endpoint https://127.0.0.1:2379 change-service-cidr 172.24.0.0/16
ααΌααααααααα! αα αααααα αααααααααΆαααααααααααΎαααΆααα αααα»αα ααααα α αΆααααΆααααΈαα αααα»ααααααααΆαααααΆαα
/etc/resolv.conf
α’αΆααααααΆα CoreDNS α αΆαα (kube-dns) ααααΌαααΆαα α»αααααα α αΎα kube-proxy ααααΆααααααΌαα αααΆαα iptables ααΈ subnet α αΆαααα ααααΈα ααΎαααΈαααααααα αααα»αα’αααααααΆααααΌαααΆααααααα’αααΈαααααΎααααα’αΆα ααααΎαα ααΆαααΎααααΈααΆααααααααααααααΆααα αΆαα - ααααα½ααα»α ConfigMap's αα
αααα»α namespace
kube-system
:kubectl -n kube-system edit cm kubelet-config-1.16
- αααα½ααα ααΈααα
clusterDNS
αα α’αΆααααααΆα IP ααααΈααααααΆαααα kube-dnsαkubectl -n kube-system get svc kube-dns
.kubectl -n kube-system edit cm kubeadm-config
- ααΎαααΉααα½ααα»αααΆα
data.ClusterConfiguration.networking.serviceSubnet
αα αααααΆαααααααΈα - αααααΆαα’αΆααααααΆα kube-dns ααΆαααααΆααααααΌα α
αΆαααΆα
αααααΌαααααΎαα
αα
α»ααααααααΆαααΆαααααααα
ααΆαααααααα kubelet αα
ααΎααααΆααααΆααα’ααα
kubeadm upgrade node phase kubelet-config && systemctl restart kubelet
- α’αααΈααααα
αααααΊααααΌαα
αΆααααααΎαααααΆααα’ααα‘αΎααα·ααα
αααα»αα
αααααα
kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(S+)s+(S+).*/kubectl --namespace 1 delete pod 2/e'
ααΆααααααααααααααΆααααααααΆα
αααα·αα’αααΈααααααΆααααααααααααααΆααα αΆαα
- αααααΆααβααΈβααΆαβααααΆααβααααΌβαβααααα ααβαααααΆ manifests ααΌαβαααααΎαβααααΆ kube-dns ααααΈβααΆβα§ααΆα αααβααΆαα½αβααΉαβαααααβ
kube-dns-tmp
αα·αα’αΆααααααΆαααααΈα172.24.0.10
. - ααΎααααΈαααααΎα
if
αα αααα»α etcdhelper αααααΉααα·αααααααααααΆαααα kube-dns ααα - αααα½αα’αΆααααααΆααα
αααα»α kubelets ααΆααα’ααα
ClusterDNS
αα ααΆααααααΆααααααααΈ αααααααααααααΆααααα αΆααααΉαααααααααΎαααΆααααα»ααααααααΆαααααΆααΆαα½αααΉαααααΆααααααααΈα - αααα αΆααα αΌαααΆαααααααααααΆααααααα·ααΈααααα‘αΎαααααααα½αα―ααααα ααα»ααααααααΆαα· α¬ααΆααααααααΆαααααΆααααααααααα
- αα»αααααΆαααα
kube-dns-tmp
αα·αααααΆααααααΌαserviceSubnetCIDR
αααααΆααααααΆαααα kube-dns α
αααααΆααααααΉαα’αα»ααααΆαα±ααα’αααααΆααααααααααααααΆααα
αΆαααα ~ αα½αααΆααΈ αααααΆααααααααααααΆαααααααΆααααα
αα kube-dns-tmp
αα·αααααΆααααααΌααααααΆααααααααΆααααααΆαααα kube-dns
.
ααΆααααααα podNetwork
αααα»ααααααΆαα½αααααΆααα ααΎαααΆααααααα α α·αααααΎαααΈαααααααααα podNetwork αααααααΎ etcdhelper ααααααα ααααΆαααααααααααΆαααΆαααΌα ααΆααααααα
- αα½ααα»αααΆαααααααα
αααα»α
kube-system
; - αα½ααα»αααΆααααα αΆα Kube-controller-manager;
- ααααΆααααααΌα podCIDR αααααααΆαααα αααα»α etcd;
- α αΆααααααΎαααααΆααα αααααααΆααα’ααα‘αΎααα·αα
α₯α‘αΌααααααααααα’αααΈαααααααΆαααΆαααααα
1. αααααα ConfigMap's αααα»α namespace kube-system
:
kubectl -n kube-system edit cm kubeadm-config
- ααΆααααααααΌα data.ClusterConfiguration.networking.podSubnet
αα
αααααΆαααααααΈα 10.55.0.0/16
.
kubectl -n kube-system edit cm kube-proxy
- ααΆααααααααΌα data.config.conf.clusterCIDR: 10.55.0.0/16
.
2. αααααα manifest αααα controller-managerα
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
- ααΆααααααααΌα --cluster-cidr=10.55.0.0/16
.
3. ααΎαααααααα
αα
α»αααααα .spec.podCIDR
, .spec.podCIDRs
, .InternalIP
, .status.addresses
αααααΆααααααΆααα
αααααααΆααα’ααα
kubectl get no -o json | jq '[.items[] | {"name": .metadata.name, "podCIDR": .spec.podCIDR, "podCIDRs": .spec.podCIDRs, "InternalIP": (.status.addresses[] | select(.type == "InternalIP") | .address)}]'
[
{
"name": "kube-2-master",
"podCIDR": "10.244.0.0/24",
"podCIDRs": [
"10.244.0.0/24"
],
"InternalIP": "192.168.199.2"
},
{
"name": "kube-2-master",
"podCIDR": "10.244.0.0/24",
"podCIDRs": [
"10.244.0.0/24"
],
"InternalIP": "10.0.1.239"
},
{
"name": "kube-2-worker-01f438cf-579f9fd987-5l657",
"podCIDR": "10.244.1.0/24",
"podCIDRs": [
"10.244.1.0/24"
],
"InternalIP": "192.168.199.222"
},
{
"name": "kube-2-worker-01f438cf-579f9fd987-5l657",
"podCIDR": "10.244.1.0/24",
"podCIDRs": [
"10.244.1.0/24"
],
"InternalIP": "10.0.4.73"
}
]
4. αααα½α podCIDR αααααααΎααΆαααααΆααααααΌααααααααΆαααα etcd:
./etcdhelper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/server.crt -key /etc/kubernetes/pki/etcd/server.key -endpoint https://127.0.0.1:2379 change-pod-cidr 10.55.0.0/16
5. ααΌααα·αα·αααααΎαααΆ podCIDR αα·αααΆααΆαααααΆααααααΌαα
kubectl get no -o json | jq '[.items[] | {"name": .metadata.name, "podCIDR": .spec.podCIDR, "podCIDRs": .spec.podCIDRs, "InternalIP": (.status.addresses[] | select(.type == "InternalIP") | .address)}]'
[
{
"name": "kube-2-master",
"podCIDR": "10.55.0.0/24",
"podCIDRs": [
"10.55.0.0/24"
],
"InternalIP": "192.168.199.2"
},
{
"name": "kube-2-master",
"podCIDR": "10.55.0.0/24",
"podCIDRs": [
"10.55.0.0/24"
],
"InternalIP": "10.0.1.239"
},
{
"name": "kube-2-worker-01f438cf-579f9fd987-5l657",
"podCIDR": "10.55.1.0/24",
"podCIDRs": [
"10.55.1.0/24"
],
"InternalIP": "192.168.199.222"
},
{
"name": "kube-2-worker-01f438cf-579f9fd987-5l657",
"podCIDR": "10.55.1.0/24",
"podCIDRs": [
"10.55.1.0/24"
],
"InternalIP": "10.0.4.73"
}
]
6. αααα αΆααααααΎαααααΆααα αααααααΆααα’ααα‘αΎααα·ααααααα½ααα
7. ααααα·αααΎα’αααα αΆαα ααααΈααααΆαααααΆαα αα ααΆαααα½αα podCIDR α αΆαααααααΆαααα kube-controller-manager ααΉααα·αα’αΆα α αΆααααααΎαααΆααα α αΎα pods αα αααα»α cluster ααΉααα·αααααΌαααΆαααααααααααα
ααΆααα·αααΆαααααΆααααααΌα podCIDR α’αΆα
ααααΎααΆαααΆααααααΆαααα (α§ααΆα ααα spec.clusterIP
.)
αααααα
α’ααααααα·ααΆααααΆα’αααΈααααααΆαααααΆαααααΎααΆαααΆαα½ααα·αααααααα αααα»α etcd αααααααΆαα i.e. ααααααΆαα Kubernetes API α αα½αααΆααα·ααΈααΆααααααααα’αα»ααααΆαα±ααα’αααααααΎ "ααΏααα·ααΆα" α ααΎαααΆαααΆαααααααααα·ααααα·ααΆααααααΆααααααα±αααα αααα»αα’ααααααα ααΎα ααααα K8s αα·αααααΆααα αααααΆαααΆαααΆαααααααααΆαααΆαααααΆαααααααααα½ααααααα½ααααααααΆααααΆαααααΎααααΆαααααΆαααΌααααΌααΆαααΊ PoC (ααααα»ααΆααααααα·α). ααΌα αααα ααααα·αααΎα’αααα ααααααΎαααααααααΆαααααααααα§αααααααααΎααααΆαα etcdhelper αα ααΎα αααααααααα’ααα ααααΎααΌα αααααααα αΆαα·αααααααΆαααααα½αααααα’αααα
PS
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
etcd 3.4.3α ααΆααα·ααααΆα’αααΈααΆαααΏααΆααααααΆααααα»α αα·ααα»ααααα·ααΆα Β» - Β«
Calico αααααΆαααααααΆααα αααα»α Kubernetesα ααΆαααααΆα αα·ααααα·ααααααα·α αα½α Β» - Β«
ααα α»ααααααααααααααΆαααα ααα½α 6 αα αααα»αααααα·ααααα·ααΆααααα Kubernetes [αα·ααααααααααΆααααααα½ααα] Β» - Β«
ααααα»ααααααααααααΎαααΎααααααΆααααΆααααααααΆααααα αΆ Kubernetes "α
ααααα: www.habr.com