Ubutun搭建集群遇到的一些问题
创始人
2024-02-27 19:33:28
0

  安装部署K8s集群时会遇到很多问题,以下都是我踩过的坑,还有一些小坑当时没来得及记录,后续如果有遇到的话再进行补充。此处非常感谢江城琉璃梦同学对我的帮助。

1.工作节点执行kubectl get nodes时拒绝连接

执行指令kubectl get nodes

The connection to the server localhost:8080 was refused - did you specify the right host or port?

原因:kubernetes master没有与本机绑定,集群初始化的时候没有绑定,此时设置在本机的环境变量即可解决问题。

解决方法

  • 编辑文件设置:sudo gedit /etc/profile
  • 在底部增加新的环境变量:export KUBECONFIG=/etc/kubernetes/admin.conf
  • 使设置生效:source /etc/profile

2.安装flannel时拒绝连接

执行指令kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

The connection to the server raw.githubusercontent.com was refused - did you specify the right host or port?  

原因:外网不可访问
解决方法

  • 增加解析
    sudo gedit /etc/hosts 
    ###增加下面的解析
    199.232.68.133 raw.githubusercontent.com
    199.232.68.133 user-images.githubusercontent.com
    199.232.68.133 avatars2.githubusercontent.com
    199.232.68.133 avatars1.githubusercontent.com
    
  • 使用更安全的DNS
    sudo gedit /etc/resolv.conf
    ###使用下面的dns或者其他的dns
    nameserver 119.29.29.29
    nameserver 182.254.116.116
    

3.工作节点NotReady

执行指令kubectl get nodes
在这里插入图片描述
原因:flannel并没有在/etc下创建/etc/cni/net.d/10-flannel.conflist文件
解决方法:从其他有该文件的主机上拷贝文件过来,或者自己创建文件

sudo su
cd /etc/cni/net.d
gedit 10-flannel.conflist
{"name": "cbr0","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}]
}

4.k8s Failed to create pod sandbox

执行指令kubeadm init --control-plane-endpoint=192.168.16.100 --kubernetes-version=v1.25.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --token-ttl=0 --cri-socket unix:///run/cri-dockerd.sock --upload-certs --image-repository registry.aliyuncs.com/google_containers

Failed to create pod sandbox: rpc error: code = Unknown desc = failed to get sandbox image "k8s.gcr.io/pause:3.6": failed to pull image "k8s.gcr.io/pause:3.6": failed to pull and unpack image "k8s.gcr.io/pause:3.6": failed to resolve reference "k8s.gcr.io/pause:3.6": failed to do request: Head "https://k8s.gcr.io/v2/pause/manifests/3.6"

原因:很明显是无法拉取 k8s.gcr.io/pause:3.6 这个镜像,但我们的k8s明明使用的是pause:3.8的版本,很困惑!!!
解决方法

# 如果你的k8s使用的事docker客户端
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6 # 如果使用containerd自带客户端
crictl pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
ctr -n k8s.io i tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6

5.kubeadm init报错

 Process: 2226953 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=1/FAILURE)Main PID: 2226953 (code=exited, status=1/FAILURE)

原因:成因很多,建议首先检查防火墙是否关闭,是否开启6443端口

sudo ufw status
sudo ufw 6443
sudo ufw disable

解决方法:关闭防火墙后重启虚拟机或物理机
然后清空原来初始化的内容:

kubeadm reset --cri-socket unix:///run/cri-dockerd.sock && rm -rf /etc/kubernetes/ /var/lib/kubelet /var/lib/dockershim /var/run/kubernetes /var/lib/cni /etc/cni/net.d

重新初始化:

kubeadm init --control-plane-endpoint=192.168.8.130 --kubernetes-version=v1.25.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --token-ttl=0 --cri-socket unix:///run/cri-dockerd.sock --upload-certs --image-repository registry.aliyuncs.com/google_containers

相关内容

热门资讯

泰国央行:货币政策或进一步放松... 【8月27日泰国央行会议纪要透露货币政策或进一步放松】8月27日,泰国央行会议纪要显示,货币政策或可...
马斯克起诉苹果与OpenAI 据环球网援引外媒27日报道,马斯克旗下人工智能公司xAI和社交媒体平台X当地时间周一在得克萨斯州沃斯...
8人落网!运城公安打掉一盗窃高... 静悄悄的夜晚 几人鬼鬼祟祟来到小区储藏室 扒着门缝挨个闻气味 嗯……是酒香味儿 撬锁偷走 近日,垣...
德公务员制度遭质疑 一教师病歇... 德国一名女教师16年没上过一天班,却每月按时领工资,总共白拿了近百万欧元!最近,这条离谱新闻在德国炸...
为乡村治理提供示范样本——铜仁... 地处武陵山区腹地的铜仁市,作为多民族聚居的欠发达地区,曾长期面临基层法治基础薄弱、法律服务供给不足、...
智能网联汽车L2级辅助驾驶法规... 8月25日,中国消费品质量安全促进会主办的“智能网联汽车L2级辅助驾驶法规与标准交流活动”举行。本次...
保护修复湿地生态 促进人与自然... 8月25日拍摄的川水湾(无人机照片)。 江苏省盐城市东台市条子泥湿地区域总面积129万亩。2019年...
特朗普能解雇库克吗?这是法律界... 美国总统特朗普试图解雇美联储理事丽莎·库克(Lisa Cook)的举动,正在引发一场关于白宫对美联储...