k8s安装问题摘要

Error execution phase kubelet-start when join cluster

worker节点加入k8s集群的时候出现上述错误
经排查,是master的kubeadm版本和worker节点的kubeadm版本不一致。安装替换即可。

calico/node is not ready: BIRD is not ready: BGP not established

一直被集群pod不同node节点之间不能互ping困扰(nacos服务发现,sentinel接口发现默认使用pod ip。如果不能互ping,会导致nacos,sentinel不可用)
经排查是DaemonSet :kube-system / calico-node 没有正常启动。报以下错误
Readiness probe failed: caliconode is not ready: BIRD is not ready: BGP not established with 10.117.
初步判断,应该是网络的问题(个人对网络这块不是很了解,需要加强)。
通过下面这篇文章补了以下calico的知识:
https://www.cnblogs.com/goldsunshine/p/10701242.html
BIRD是一个标准的路由程序,它会从内核里面获取哪一些IP的路由发生了变化,然后通过标准BGP的路由协议扩散到整个其他的宿主机上,让外界都知道这个IP在这里,你们路由的时候得到这里来

通过网上的一篇文章:https://blog.csdn.net/u011327801/article/details/100579803
了解到是calico没用发现实际真正的网卡。调整calicao 网络插件的网卡发现机制,修改IP_AUTODETECTION_METHOD对应的value值。官方提供的yaml文件中,ip识别策略(IPDETECTMETHOD)没有配置,即默认为first-found,这会导致一个网络异常的ip作为nodeIP被注册,从而影响node-to-node mesh。我们可以修改成can-reach或者interface的策略,尝试连接某一个Ready的node的IP,以此选择出正确的IP。
找到calico.yaml文件,添加两行

- name: IP_AUTODETECTION_METHOD
  value: "interface=ens.*"

完整的像这样

- name: CALICO_NETWORKING_BACKEND
             valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: calico_backend
            # Cluster type to identify the deployment type
            - name: CLUSTER_TYPE
              value: "k8s,bgp"
            - name: IP_AUTODETECTION_METHOD
              value: "interface=ens.*"
            # Auto-detect the BGP IP address.
            - name: IP
              value: "autodetect"
            # Enable IPIP
            - name: CALICO_IPV4POOL_IPIP
              value: "Always"

然后 kubectl apply -f calico.yaml部署即可。调用 kubectl get pods -n kube-system发现calico-node都启动正常。

Calico/Flannel容器之间互通的网络方案的验证

我在k8s集群中安装了一个busybox deployment。复制因子为3。

  1. 用pod ip在node上互ping。都可以ping得通。
  2. 在pod节点内部也是可以互ping的。

Kuboard 不能显示计算资源利用率情况

参考文章:https://kuboard.cn/install/faq/metrics-server.html
Kuboard 不能显示计算资源利用率情况是因为Metrics server服务没有安装。安装即可。Metrics server安装成功,apiserver不能访问。报以下错误

failing or missing response from
https://10.96.106.114:443/apis/metrics.k8s.io/v1beta1: Get
https://10.96.106.114:443/apis/metrics.k8s.io/v1beta1: net/http: request

原因:Metrics server安装在了peer154,master节点的apiserver不能访问。原因还是calico没有安装成功。修复之后,Metrics server和apiserver之间的通讯恢复正常

你可能感兴趣的:(k8s安装问题摘要)