如何解决k8s & flannel --- 拨 tcp 172.96.0.1:443: i/o timeout
- 我用跟随命令初始化 kubeadm
kubeadm 初始化
--apiserver-advertise-address=192.168.64.104
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
--kubernetes-version v1.17.3
--service-cidr=172.96.0.0/16
--pod-network-cidr=172.244.0.0/16
curl -k https://172.96.0.1:443/version
命令结果:
{
"major": "1","minor": "17","gitVersion": "v1.17.3","gitCommit": "06ad960bfd03b39c8310aaf92d1e7c12ce618213","gitTreeState": "clean","buildDate": "2020-02-11T18:07:13Z","goVersion": "go1.13.6","compiler": "gc","platform": "linux/amd64"
}
- 但是当我使用命令
helm install --namespace openebs --name openebs stable/openebs --version 1.5.0
时,我得到的结果是Error: Get https://172.96.0.1:443/version?timeout=32s: dial tcp 172.96.0.1:443: I/O timeout
我不知道现在发生了什么,我该如何解决这个问题?
解决方法
我已经解决了我的问题。
-
当我查看我的安装过程时,我认为这个问题可能与 apply follow command
的步骤有关kubectl apply -f kube-flannel.yml
-
我在本地 kube-flannel.yml 中找到了以下配置代码
net-conf.json: | {“网络”:“10.244.0.0/16”,“后端”:{ "类型": "vxlan" } }
- 我认为这个ip可能必须与kubeadm init命令中的
pod-network-cidr
参数相同,所以我重置了k8s,并像follow一样更改了我的kubeadm init命令
kubeadm 初始化
--apiserver-advertise-address=192.168.64.104
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
--kubernetes-version v1.17.3
--service-cidr=10.96.0.0/16
--pod-network-cidr=10.244.0.0/16
终于成功了
- 虽然我解决了这个问题,但我仍然不明白在这种情况下会发生什么
我知道@wr1ttenyu zhao 已经解决了这个问题,但我决定提供一个答案只是为了澄清。
正如我们在 flannel documentation 中看到的:
注意:如果使用 kubeadm,则将 --pod-network-cidr=10.244.0.0/16 传递给 kubeadm init 以确保设置了 podCIDR。
--pod-network-cidr 选项指定 pod 网络的 IP 地址范围。
我们应该使用 10.244.0.0/16
网络,因为它硬编码在 kube-flannel.yml 文件中:
net-conf.json: |
{
"Network": "10.244.0.0/16","Backend": {
"Type": "vxlan"
}
}
因此,使用 kubeadm init --pod-network-cidr=10.244.0.0/16
命令创建 Kubernetes 集群将适用于 flannel,无需任何额外的 flannel 配置。
要使用不同的网络,我们需要在应用之前修改 kube-flannel.yml 文件中的 "Network": "10.244.0.0/16"
行,类似于此 answer 中的描述。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。