k8s

基于kubeamd搭建集群遇到的问题汇总

2021-10-29  本文已影响0人  宇晨棒棒的

如果上述操作完成后,还存在某个节点处于NotReady状态,可以在Master将该节点删除

1)# master节点将该节点删除

kubectl drain k8snode1 --delete-local-data --force --ignore-daemonsetskubectl delete node k8snode1 

2)# 然后到k8snode1节点进行重置 

kubeadm reset

3)# 重置完后在加入

kubeadmjoin 192.168.177.130:6443--token8j6ui9.gyr4i156u30y80xf--discovery-token-ca-cert-hashsha256:eda1380256a62d8733f4bddf926f148e57cf9d1a3a58fb45dd6e80768af5a500

1.错误一

在执行Kubernetes init方法的时候,出现这个问题

error execution phase preflight:[preflight] Some fatal errors occurred:[ERROR NumCPU]: the number of available CPUs 1 is less than the required 2

是因为VMware设置的核数为1,而K8S需要的最低核数应该是2,调整核数重启系统即可

错误二

在给node1节点使用 kubernetes join命令的时候,出现以下错误

error execution phase preflight:[preflight] Some fatal errors occurred:[ERROR Swap]: running with swap on is not supported. Please disable swap

错误原因是需要关闭swap

# 关闭swap

# 临时  swapoff  -a 

# 永久  sed  -ri  's/.*swap.*/#&/'   /etc/fstab      (-r   表示使用扩展的正则表达式)

3.错误三

在给node节点使用 kubernetes join命令的时候,出现以下错误

The HTTP call equal to 'curl -sSL http://localhost:10248/healthz'  failed with error: Get http://localhost:10248/healthz: dial tcp[::1]:10248: connect: connection refused

解决方法,首先需要到 master 节点,创建一个文件

# 创建文件夹

mkdir  /etc/systemd/system/kubelet.service.d 

# 创建文件

vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

# 添加如下内容

Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests   --allow-privileged=true   --fail-swap-on=false"

# 重置

kubeadm reset

#删除刚刚创建的配置目录

rm  -rf   $HOME/.kube

#然后 在master重新初始化

kubeadm init--apiserver-advertise-address=192.168.31.200  --image-repositoryregistry.aliyuncs.com/google_containers--kubernetes-version   v1.18.0   --service-cidr=10.96.0.0/12   --pod-network-cidr=10.244.0.0/16

#初始完成后,再到 node节点,执行 kubeadm join命令,加入到master

kubeadm join 192.168.31.200:6443 --token darpgd.1hc96uxp56e4sso2 \

    --discovery-token-ca-cert-hash sha256:4b7d42d21c6dd78d3dd552b5937b48cd65d5b1b7091d6237d8283d1756b6c930

#添加完成后,使用下面命令,查看节点是否成功添加

kubectl get nodes

4.错误四

在执行查看节点的时候, kubectl get nodes 会出现问题

Unable to connect to the server: x509: certificate signed by unknown authority(possibly because of " crypto/rsa: verification error"  while trying to verify candidate authority certificate"kubernetes")

这是因为之前创建的配置文件还存在,也就是这些配置

mkdir -p  $HOME/.kube

sudo cp  -i  /etc/kubernetes/admin.conf   $HOME/.kube/config 

sudo chown  $(id-u):$(id-g)   $HOME/.kube/config

#需要做的就是把配置文件删除,然后重新执行一下

rm  -rf  $HOME/.kube

然后再次创建一下即可

mkdir -p  $HOME/.kube

sudo cp  -i  /etc/kubernetes/admin.conf   $HOME/.kube/config 

sudo chown  $(id-u):$(id-g)   $HOME/.kube/config

这个问题主要是因为在执行 kubeadm reset 的时候,没有把 $HOME/.kube 给移除掉,再次创建时就会出现问题了

5.错误五

1)在使用下面命令,添加node节点到集群上的时候

kubeadm join 192.168.31.200:6443 --token darpgd.1hc96uxp56e4sso2 \

    --discovery-token-ca-cert-hash sha256:4b7d42d21c6dd78d3dd552b5937b48cd65d5b1b7091d6237d8283d1756b6c930

然后出现了这个错误

报错截图

出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通常就是路由器所要实现的功能。也就是说 /proc/sys/net/ipv4/ip_forward 文件的值不支持转发

0:禁止

1:转发

所以需要将值修改成1即可

echo "1"  > /proc/sys/net/ipv4/ip_forward     && sysctl  -p

修改完成后,重新执行命令即可

2)重新执行命令后报错:

报错截图

解决方法:

rm -rf /etc/kubernetes/kubelet.conf

rm -rf /etc/kubernetes/pki/ca.crt

再次执行添加node命令:

kubeadm join 192.168.31.200:6443 --token darpgd.1hc96uxp56e4sso2 \

    --discovery-token-ca-cert-hash sha256:4b7d42d21c6dd78d3dd552b5937b48cd65d5b1b7091d6237d8283d1756b6c930

6.问题六

在安装网络插件的时候flannel状态为Init:ImagePullBackOff

1)查看kube-flannel.yml文件时发现quay.io/coreos/flannel:v0.13.1-rc2-amd64

quay.io网站网络不可达

2)下载flanneld:v0.13.1-rc2-amd64导入到docker中

可以去https://github.com/coreos/flannel/releases官方仓库下载镜像

3)导入镜像,命令,特别提示,3个机器都需要导入,

docker load < flanneld-v0.13.1-rc2-amd64.docker

4)再次查看kubectl get pod -n kube-system  

上一篇下一篇

猜你喜欢

热点阅读