เปเบเบตเปเบกเบเบถเปเบ, เบฅเบนเบเบเปเบฒเบเปเบฒเบฅเบฑเบเบเปเปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบธเปเบก Kubernetes เปเบเบทเปเบญเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฒเบเปเบเบเบธเปเบก: เปเบเบทเปเบญเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบเบเบปเบเบเบฑเบเบเบฒเบเบเบฒเบเบเปเปเบกเบนเบเบซเบผเบทเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเปเบญเบเบเบดเปเบเบเบฑเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฒเบเปเบเบเบธเปเบก ...
เบเบปเบงเบขเปเบฒเบ, เบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเบทเปเบญเบกเบเปเปเบเบฒเบเปเบเบทเปเบญเบเบเปเบญเบเบเบดเปเบเบเบญเบเบเปเบฒเบเปเบเบซเบฒเบเปเบฅเบดเบเบฒเบ memcached.staging.svc.cluster.local
. เบเบงเบเปเบฎเบปเบฒเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบตเปเปเบเบเปเบเป VPN เบเบฒเบเปเบเบเบธเปเบกเบเบตเปเบฅเบนเบเบเปเบฒเปเบเบทเปเบญเบกเบเปเป. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฒเบ subnets เบเบญเบ pods, เบเปเบฅเบดเบเบฒเบเปเบฅเบฐ push cluster DNS เบเบฑเบเบฅเบนเบเบเปเบฒ. เบเบฑเปเบเบเบฑเปเบ, เปเบกเบทเปเบญเบฅเบนเบเบเปเบฒเบเบฐเบเบฒเบเบฒเบกเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ memcached.staging.svc.cluster.local
, เบเบฒเบเบฎเปเบญเบเบเปเปเบเบซเบฒ DNS cluster เปเบฅเบฐเปเบเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเปเบเปเบฎเบฑเบเบเบตเปเบขเบนเปเบเบญเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบเบฒเบเปเบเบทเบญเบเปเบฒเบเบเปเบฅเบดเบเบฒเบ cluster เบซเบผเบทเบเบตเปเบขเบนเป pod.
เบเบงเบเปเบฎเบปเบฒเบเบณเบเบปเบเบเปเบฒเบเบธเปเบก K8s เปเบเบเปเบเป kubeadm, เบเปเบญเบเบเบตเปเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเบเปเบฅเบดเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบขเบนเป 192.168.0.0/16
, เปเบฅเบฐเปเบเบทเบญเบเปเบฒเบเบเบญเบเบเบฑเบเปเบกเปเบ 10.244.0.0/16
. เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบต, เปเบเปเบกเบตเบชเบญเบเบชเบฒเบกเบเบธเบ:
- เปเบเบทเบญเบเปเบฒเบเบเปเบญเบ
192.168.*.*
เบกเบฑเบเบเบฐเปเบเปเปเบเปเบเบทเบญเบเปเบฒเบเบซเปเบญเบเบเบฒเบเบฅเบนเบเบเปเบฒ, เปเบฅเบฐเบซเบผเบฒเบเบเบงเปเบฒเบเบฑเปเบเบกเบฑเบเบเบฐเบขเบนเปเปเบเปเบเบทเบญเบเปเบฒเบเบเปเบฒเบเบเบญเบเบเบนเปเบเบฑเบเบเบฐเบเบฒ. เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบฑเบเปเบเปเบ: เปเบฃเบปเบฒเปเบเบตเปเบเปเบฎเบทเบญเบเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเบเบตเปเปเบฅเบฐ VPN เบเบนเปเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฒเบเบเบธเปเบกเปเบเบซเบฒเบฅเบนเบเบเปเบฒ. - เบเบงเบเปเบฎเบปเบฒเบกเบตเบซเบผเบฒเบเบเบธเปเบก (เบเบฒเบเบเบฐเบฅเบดเบ, เบเบฑเปเบเบเบญเบ เปเบฅเบฐ/เบซเบผเบทเบเบธเปเบกเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบซเบผเบฒเบเบเบธเปเบก). เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบงเบเบกเบฑเบเบเบฑเบเบซเบกเบปเบเบเบฐเบกเบต subnets เบเบฝเบงเบเบฑเบเบชเปเบฒเบฅเบฑเบ pods เปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เปเบเบดเปเบเบชเปเบฒเบเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเปเบญเบกเปเบเบฑเบเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบเบซเบผเบฒเบเปเบเบธเปเบก.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเป subnets เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบฅเบฐ pods เบเบฒเบเปเบเปเบเบเบเบฒเบเบเบฝเบงเบเบฑเบ - เปเบเบเบเบปเปเบงเปเบ, เปเบเบทเปเบญเปเบซเปเบเบธเปเบกเบเบฑเบเบซเบกเบปเบเบกเบตเปเบเบทเบญเบเปเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบตเบเปเบฒเบเบงเบเบซเบฅเบฒเบเบเบญเบเบเบธเปเบกเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบตเปเบเปเบญเบเบเปเปเบขเบฒเบเบเบฐเบกเปเบงเบเบเบฒเบเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบ, เบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบซเบผเบฒเบ, เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบฅเบฑเบ, เปเบฅเบฐเบญเบทเปเบเป.
เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฒเบกเบเบปเบงเปเบญเบเบงเปเบฒ: เบงเบดเบเบตเบเบฒเบเบเปเบฝเบ subnet เปเบ cluster เบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบง?
เบเบปเปเบเบซเบฒเบเบฒเบเบเบฑเบเบชเบดเบเปเบ
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเปเบงเปเบเบเบตเปเบชเบธเบเปเบกเปเบเบเบฒเบเบชเปเบฒเบเปเบซเบกเป เบเบฑเบโเบซเบกเบปเบ เบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบกเบตเบเบฐเปเบเบ ClusterIP. เปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบ,
เบเบฐเบเบงเบเบเบฒเบเบเปเปเปเบเบเบตเปเบกเบตเบเบฑเบเบซเบฒ: เบซเบผเบฑเบเบเบฒเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบทเบเบเบฑเปเบเบเปเบฒ, เบเบฑเบเบเบฐเบกเบฒเบเบฑเบ IP เปเบเบปเปเบฒเปเบเบฑเบ DNS nameserver เปเบ /etc/resolv.conf.
เปเบเบทเปเบญเบเบเบฒเบเบเปเบญเบเบเบฑเบเบเปเปเบเบปเบเบเบฒเบเบญเบญเบ, เบเปเบญเบเบเปเบญเบเบเบฑเปเบเบเบธเปเบกเบเบฑเบเปเบปเบเบเปเบงเบ kubeadm reset เปเบฅเบฐ init เบกเบฑเบเบญเบตเบเบเบฑเปเบ.
เปเบเปเบเบตเปเบเปเปเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบปเบ ... เบเบตเปเปเบกเปเบเบเบฒเบเปเบเบฐเบเปเบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบชเปเบฒเบฅเบฑเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- Flannel เบเบทเบเบเปเบฒเปเบเป;
- เบกเบตเบเบธเปเบกเบเบฑเบเบขเบนเปเปเบเบเบฅเบฒเบง เปเบฅเบฐเปเบเบฎเบฒเบเปเบง;
- เบเปเบญเบเบขเบฒเบเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบณเปเบเปเบเปเบฅเบดเบเบฒเบเบเบฑเบเปเบปเบเปเบเบเบธเปเบกเบเบทเบเปเปเป;
- เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบตเปเบกเบตเบเปเบฒเบเบงเบเบเปเบฒเปเบชเบธเบเบเบตเปเบเบญเบเบเบฑเบเบซเบฒ;
- เบฅเบธเปเบ Kubernetes เปเบกเปเบ 1.16.6 (เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฑเปเบเบเบญเบเบเปเปเปเบเบเบฐเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบฅเบธเปเบเบญเบทเปเบเป);
- เบงเบฝเบเบเบฒเบเบเบปเปเบเบเปเปเบกเปเบเปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบขเบนเปเปเบเบเบธเปเบกเบเบตเปเบเปเบฒเปเบเป kubeadm เบเบฑเบเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเบเปเบฅเบดเบเบฒเบ
192.168.0.0/16
, เปเบเบเบเบตเปเบเปเบงเบ172.24.0.0/16
.
เปเบฅเบฐเบกเบฑเบเปเบเบตเบเบเบถเปเบเบซเบผเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบปเบเปเบเบขเบฒเบเปเบซเบฑเบเบชเบดเปเบเบเบตเปเบขเบนเปเปเบ Kubernetes เบเบทเบเปเบเบฑเบเปเบงเปเปเบ etcd, เบชเบดเปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเบฑเบเบกเบฑเบ ... เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบดเบเบงเปเบฒ: "เปเบเบฑเบเบซเบเบฑเบเบเปเปเบเบฝเบเปเบเปเบเบฑเบเบเบธเบเบเปเปเบกเบนเบเปเบ etcd, เปเบเบเบเบตเปเบเบตเปเบขเบนเป IP เปเบเบปเปเบฒ (subnet) เบเปเบงเบเบญเบฑเบเปเบซเบกเป? ยป
เบกเบตเบเบฒเบเบเบปเปเบเบซเบฒเปเบเบทเปเบญเบเบกเบทเบเบตเปเบเบฝเบกเบเปเบญเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเปเบกเบนเบเปเบ etcd, เบเบงเบเปเบฎเบปเบฒเบเปเปเบเบปเบเบชเบดเปเบเบเบตเปเปเบเปเปเบเบเบฑเบเบซเบฒเบขเปเบฒเบเบชเบปเบกเบเบนเบ. (เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เบเปเบฒเบเปเบฒเบเบฎเบนเปเบเปเบฝเบงเบเบฑเบเบเบปเบเบเบฐเปเบซเบเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเปเบกเบนเบเปเบเบเบเบปเบเปเบ etcd, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบทเปเบเบเบปเบกเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป.) เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบธเบเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเบตเปเบกเปเบ
เบเบปเบเบเบฐเปเบซเบเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ etcd เปเบเบเปเบเปเปเบเบขเบฑเปเบเบขเบทเบเปเบฅเบฐเบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบเบฑเปเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ ls
, get
, dump
.
เปเบเบตเปเบก etcdhelper
เบเบงเบฒเบกเบเบดเบเบเปเปเปเบเปเบกเปเบเบกเบตเปเบซเบเบเบปเบ: "เปเบกเปเบเบซเบเบฑเบเบเบตเปเบเบฑเบเบเบงเบฒเบเปเบเบปเปเบฒเบเบฒเบเบเบฒเบเปเบเบตเปเบกเบเบฐเปเบซเบเบเบเบตเปเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบฝเบเบเปเปเบกเบนเบเปเบชเป etcd?"
เบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบชเบฐเบเบฑเบเบเบฑเบเปเบเปเบเบญเบ etcdhelper เบเปเบงเบเบชเบญเบเบซเบเปเบฒเบเบตเปเปเบซเบกเป changeServiceCIDR
ะธ changePodCIDR
. เบชเบธเบเบเบญเบเบเบฒเบ เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบฅเบฐเบซเบฑเบ
เบเบธเบเบชเบปเบกเบเบฑเบเปเปเปเปเบฎเบฑเบเบซเบเบฑเบเปเบเป? เบชเบนเบเบเบฒเบเบเบดเบเปเบฅเป changeServiceCIDR
:
- เบชเปเบฒเบ deserializer เปเบเบฑเบ;
- เบฅเบงเบเบฅเบงเบกเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบดเปเบเบทเปเบญเบเบปเบเปเบเบ CIDR;
- เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบตเบเบฐเปเบเบ ClusterIP เปเบเบเบธเปเบก:
- เบเบญเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบฒเบ etcd เปเบเบปเปเบฒเปเบเปเบเบงเบฑเบเบเบธ Go;
- เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบดเบเบงเบเปเบฎเบปเบฒเปเบเบเบชเบญเบ bytes เบเปเบฒเบญเบดเบเบเบญเบเบเบตเปเบขเบนเป;
- เบกเบญเบเปเบฒเบเปเบซเปเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบขเบนเป IP เบเบฒเบเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเปเปเป;
- เบชเปเบฒเบ serializer, เบเปเบฝเบเบงเบฑเบเบเบธ Go เปเบเบฑเบ protobuf, เบเบฝเบเบเปเปเบกเบนเบเปเบซเบกเปเปเบเบฑเบ etcd.
เบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบ changePodCIDR
เบเปเบฒเบเบเบทเบเบฑเบ changeServiceCIDR
- เบเบฝเบเปเบเปเปเบเบเบเบตเปเบเบฐเปเบเปเปเบเบเปเปเบเปเบฒเบเบปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบ node เปเบฅเบฐเบเบฒเบเบเปเบฝเบเปเบเบ .spec.PodCIDR
เบเบฑเบเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเปเบซเบกเป.
เบเบฒเบเบเบฐเบเบดเบเบฑเบ
เบเปเบฝเบเบเปเบฅเบดเบเบฒเบ CIDR
เปเบเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบงเบฝเบเบเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ, เปเบเปเบกเบฑเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบขเบธเบเปเบงเบฅเบฒเปเบเปเบงเบฅเบฒเบเบญเบเบเบฒเบเบชเปเบฒเบเบเบฑเบเบเบฑเบเบซเบกเบปเบเปเบเบเบธเปเบก. เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบญเบฐเบเบดเบเบฒเบเบเบฑเปเบเบเบญเบเบเบปเปเบเบเป, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเปเบเปเบเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบ, เปเบเบเบฒเบเบเบดเบเบชเบฐเบเบต, เบเบฒเบเบขเบธเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบชเบฒเบกเบฒเบเบซเบผเบธเบเบเปเบญเบเบฅเบปเบเปเบเป.
เบเบฑเปเบโเบเบญเบโเบเบฒเบโเบเบฐโเบเบฝเบกโ:
- เบเบฒเบเบเบดเบเบเบฑเปเบเบเบญเบเปเบงเบเบตเปเบเปเบฒเปเบเบฑเบเปเบฅเบฐเบเบฒเบเบเบฐเบเบญเบ etcdhelper patched;
- backup etcd เปเบฅเบฐ
/etc/kubernetes
.
เปเบเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบชเบฑเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเปเบฅเบดเบเบฒเบCIDR:
- เบเบฒเบเบเปเบฝเบเปเบเบ apiserver เปเบฅเบฐ controller-manager manifests;
- เบเบฒเบเบญเบญเบเปเบเบขเบฑเปเบเบขเบทเบ;
- เบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ ClusterIP เปเบ etcd;
- เบฃเบตเบชเบฐเบเบฒเบเบเบญเบเบเบฑเบเบเบฑเบเปเบปเบเปเบเบเบธเปเบก.
เบเปเปโเปเบโเบเบตเปโเปเบกเปเบโเปเบเบฑเบโเบฅเปเบฒโเบเบฑเบโเบเบตเปโเบชเบปเบกโเบเบนเบโเบเบญเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเปเบโเบฅเบฐโเบญเบฝเบโ.
1. เบเบดเบเบเบฑเปเบ etcd-client เบชเปเบฒเบฅเบฑเบเบเบฒเบ dump เบเปเปเบกเบนเบ:
apt install etcd-client
2. เบชเปเบฒเบ เปเบฅเบฐ เบญเบทเปเบเป:
- เบเบฒเบโเบเบดเบโเบเบฑเปเบ 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 etcd:
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
- เปเบซเปเบเบฐเบเบฝเบก config เบซเบเปเบญเบเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบ 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
- เปเบซเปเบเบงเบเปเบเบดเปเบเบงเปเบฒเปเบเบฎเบฑเบเบฎเบญเบเปเบเปเบเบทเบเบญเบญเบเปเบซเปเบชเปเบฒเบฅเบฑเบ subnet เปเบซเบกเป:
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 เบเบทเบโเปเบซเบกเปโ, restart container เบเบญเบโเบเบปเบโ:
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 เปเบ 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 เปเบเบเบธเบ nodes:
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
เปเบฅเบฐเบเบฒเบเบเปเบฝเบเปเบเบ subnet เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ kube-dns
.
เบเบฒเบโเบเบฑเบโเปเบเป podNetworkโ
เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเบเบฑเบเปเบเบ podNetwork เปเบเบเปเบเป etcdhelper เบเบปเบเปเบเปเบฎเบฑเบ. เบฅเปเบฒเบเบฑเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบกเปเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เบเบฒเบเปเบเปเปเบ configs เปเบ
kube-system
; - เปเบเปเปเบ manifest kube-controller-manager;
- เบเปเบฝเบ podCIDR เปเบเบเบเบปเบเปเบ etcd;
- reboot nodes cluster เบเบฑเบเปเบปเบ.
เปเบเบเบฑเบเบเบธเบเบฑเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบซเบผเบปเปเบฒเบเบตเป:
1. เปเบเปเปเบ ConfigMap เปเบ 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 เบเบญเบเบเบนเปเบเบงเบเบเบธเบก-เบเบนเปเบเบฑเบเบเบฒเบ:
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
- เบเบฒเบโเปเบเปโเปเบโ --cluster-cidr=10.55.0.0/16
.
3. เปเบเบดเปเบเบเปเบฒเบเบฑเบเบเบธเบเบฑเบ .spec.podCIDR
, .spec.podCIDRs
, .InternalIP
, .status.addresses
เบชเปเบฒเบฅเบฑเบเบเบธเบ nodes cluster:
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. เปเบซเป reboot nodes cluster เบเบฑเบเปเบปเบเปเบเบทเปเบญเบฅเบฐเบญเบฑเบ.
7. เบเปเบฒเบเปเบฒเบเบญเบญเบเบเบฒเบเบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบ node podCIDR เปเบเบปเปเบฒ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ kube-controller-manager เบเบฐเบเปเปเบชเบฒเบกเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเป, เปเบฅเบฐ pods เปเบ cluster เบเบฐเบเปเปเบเบทเบเบเปเบฒเบเบปเบ.
เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบฒเบเบเปเบฝเบเปเบเบ podCIDR เบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเปเบฒเบเบเบงเปเบฒ (เบเบปเบงเบขเปเบฒเบ, spec.clusterIP
.)
เบเบปเบเปเบเปเบฎเบฑเบ
เบเบปเบเบเบงเบฒเบกเบชเบปเบเบเบฐเบเบฒเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเปเบกเบนเบเปเบ etcd เปเบเบเบเบปเบ, i.e. เบเปเบฒเบก Kubernetes API. เบเบฒเบเบเบฑเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเปเบฎเบฑเบ "เบชเบดเปเบเบเบตเปเบซเบเบธเปเบเบเบฒเบ". เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบปเบเบชเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเปเบซเปเบขเบนเปเปเบเบเปเปเบเบงเบฒเบกเบขเบนเปเปเบเบเบธเปเบก K8s เบเบตเปเปเบเปเบเบดเบ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบงเบฒเบกเบเปเบญเบกเบเบญเบเบเบงเบเปเบเบปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบขเปเบฒเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบกเปเบ PoC (เบซเบผเบฑเบเบเบฒเบเบชเบฐเปเบเบเปเบเบงเบเบงเบฒเบกเบเบดเบ). เบเบฑเปเบเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเปเบชเบฐเบเบฑเบเบเบฑเบเปเบเปเบเบญเบ utility etcdhelper เปเบเบเบธเปเบกเบเบญเบเบเปเบฒเบ, เปเบซเปเปเบฎเบฑเบเปเบเบงเบเบฑเปเบเบเปเบงเบเบเบงเบฒเบกเบชเปเบฝเบเบเบญเบเบเปเบฒเบเปเบญเบ.
PS
เบญเปเบฒเบเบเบฑเบเบขเบนเปเปเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- ยซ
etcd 3.4.3: เบเบฒเบเบชเบถเบเบชเบฒเบเบงเบฒเบกเบซเบเปเบฒเปเบเบทเปเบญเบเบทเปเบฅเบฐเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒ " - ยซ
Calico เบชเปเบฒเบฅเบฑเบเปเบเบทเบญเบเปเบฒเบเปเบ Kubernetes: เบเบฒเบเปเบเบฐเบเปเบฒเปเบฅเบฐเบเบฐเบชเบปเบเบเบฒเบเปเบฅเบฑเบเบเปเบญเบ " - ยซ
6 เปเบกเบเปเบกเปเบฅเบฐเบเบปเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเปเบกเบทเปเบญเปเบเป Kubernetes [เปเบฅเบฐเบเบฒเบเปเบเปเปเบเบเบญเบเบกเบฑเบ] " - ยซ
เบเบนเปเบกเบทเบชเบฒเบเบเบฒเปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒ Kubernetes ".
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com