解决Kubernetes报错节点状态为NotReady,希望可以帮到你
使用kubeadm通过初始化安装的k8s是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如k8s-master节点上查看你节点信息是“Not Ready”状态、Pod的CoreDNS无法提供服服务。Flannel是一个轻量级的网络插件,基于虚拟网络的方式,使用了多种多端实现,如基于Overlay的VXLAN贺基于Host-Gateway的方式。
Kubernetes报错节点状态为NotReady
实验过程
起因是这样的这几天做学到了k8s,那肯定要部署呀,然后就先用kubeadm进行快速部署的,目的是为了体验一下广大程序员口中所说的Kubernetes(简称K8S),但是部署的过程中就出现了问题,是因为政策的原因导致的,近几天国家办法政策,不能访问Docker hub了,那对于我们Docker爱好者简直是一个晴天霹雳的消息,但是目前阿里云镜像仓库还是可以用的,但是用的过程中时好时不好,就比如kubeadm快速部署的过程中,有几个镜像阿里云就没办法提供了,只能使用魔法去拉取镜像了,话太多了不好意思,直接上干货
一、报错内容
使用kubeadm通过初始化安装的k8s是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如k8s-master节点上查看你节点信息是“Not Ready”状态、Pod的CoreDNS无法提供服服务
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master NotReady master 11m v1.18.0
k8s-node01 NotReady <none> 11m v1.18.0
k8s-node02 NotReady <none> 11m v1.18.0
二、安装flannel网络插件
Flannel是一个轻量级的网络插件,基于虚拟网络的方式,使用了多种多端实现,如基于Overlay的VXLAN贺基于Host-Gateway的方式。它创建了一个覆盖整个集群的虚拟网络,使得Pod可以跨节点通信
[root@k8s-master ~]# kubectl apply -f kube-flannel.yaml
namespace/kube-flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created
网络插件也安装了吧?再查看节点状态试试,如果我没猜错的话,再次查看节点状态,你的跟我的一样是一摸一样(可能NAME字段不一样、AGE、VERSION),
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master NotReady master 15m v1.18.0
k8s-node01 NotReady <none> 15m v1.18.0
k8s-node02 NotReady <none> 15m v1.18.0
查看集群中所有命令空间的Pods的状态信息,如果我再次没猜错的话,你的又和我的一摸一样。
[root@k8s-master ~]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-flannel kube-flannel-ds-2mb46 0/1 Init:ImagePullBackOff 0 8m15s
kube-flannel kube-flannel-ds-bq8hg 0/1 Init:ImagePullBackOff 0 8m15s
kube-flannel kube-flannel-ds-f975x 0/1 Init:ImagePullBackOff 0 8m15s
kube-system coredns-7ff77c879f-2s7nf 0/1 Pending 0 17m
kube-system coredns-7ff77c879f-xn6q9 0/1 Pending 0 17m
kube-system etcd-k8s-master 1/1 Running 0 18m
kube-system kube-apiserver-k8s-master 1/1 Running 0 18m
kube-system kube-controller-manager-k8s-master 1/1 Running 0 18m
kube-system kube-proxy-9mv7n 1/1 Running 0 17m
kube-system kube-proxy-fgkg2 1/1 Running 0 17m
kube-system kube-proxy-v5knt 1/1 Running 0 17m
kube-system kube-scheduler-k8s-master 1/1 Running 0 18m
那为什么会出现flannel镜像一直拉取不下来呢?就是因为阿里云镜像仓库可能没有这些镜像,所有就是使用了魔法,拉取到了镜像,最后也是成功的解决了,非常要感谢那个男人,我伟大的教员
# 可以看出正是以下这三个镜像没有拉取到导致我们的实验办法进行下去,我的yaml文件是进行过整改的,可以免费提供,评论或者即可
[root@k8s-master ~]# cat kube-flannel.yaml | grep image
image: docker.io/flannel/flannel-cni-plugin:v1.1.2
#image: docker.io/rancher/mirrored-flannelcni-flannel-cni-plugin:v1.1.2
image: docker.io/flannel/flannel:v0.21.5
#image: docker.io/rancher/mirrored-flannelcni-flannel:v0.21.5
image: docker.io/flannel/flannel:v0.21.5
#image: docker.io/rancher/mirrored-flannelcni-flannel:v0.21.5
拉取镜像的命令放在下面了,需要使用魔法才能拉取到,拉取不到的评论或者私信免费提供(开源)
注意:拉取到了镜像要导入到全部的集群服务器中(master节点和node节点)
[root@k8s-master ~]# docker pull docker.io/flannel/flannel-cni-plugin:v1.1.2
[root@k8s-master ~]# docker pull docker.io/flannel/flannel:v0.21.5
# master节点镜像
[root@k8s-master ~]# docker images | grep fl
flannel/flannel v0.21.5 a6c0cb5dbd21 13 months ago 68.9MB
flannel/flannel-cni-plugin v1.1.2 7a2dcab94698 18 months ago 7.97MB
# node1节点镜像
[root@k8s-node01 ~]# docker images | grep fl
flannel/flannel v0.21.5 a6c0cb5dbd21 13 months ago 68.9MB
flannel/flannel-cni-plugin v1.1.2 7a2dcab94698 18 months ago 7.97MB
# node2节点镜像
[root@k8s-node02 ~]# docker images | grep fl
flannel/flannel v0.21.5 a6c0cb5dbd21 13 months ago 68.9MB
flannel/flannel-cni-plugin v1.1.2 7a2dcab94698 18 months ago 7.97MB
三、成功
- 可能需要一点实验才能全部变成running
[root@k8s-master ~]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-flannel kube-flannel-ds-2mb46 1/1 Running 0 29m
kube-flannel kube-flannel-ds-bq8hg 1/1 Running 0 29m
kube-flannel kube-flannel-ds-f975x 1/1 Running 0 29m
kube-system coredns-7ff77c879f-2s7nf 1/1 Running 0 39m
kube-system coredns-7ff77c879f-xn6q9 1/1 Running 0 39m
kube-system etcd-k8s-master 1/1 Running 1 39m
kube-system kube-apiserver-k8s-master 1/1 Running 1 39m
kube-system kube-controller-manager-k8s-master 1/1 Running 1 39m
kube-system kube-proxy-9mv7n 1/1 Running 0 39m
kube-system kube-proxy-fgkg2 1/1 Running 0 39m
kube-system kube-proxy-v5knt 1/1 Running 1 39m
kube-system kube-scheduler-k8s-master 1/1 Running 1 39m
- 再次查看节点状态将会变成Ready(部署完成k8s)
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 53m v1.18.0
k8s-node01 Ready <none> 53m v1.18.0
k8s-node02 Ready <none> 53m v1.18.0
这是一个云计算大佬,我伟大的教员:畅云客
更多推荐
所有评论(0)