1. 程式人生 > >部署k8s ssl集群實踐11:work節點配置flanneld

部署k8s ssl集群實踐11:work節點配置flanneld

edt vendor ets manager signal k8s service glob conf

前面三節點flanneld已經部署好,只需要在新加節點部署flanneld即可

把flanneld執行文件copy到新加節點

[root@k8s-node3 ~]# scp root@k8s-master1:/opt/k8s/bin/flanneld /opt/k8s/bin
root@k8s-master1‘s password:
flanneld? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%?? 35MB? 34.6MB/s?? 00:00? ?
[root@k8s-node3 ~]#
[root@k8s-node3 flannel]# scp root@k8s-master1:/opt/k8s/bin/mk-docker-opts.sh /opt/k8s/bin
root@k8s-master1‘s password:
mk-docker-opts.sh?

屬主改一下

[root@k8s-node3 ~]# ll /opt/k8s/bin
total 35484
-rwxr-xr-x. 1 root root? ?? 1762 Aug 30 01:38 environment.sh
-rwxr-xr-x. 1 root root 36327752 Aug 30 01:41 flanneld
[root@k8s-node3 ~]# chown -R k8s /opt/k8s/
[root@k8s-node3 ~]#

創建存放證書目錄,並把證書copy到新節點

[root@k8s-node3 ~]# mkdir -p /etc/flanneld/cert && chown -R k8s /etc/flanneld/cert
[root@k8s-node3 ~]# scp root@k8s-master1:/root/k8s/flannel/key/* /etc/flanneld/cert
root@k8s-master1‘s password:
flanneld.csr? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 989? ?? 1.0KB/s?? 00:00? ?
flanneld-csr.json? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 100%? 156? ?? 0.2KB/s?? 00:00? ?
flanneld-key.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 1675? ?? 1.6KB/s?? 00:00? ?
flanneld.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 1371? ?? 1.3KB/s?? 00:00? ?
flanneld.service? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 702? ?? 0.7KB/s?? 00:00? ?
[root@k8s-node3 ~]#

創建 flanneld 的 systemd unit 文件
把舊的節點上的copy來修改下即可

[root@k8s-node3 ~]# scp root@k8s-master1:/root/k8s/flannel/key/flanneld.service /etc/systemd/system
root@k8s-master1‘s password:
flanneld.service? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 702? ?? 0.7KB/s?? 00:00? ?
[root@k8s-node3 ~]#
[root@k8s-node3 ~]# cat /etc/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service
[Service]
Type=notify
ExecStart=/opt/k8s/bin/flanneld -etcd-cafile=/etc/kubernetes/cert/ca.pem -etcd-certfile=/etc/flanneld/cert/flanneld.pem -etcd-keyfile=/etc/flanneld/cert/flanneld-key.pem -etcd-endpoints=https://192.168.211.128:2379,https://192.168.211.129:2379,https://192.168.211.130:2379 -etcd-prefix=/kubernetes/network -iface=ens33
ExecStartPost=/opt/k8s/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
Restart=on-failure
[Install]
WantedBy=multi-user.target
RequiredBy=docker.service
[root@k8s-node3 ~]#

註意這裏用到了
-etcd-cafile=/etc/kubernetes/cert/ca.pem \
這個證書,需要從舊節點copy過來,並配置權限
可以不用復制全部。

[root@k8s-node3 ~]# scp root@k8s-master1:/etc/kubernetes/cert/* /etc/kubernetes/cert/
root@k8s-master1‘s password:
ca-config.json? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 292? ?? 0.3KB/s?? 00:00? ?
ca.csr? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 993? ?? 1.0KB/s?? 00:00? ?
ca-csr.json? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 100%? 201? ?? 0.2KB/s?? 00:00? ?
ca-key.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 1675? ?? 1.6KB/s?? 00:00? ?
ca.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 1338? ?? 1.3KB/s?? 00:00? ?
kube-controller-manager.csr? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 100% 1127? ?? 1.1KB/s?? 00:00? ?
kube-controller-manager-csr.json? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 275? ?? 0.3KB/s?? 00:00? ?
kube-controller-manager-key.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 100% 1679? ?? 1.6KB/s?? 00:00? ?
kube-controller-manager.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 100% 1489? ?? 1.5KB/s?? 00:00? ?
kubernetes.csr? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 1257? ?? 1.2KB/s?? 00:00? ?
kubernetes-csr.json? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 100%? 397? ?? 0.4KB/s?? 00:00? ?
kubernetes-key.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 1675? ?? 1.6KB/s?? 00:00? ?
kubernetes.pem? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100% 1619? ?? 1.6KB/s?? 00:00? ?
[root@k8s-node3 ~]#
[root@k8s-node3 ~]# chown -R k8s /etc/kubernetes/cert/

