1. 集群配置
报错: message: ‘runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady
message:docker: network plugin is not ready: cni config uninitialized’
原因:cni未被初始化(CNI 是 Container Network Interface 的缩写,是 K8S 用于配置 Linux 容器网络的接口规范。)
[root@slave zkpk]# kubectl get nodes -o yaml
apiVersion: v1
items:
- apiVersion: v1kind: Nodemetadata:annotations:kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.socknode.alpha.kubernetes.io/ttl: "0"volumes.kubernetes.io/controller-managed-attach-detach: "true"creationTimestamp: "2021-04-27T13:36:43Z"labels:beta.kubernetes.io/arch: amd64beta.kubernetes.io/os: linuxkubernetes.io/arch: amd64kubernetes.io/hostname: slavekubernetes.io/os: linuxnode-role.kubernetes.io/master: ""name: slaveresourceVersion: "5420"selfLink: /api/v1/nodes/slaveuid: 77ec909a-04d8-4f87-9f2a-8cfb3d48b9bcspec:podCIDR: 10.244.0.0/24taints:- effect: NoSchedulekey: node-role.kubernetes.io/master- effect: NoSchedulekey: node.kubernetes.io/not-readystatus:addresses:- address: 192.168.211.130type: InternalIP- address: slavetype: Hostnameallocatable:cpu: "2"ephemeral-storage: "27037535802"hugepages-1Gi: "0"hugepages-2Mi: "0"memory: 893524Kipods: "110"capacity:cpu: "2"ephemeral-storage: 29337604Kihugepages-1Gi: "0"hugepages-2Mi: "0"memory: 995924Kipods: "110"conditions:- lastHeartbeatTime: "2021-04-27T14:44:55Z"lastTransitionTime: "2021-04-27T13:36:37Z"message: kubelet has sufficient memory availablereason: KubeletHasSufficientMemorystatus: "False"type: MemoryPressure- lastHeartbeatTime: "2021-04-27T14:44:55Z"lastTransitionTime: "2021-04-27T13:36:37Z"message: kubelet has no disk pressurereason: KubeletHasNoDiskPressurestatus: "False"type: DiskPressure- lastHeartbeatTime: "2021-04-27T14:44:55Z"lastTransitionTime: "2021-04-27T13:36:37Z"message: kubelet has sufficient PID availablereason: KubeletHasSufficientPIDstatus: "False"type: PIDPressure- lastHeartbeatTime: "2021-04-27T14:44:55Z"lastTransitionTime: "2021-04-27T13:36:37Z"message: 'runtime network not ready: NetworkReady=false reason:NetworkPluginNotReadymessage:docker: network plugin is not ready: cni config uninitialized'reason: KubeletNotReady
安装网络插件cni
kubectl apply -fhttps://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
启动成功,状态变为ready了
[root@slave zkpk]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
slave Ready master 158m v1.15.0
现在可以查看所有pod的状态了
[root@slave zkpk]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-bccdc95cf-lpbg6 1/1 Running 0 3h21m
kube-system coredns-bccdc95cf-m5dnz 1/1 Running 0 3h21m
kube-system etcd-slave 1/1 Running 0 3h20m
kube-system kube-apiserver-slave 1/1 Running 0 3h20m
kube-system kube-controller-manager-slave 0/1 CrashLoopBackOff 23 3h20m
kube-system kube-flannel-ds-amd64-zcsn9 1/1 Running 0 139m
kube-system kube-proxy-tl4xq 1/1 Running 0 3h21m
kube-system kube-scheduler-slave 1/1 Running 22 3h20m
2. 加入node
-
先按在master节点上那样,安装docker等软件
-
在matser上生成token
[root@slave zkpk]# kubeadm token create
vxx3mh.i7voxmkglvli99dt
[root@slave zkpk]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
5168f393e212678c9954bbf8f5003df29d11fe41dbeca240dca90d7bc3cb77df
- 在node节点上运行如下命令(token那些使用刚刚在master上生成的)
[root@slave1 zkpk]# kubeadm join 192.168.211.130:6443 --token vxx3mh.i7voxmkglvli99dt --discovery-token-ca-cert-hash sha256:5168f393e212678c9954bbf8f5003df29d11fe41dbeca240dca90d7bc3cb77df
- 测试节点是否已经加入集群
[root@slave1 zkpk]# kubectl get node
NAME STATUS ROLES AGE VERSION
slave Ready master 45h v1.15.0
slave1 Ready <none> 23m v1.15.0