首页 k8s

k8s 主节点修改IP之后报错: The connection to the server

pyweeX 发布于 06-29
k8s
pyweeX

k8s 主节点修改IP之后报错: The connection to the server IP was refused - did you specify the right host or port?

这个错误极其顽固,主要是因为我是在本地用虚拟机搭建的,因为IP经常冲突,我就改了IP,导致它起不来了。只要我一运行 kubectl 相关的命令就会报这个错。

网络上的各种答案千篇一律,操作多次还是不行,最后通过以下方式解决:

本文所有的命令全部在主节点执行

  1. sudo kubeadm reset
  2. rm -rf .kube/
  3. sudo rm -rf /etc/kubernetes/
  4. sudo rm -rf /var/lib/kubelet/
  5. sudo rm -rf /var/lib/etcd
  6. setenforce 0
  7. sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  8. modprobe br_netfilter
  9. cat <<EOF > /etc/sysctl.d/kube.conf
  10. net.bridge.bridge-nf-call-ip6tables = 1
  11. net.bridge.bridge-nf-call-iptables = 1
  12. EOF
  13. sysctl --system
  14. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  15. [kubernetes]
  16. name=Kubernetes
  17. baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
  18. enabled=1
  19. gpgcheck=1
  20. repo_gpgcheck=1
  21. gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  22. exclude=kube*
  23. EOF
  24. kubeadm init --pod-network-cidr=10.244.0.0/16 -v=9

执行以上命令之后成功了,但我这里报了一个新的问题

  1. I0629 15:39:54.379824 4533 round_trippers.go:435] curl -v -XGET -H "Accept: application/json, */*" -H "User-Agent: kubeadm/v1.22.4 (linux/amd64) kubernetes/b695d79" 'https://192.168.23.70:6443/healthz?timeout=10s'
  2. I0629 15:39:54.380302 4533 round_trippers.go:454] GET https://192.168.23.70:6443/healthz?timeout=10s in 0 milliseconds

k8s 主节点修改IP之后报错

解决方式

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

将内容替换为

  1. # Note: This dropin only works with kubeadm and kubelet v1.11+
  2. [Service]
  3. Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
  4. Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
  5. # This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
  6. EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
  7. # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
  8. # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
  9. EnvironmentFile=-/etc/default/kubelet
  10. ExecStart=
  11. ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

然后,kubeadm reset -f 之后,重新kubeadm init就行了:

  1. kubeadm reset -f
  2. kubeadm init --image-repository=registry.aliyuncs.com/google_containers

根据下面的提示执行剩余的命令即可
k8s安装

如果报下面这个错

  1. error execution phase preflight: [preflight] Some fatal errors occurred:
  2. [ERROR CRI]: container runtime is not running: output: time="2023-06-30T00:26:40+08:00" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"

则需要修改配置文件 /etc/containerd/config.toml,找到下面这一行将其注释掉:

  1. disabled_plugins : ["cri"]

然后重启运行时容器

  1. systemctl restart containerd

声明: 因编程语言版本更新较快,当前文章所涉及的语法或某些特性相关的信息并不一定完全适用于您当前所使用的版本,请仔细甄别。文章内容仅作为学习和参考,若有错误,欢迎指正。

讨论 支持 Markdown 语法 点击演示
回复
评论预览框

开发者

开发者·注册登录
  • 获取验证码
  • 取消