k8s 主节点修改IP之后报错: The connection to the server
k8s 主节点修改IP之后报错: The connection to the server IP was refused - did you specify the right host or port?
这个错误极其顽固,主要是因为我是在本地用虚拟机搭建的,因为IP经常冲突,我就改了IP,导致它起不来了。只要我一运行 kubectl 相关的命令就会报这个错。
网络上的各种答案千篇一律,操作多次还是不行,最后通过以下方式解决:
本文所有的命令全部在主节点执行
sudo kubeadm reset
rm -rf .kube/
sudo rm -rf /etc/kubernetes/
sudo rm -rf /var/lib/kubelet/
sudo rm -rf /var/lib/etcd
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
modprobe br_netfilter
cat <<EOF > /etc/sysctl.d/kube.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
kubeadm init --pod-network-cidr=10.244.0.0/16 -v=9
执行以上命令之后成功了,但我这里报了一个新的问题
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'
I0629 15:39:54.380302 4533 round_trippers.go:454] GET https://192.168.23.70:6443/healthz?timeout=10s in 0 milliseconds
解决方式
sudo vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
将内容替换为
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
然后,kubeadm reset -f 之后,重新kubeadm init就行了:
kubeadm reset -f
kubeadm init --image-repository=registry.aliyuncs.com/google_containers
根据下面的提示执行剩余的命令即可
如果报下面这个错
error execution phase preflight: [preflight] Some fatal errors occurred:
[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,找到下面这一行将其注释掉:
disabled_plugins : ["cri"]
然后重启运行时容器
systemctl restart containerd
声明: 因编程语言版本更新较快,当前文章所涉及的语法或某些特性相关的信息并不一定完全适用于您当前所使用的版本,请仔细甄别。文章内容仅作为学习和参考,若有错误,欢迎指正。
开发者
专题·造轮子
k8s·热门
相关文章
-
一次故障排查,k8s节点无法连接到master
06-29
-
ubuntu 裸机安装docker和n8n自动化工作流工具
06-25
-
基于虚拟机本地搭建 k8s 集群
06-15