啟動服務

[root@k8s-node3 ~]# systemctl daemon-reload && systemctl enable flanneld && systemctl restart flanneld
[root@k8s-node3 flannel]# systemctl status flanneld -l
● flanneld.service - Flanneld overlay address etcd agent
?? Loaded: loaded (/etc/systemd/system/flanneld.service; enabled; vendor preset: disabled)
?? Active: active (running) since Thu 2018-08-30 01:59:47 EDT; 36s ago
? Process: 2784 ExecStartPost=/opt/k8s/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker (code=exited, status=0/SUCCESS)
Main PID: 2777 (flanneld)
?? CGroup: /system.slice/flanneld.service
? ? ? ? ?? └─2777 /opt/k8s/bin/flanneld -etcd-cafile=/etc/kubernetes/cert/ca.pem -etcd-certfile=/etc/flanneld/cert/flanneld.pem -etcd-keyfile=/etc/flanneld/cert/flanneld-key.pem -etcd-endpoints=https://192.168.211.128:2379,https://192.168.211.129:2379,https://192.168.211.130:2379 -etcd-prefix=/kubernetes/network -iface=ens33
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.254927? ? 2777 main.go:235] Created subnet manager: Etcd Local Manager with Previous Subnet: 172.30.52.0/24
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.254941? ? 2777 main.go:238] Installing signal handlers
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.274908? ? 2777 main.go:353] Found network config - Backend type: vxlan
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.274973? ? 2777 vxlan.go:120] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.283644? ? 2777 local_manager.go:147] Found lease (172.30.52.0/24) for current IP (192.168.211.131), reusing
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.288178? ? 2777 main.go:300] Wrote subnet file to /run/flannel/subnet.env
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.288201? ? 2777 main.go:304] Running backend.
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.298965? ? 2777 vxlan_network.go:60] watching for new subnet leases
Aug 30 01:59:47 k8s-node3 flanneld[2777]: I0830 01:59:47.299852? ? 2777 main.go:396] Waiting for 22h59m59.967748434s to renew lease
Aug 30 01:59:47 k8s-node3 systemd[1]: Started Flanneld overlay address etcd agent.
[root@k8s-node3 flannel]#

可能遇到的報錯:

Aug 30 01:55:36 k8s-node3 flanneld: E0830 01:55:36.472662? ? 2532 watch.go:43] Watch subnets: failed to retrieve subnet leases: context canceled

這個報錯是因為

[root@k8s-node3 flannel]# ll /opt/k8s/bin
total 35488
-rwxr-xr-x. 1 k8s root? ?? 1762 Aug 30 01:38 environment.sh
-rwxr-xr-x. 1 k8s root 36327752 Aug 30 01:41 flanneld
-rwxr-xr-x. 1 k8s root? ?? 2139 Aug 30 01:59 mk-docker-opts.sh
[root@k8s-node3 flannel]#

沒有mk-docker-opts.sh這個文件。

檢查下flanneld的情況

看看分配的ip段

3: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
? ? link/ether 5a:b5:99:65:f5:7c brd ff:ff:ff:ff:ff:ff
? ? inet 172.30.52.0/32 scope global flannel.1
? ? ?? valid_lft forever preferred_lft forever

etcd後端對比下

[root@k8s-master1 key]#? etcdctl --ca-file=/etc/kubernetes/cert/ca.pem --cert-file=/etc/etcd/cert/etcd.pem --key-file=/etc/etcd/cert/etcd-key.pem ls /kubernetes/network/subnets
/kubernetes/network/subnets/172.30.99.0-24
/kubernetes/network/subnets/172.30.52.0-24
/kubernetes/network/subnets/172.30.14.0-24
/kubernetes/network/subnets/172.30.92.0-24
[root@k8s-master1 key]#

可以看到已經寫入etcd了

部署k8s ssl集群實踐11:work節點配置flanneld