【问题标题】:k8s & flannel --- dial tcp 172.96.0.1:443: i/o timeoutk8s & flannel --- 拨号 tcp 172.96.0.1:443: i/o timeout
【发布时间】:2021-06-11 01:45:23
【问题描述】:
  1. 我用跟随命令初始化 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

  1. 我有一个master和两个node,我在三台机器上测试follow命令

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"
}
  1. 但是当我使用命令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

我不知道现在发生了什么,我该如何解决这个问题?

【问题讨论】:

    标签: kubernetes flannel


    【解决方案1】:

    我的问题已经解决了。

    1. 当我回顾我的安装过程时,我认为这个问题可能与应用跟随命令kubectl apply -f kube-flannel.yml的步骤有关

    2. 我在本地 kube-flannel.yml 中找到了跟随配置代码

    net-conf.json: | { “网络”:“10.244.0.0/16”,“后端”:{ “类型”:“vxlan”}}

    1. 我认为这个 ip 可能必须与 kubeadm init 命令中的pod-network-cidr 参数相同,所以我重置 k8s,并更改我的 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

    终于成功了

    1. 虽然我解决了这个问题,但我仍然不知道在这种情况下会发生什么

    【讨论】:

      【解决方案2】:

      我知道@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中描述的内容。

      【讨论】:

        猜你喜欢
        • 2021-11-22
        • 2021-09-24
        • 1970-01-01
        • 2019-08-21
        • 2022-01-22
        • 2021-01-23
        • 2018-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多