Ubutun搭建集群遇到的一些问题

  安装部署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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值