阿里云ECS自建K8S_IPV6重启后异常问题解决过程
背景
最近安装了一个单节点的K8S_IPV6
昨天不知道何故 突然宕机了.
然后只能在阿里云的控制台后台重启了ECS
启动之后看K8S的状态一开始是正常的.
但是查看ing的时候,发现IP地址却变成了 IPV4的地址, 感觉比较奇怪.
这里整理一下处理过程.
问题现象
怀疑是因为阿里云 IPV6 地址存在一些故障风险
我在进行应用和数据库大量链接更新之后机器连不上了
不得已重启机器:
kubectl get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
k8sipv6.jnxlh.online nginx k8sipv6.jnxlh.online 172.17.99.99 80 9h
出现类似的问题.
感觉比较奇怪
重启机器进行验证
再次重启了机器, 发现还是如此,并且不少pod节点的地址变成了 IPV4的
kube-system kube-proxy-wt8dg 1/1 Running 1 (2d9h ago) 3d23h 172.22.79.99 amd9t34
发现每次启动完都会增加一个 默认的 hosts信息
172.22.79.99 amd9t34 amd9t34
然后删除这条记录 再启动kubelet
可能需要重建 ingress
如果是其他机器需要加入
需要再hosts里面增加IPV6 对应地址
先重新初始化一下:
kubeadm reset -f --cri-socket=unix:///var/run/cri-dockerd.sock
注意 一定要增加如下内容
vim /etc/sysctl.conf
增加内容为:
net.ipv6.conf.default.forwarding = 1
然后加入集群
kubeadm join [2408:400a:]:6443 --token w8zcp3 --discovery-token-ca-cert-hash sha256:b52e8e73a --cri-socket=unix:///var/run/cri-dockerd.sock
注意可以通过增加一个 -v2的方式进行展示.
ingress的处理
重新创建 ingress 之后再次部署 ingress的资源需要执行一个命令
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
然后再次重建ingress的资源就可以了.
总结
阿里云的虚拟机 总是在启动时给hosts 增加一个ipv4的地址信息
重启之后 K8S only IPV6的栈可能会出现异常.
遇到问题需要进行一下其他的处理.
标签:ingress,--,重启,阿里,ECS,IPV6,K8S
From: https://www.cnblogs.com/jinanxiaolaohu/p/17916058.html