• 安装部署Bug
  • v3.2.0有bug 建完新集群后后面再加入新节点后这个节点部署不上新的pod

我将v3.1.0升级到v3.2.0挺顺利的但是后面新加节点后发现pod无法调度到这个新加的节点,查看日志后发现问题指向新加节点上的calico于是我查了calico的日志

2021-11-11 10:13:42.274 [INFO][9] startup/startup.go 396: Early log level set to info

2021-11-11 10:13:42.274 [INFO][9] startup/utils.go 126: Using NODENAME environment for node name upgrade-node3

2021-11-11 10:13:42.274 [INFO][9] startup/utils.go 138: Determined node name: upgrade-node3

2021-11-11 10:13:42.274 [INFO][9] startup/startup.go 98: Starting node upgrade-node3 with version v3.20.0

2021-11-11 10:13:42.276 [INFO][9] startup/startup.go 401: Checking datastore connection

2021-11-11 10:14:12.277 [INFO][9] startup/startup.go 416: Hit error connecting to datastore - retry error=Get “https://10.233.0.1:443/api/v1/nodes/foo”: dial tcp 10.233.0.1:443: i/o timeout

这个10.233.0.1 是kubernetes的clusterip 代理的后面的三个apiserver,这个新加的节点ping不通这个ip

坑实在是太多了,单主节点安装没事,只要以添加节点就挂了 ,简直了。。。。。,这哪敢在生产上用啊

    8686555 KubeSphere 社区有大量用户都在生产环境用,具体问题具体分析。你把环境信息、报错和问题贴出来了么?

      18 天 后

      Feynman 我也遇到了与楼主一样的问题,同一局域网添加节点报错

      2021-11-29 05:32:52.949 [INFO][9] startup/startup.go 396: Early log level set to info

      2021-11-29 05:32:52.949 [INFO][9] startup/utils.go 126: Using NODENAME environment for node name test_node2

      2021-11-29 05:32:52.949 [INFO][9] startup/utils.go 138: Determined node name: test_node2

      2021-11-29 05:32:52.949 [INFO][9] startup/startup.go 98: Starting node test_node2 with version v3.20.0

      2021-11-29 05:32:52.950 [INFO][9] startup/startup.go 401: Checking datastore connection

      2021-11-29 05:33:22.950 [INFO][9] startup/startup.go 416: Hit error connecting to datastore - retry error=Get “https://10.233.0.1:443/api/v1/nodes/foo”: dial tcp 10.233.0.1:443: i/o timeout

      2021-11-29 05:33:53.952 [INFO][9] startup/startup.go 416: Hit error connecting to datastore - retry error=Get “https://10.233.0.1:443/api/v1/nodes/foo”: dial tcp 10.233.0.1:443: i/o timeout

      1 个月 后

      版本:v3.2.1

      现象:昨天刚升级到 v3.2.1,今天新增了一个 node,就出现了相同的问题,新增的 node 可以通过 kubectl get node ,但是直接访问 api-server 的 ip 或者网段,就不通,看到是 calico-node 一直重启,查看日志,提示和上面其他人发的一样。

      很紧急,麻烦尽快帮忙看下,谢谢~~~

      2022-01-13 08:35:53.625 [INFO][9] startup/startup.go 376: Early log level set to info
      
       2022-01-13 08:35:53.625 [INFO][9] startup/startup.go 392: Using NODENAME environment for node name
      
       2022-01-13 08:35:53.625 [INFO][9] startup/startup.go 404: Determined node name: ks-node07
      
       2022-01-13 08:35:53.626 [INFO][9] startup/startup.go 436: Checking datastore connection
      
       2022-01-13 08:36:23.627 [INFO][9] startup/startup.go 451: Hit error connecting to datastore - retry error=Get "https://172.31.0.1:443/api/v1/nodes/foo": dial tcp 172.31.0.1:443: i/o timeout

      172.31.0.1 是kuberntes的service ip么? 新增的node上面kube-proxy是否正常?
      新增的节点上执行一下ipvsadm -L |grep 172.31.0.1 -C 4

        xyz-li

        172.31.0.1 是 apiserver 的 ip,新增 node 上的 kube-proxy 容器运行中,但是一直报下面的错误

        E0113 09:00:22.450507       1 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1.Service: failed to list *v1.Service: Get "https://127.0.0.1:6443/api/v1/services?labelSelector=%21service.kubernetes.io%2Fheadless%2C%21service.kubernetes.io%2Fservice-proxy-name&limit=500&resourceVersion=0": dial tcp 127.0.0.1:6443: connect: connection refused

        从错误可以看到,连接的是 127.0.0.1 本地的 api-server,但是实际的 api-server 地址应该是 172.31.0.1

        另外,ipvsadm 命令不存在,安装后执行你说的命令,无返回结果

        你使用什么方式新增的node,
        这是kube-proxy的配置不正确. kube-proxy需要连接kube-apiserver。你看一下kube-proxy的配置
        kubectl get cm kube-proxy -n kube-system -oyaml

          xyz-li

          通过 kk 新增的 node,之前也一直用的这个方法,没有要配置 kube-proxy 过。执行了你说的命令后,返回下面的内容:

          apiVersion: v1
          data:
            config.conf: |-
              apiVersion: kubeproxy.config.k8s.io/v1alpha1
              bindAddress: 0.0.0.0
              bindAddressHardFail: false
              clientConnection:
                acceptContentTypes: ""
                burst: 0
                contentType: ""
                kubeconfig: /var/lib/kube-proxy/kubeconfig.conf
                qps: 0
              clusterCIDR: 172.30.0.0/20
              configSyncPeriod: 0s
              conntrack:
                maxPerCore: null
                min: null
                tcpCloseWaitTimeout: null
                tcpEstablishedTimeout: null
              detectLocalMode: ""
              enableProfiling: false
              healthzBindAddress: ""
              hostnameOverride: ""
              iptables:
                masqueradeAll: false
                masqueradeBit: 14
                minSyncPeriod: 0s
                syncPeriod: 30s
              ipvs:
                excludeCIDRs: null
                minSyncPeriod: 0s
                scheduler: ""
                strictARP: false
                syncPeriod: 0s
                tcpFinTimeout: 0s
                tcpTimeout: 0s
                udpTimeout: 0s
              kind: KubeProxyConfiguration
              metricsBindAddress: ""
              mode: ipvs
              nodePortAddresses: null
              oomScoreAdj: null
              portRange: ""
              showHiddenMetricsForVersion: ""
              udpIdleTimeout: 0s
              winkernel:
                enableDSR: false
                networkName: ""
                sourceVip: ""
            kubeconfig.conf: |-
              apiVersion: v1
              kind: Config
              clusters:
              - cluster:
                  certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
                  server: https://127.0.0.1:6443
                name: default
              contexts:
              - context:
                  cluster: default
                  namespace: default
                  user: default
                name: default
              current-context: default
              users:
              - name: default
                user:
                  tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          kind: ConfigMap
          metadata:
            creationTimestamp: "2021-07-06T08:07:31Z"
            labels:
              app: kube-proxy
            name: kube-proxy
            namespace: kube-system
            resourceVersion: "49468830"

          从地址看,server 的地址的确是错误的。那要如何解决呢?

          你有几个节点。你的kk配置什么样子。kk 配置里面的master需要写正确。

          可不可以 kubectl edit cm kube-proxy -n kube-system.

          修改之后可能会造成kube-proxy pod重启。

            xyz-li

            kk 配置里的 master 等配置都是正确的,没有修改过,之前也一直在用的,我确定。

            我刚更新了下 kube-proxy 的 cm,把 127.0.0.1 的地址改为 ks-master ,重启 kube-proxy 和 calico node 就好了

            应该还是因为 bug 导致的~

            感谢帮助

              xyz-li

              如果使用的内置lb,可以看下kube-system下是否有 haproxy 的 static pod

              kubectl get pod -n kube-system

                xyz-li

                我们没有内部的 LB 哦,那个配置文件里 LB 那块都是默认的配置,没有动过。

                2 个月 后

                怎么解决的 我也是这个问题?

                也是3。1升级3。2 新增节点 后面报错都一样

                1 年 后

                坑啊,主机重启后,pod创建不出来