k8s集群搭建问题总结

一、kubeadm搭建

1、其他master加入后无法使用kubectl查看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”)
在这里插入图片描述

原因:

之前创建过k8s集群,有残留目录($HOME/.kube),导致秘钥认证失败。

解决:

删除 $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

2、安装calico网络插件后,有一个pod始终处于runing但not ready

现象:

一个calico pod始终无法处于ready状态,删除该pod后自动生成的pod同样无法ready。

在这里插入图片描述

原因:

calico.yaml没有指定网卡,导致该calico pod 的 router id 错误(不是所处node的ip),使用如下命令进入该pod查看。(pod名称使用自己对应的名称)
kubectl exec -ti calico-node-55j59 -n kube-system -- bash
cat /etc/calico/confd/config/bird.cfg

在这里插入图片描述

解决:

先用ifconfig查看自己宿主机的网卡名称,我的是ens192。

在这里插入图片描述

打开calico.yaml,查找“Enable IPIP”,在上方添加下图红框的内容后保存退出,我这里用的是通配符。(注意对齐与缩进)
在这里插入图片描述
重新应用calico.yaml

rm -rf /var/lib/cni
kubectl apply -f calico.yaml

# 该问题解决方法转自calico-node显示running但not ready


3、k8s集群搭建完成测试网络解析时无法解析

现象:

pod运行正常,解析时出错:
在这里插入图片描述

kubectl run busybox --image=busybox --restart=Never -it -- sh

/ # ping baidu.com
PING baidu.com (220.181.38.251): 56 data bytes
64 bytes from 220.181.38.251: seq=0 ttl=49 time=23.818 ms
64 bytes from 220.181.38.251: seq=1 ttl=49 time=23.705 ms
^C
--- baidu.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 23.705/23.761/23.818 ms
/ # nslookup kubernetes.default.svc.cluster.local
Server:		10.96.0.10
Address:	10.96.0.10:53

Name:	kubernetes.default.svc.cluster.local
Address: 10.96.0.1

*** Can't find kubernetes.default.svc.cluster.local: No answer

原因:

busybox镜像有问题

解决:

使用1.28版的镜像测试正常
kubectl run busybox --image=busybox:1.28 --restart=Never --rm -it -- sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理在容器化环境中的应用程序。在搭建K8s高可用集群时,可以通过配置虚拟IP(VIP)来提供集群的高可用性。 虚拟IP是一种网络技术,用于将多个实际IP地址映射到一个虚拟的IP地址上。在K8s高可用集群中,可以使用虚拟IP来确保在发生节点故障时,集群的服务不会中断,可以无缝切换到其他健康的节点上。 具体实现方式如下: 1. 配置负载均衡器:在K8s集群中,可以使用负载均衡器来实现VIP。该负载均衡器可以是硬件设备、软件应用或云服务。负载均衡器可以通过将请求转发到不同的K8s节点上,来实现VIP的高可用性。 2. 分配VIP:在负载均衡器中,为K8s集群分配一个唯一的虚拟IP地址。这个虚拟IP将被映射到K8s集群的实际节点IP地址上。 3. 配置故障检测和自动切换:负载均衡器会定期检测K8s节点的健康状态。如果发现某个节点不可用,负载均衡器将自动将请求切换到其他健康的节点上,以确保服务的连续性。 通过虚拟IP的配置,K8s集群可以在发生节点故障时保持高可用性。即使一个节点故障,负载均衡器可以快速将请求切换到其他可用的节点上,而不会中断服务。这样可以提高应用程序的稳定性和可靠性。 总结起来,通过配置虚拟IP,K8s高可用集群能够在节点故障时实现自动切换,提供无缝的服务,确保应用程序的可用性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值