master节点初始化失败 

出现这个原因是因为,我们之前有执行过初始化的命令,然后初始化的时候就会产生一些文件,和占用端口,然后当你再次初始化的时候,就会提示你有些文件已经存在和端口正在被使用,所以我们要把这些文件删掉,和端口给杀死

#删除文件

rm -rf /etc/kubernetes/mainfests/*

rm -rf /var/lob/etcd

#杀死被占用的端口,我们使用lsof,如果没有的话,先去下载

yum install lsof

lsof -i:10250 #查看10250端口的占用情况

同样的,当我们加入节点的时候,也会遇到类似初始化节点一样的问题,我们也是删除文件和杀死端口再次加入节点就可以

k8s组件健康状态有问题

 如下面,我们发送k8s的scheduler提示unhealthy,这个时候应该怎么办呢?

 解决方法

vim /etc/kubernetes/manifests/kube-scheduler.yaml

# - --port=0 #这一行注释掉,然后重启就可以

systemctl restart kubelet

编辑文件

[root@k8s151 ~]$ vim /etc/kubernetes/manifests/kube-controller-manager.yaml

......

# - --port=0 #找到这个port=0并注释

注释后重启

[root@k8s151 ~]$ systemctl restart kubelet

检查一下,已经好了

[root@k8s151 ~]$ kubectl get cs

Warning: v1 ComponentStatus is deprecated in v1.19+

NAME STATUS MESSAGE ERROR

scheduler Healthy ok

controller-manager Healthy ok

etcd-0 Healthy {"health":"true"}

k8s的节点提示notready

下面这个是152节点没有准备好

一般如果是第一次部署k8s,遇到这种问题,多半是flanne的问题,下面这个命令,其实就是创建flannel组件,这个文件其实就是

创建一些cni,也就是实现flannel的pod,所以我们要想知道flannel是否部署成功了,需要去使用 kubectl get pods --all-namespaces 查看一下

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml  

从上图我们可以看到,这个152节点,没有成功的部署flannel,我们去查看详细的信息看看问题在哪 

[root@k8s151 ~]# kubectl describe pods kube-flannel-ds-wwdq7 -n kube-flannel

我们从上图的结果可以看到,是因为152这个节点下载镜像失败了,我们只需要把这个镜像下载到152节点就能解决问题了。 为什么会出现这个问题呢,因为这个镜像地址,默认是从国外网址下载的,有时候我们的电脑是不能访问外网的,我们想要解决这个问题

1  使用vpn翻墙,重新试试,或者可以直接在节点使用docker pull下载镜像,可以访问外网,也就能下载成功了

[root@k8s152 ~]# docker pull docker.io/rancher/mirrored-flannelcni-flannel:v0.20.2

2  找找看有没有镜像包,然后使用docker load导入镜像就可以了

比如我们别的节点是把这个镜像下载成功了,我们就可以把这个镜像打包,然后传到没有下载成功镜像再导入

[root@k8s153 ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

rancher/mirrored-flannelcni-flannel-cni-plugin v1.1.2 7a2dcab94698 4 weeks ago 7.97MB

rancher/mirrored-flannelcni-flannel v0.20.2 b5c6c9203f83 5 weeks ago 59.6MB

registry.aliyuncs.com/google_containers/kube-proxy v1.22.0 bbad1636b30d 17 months ago 104MB

registry.aliyuncs.com/google_containers/pause 3.5 ed210e3e4a5b 22 months ago 683kB

registry.aliyuncs.com/google_containers/kube-proxy v1.15.12 00206e1127f2 2 years ago 82.5MB

registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 5 years ago 742kB

把这两个和flannel相关的镜像打包

[root@k8s153 ~]# docker save rancher/mirrored-flannelcni-flannel-cni-plugin:v1.1.2 -o flannel-cni.tar.gz

[root@k8s153 ~]# docker save rancher/mirrored-flannel-plugin:v0.20.2 -o flannel.tar.gz

发送到失败的节点上152的~文件中

[root@k8s153 ~]# scp flannel.tar.gz 10.0.0.152:~

[root@k8s153 ~]# scp flannel-cni.tar.gz 10.0.0.152:~

[root@k8s152 ~]# ls

flannel.tar.gz

flannel-cni.tar.gz

导入镜像

[root@k8s152 ~]# docker load -i flannel.tar.gz

[root@k8s152 ~]# docker load -i flannel-cni.tar.gz

3 可以试试镜像加速,就是把国外的源换成本地的阿里云

 下载成功后,再次查看,节点已经变为ready

解决k8s"failed to set bridge addr: "cni0" already has an IP address different from 10.244.1.1/24"

pv或者pvc无法被删除

部署的PVC 和 PV 已经是处于绑定状态了,这个是时候是无法删除的,如果去删除就会一直Terminating状态

[root@k8s151 /k8s-manifests/cicd/gitlab]$ kubectl -n devops-tools get pv

NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE

gitlabt 10Gi RWX Delete Terminating kube-ops/gitlabt 38h

postsql 10Gi RWX Delete Terminating kube-ops/postsql 38h

这个时候可以通过编辑 PV,删除 PV 中的 finalizers 属性来强制删除 PV:

[root@k8s151 /k8s-manifests/cicd/gitlab]$ kubectl edit pv gitlabt

....

finalizers:

- kubernetes.io/pv-protection

....

# 按照下面所示删除 finalizers 属性中的内容,就是删除上面两行就可以

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: