Kube状态度量错误:无法创建客户端:... I / O超时

时间:2019-05-14 17:47:11

标签: kubernetes kube-state-metrics

我正在虚拟机中运行Kubernetes,并正在学习基本教程,目前是Add logging and metrics to the PHP / Redis Guestbook example。我正在尝试安装kube-state-metrics:

git clone https://github.com/kubernetes/kube-state-metrics.git kube-state-metrics
kubectl create -f kube-state-metrics/kubernetes

但是失败。

kubectl describe pod --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7
  

...

     

警告不健康的28m(x8超过30m)kubelet,kubernetes-node1就绪探针失败:获取http://192.168.129.102:8080/healthz:拨打tcp 192.168.129.102:8080:connect:连接被拒绝

kubectl logs --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7 -c kube-state-metrics
  

I0514 17:29:26.980707 1 main.go:85]使用默认收集器
  I0514 17:29:26.980774 1 main.go:93]使用所有名称空间
  I0514 17:29:26.980780 1 main.go:129]指标列入黑名单:将以下各项列入黑名单:
  W0514 17:29:26.980800 1 client_config.go:549] --kubeconfig和--master都未指定。使用inClusterConfig。这可能不起作用。
  I0514 17:29:26.983504 1 main.go:169]测试与服务器的通信
  F0514 17:29:56.984025 1 main.go:137]无法创建客户端:与apiserver通信时出错:获取https://10.96.0.1:443/version?timeout=32s:拨打TCP 10.96.0.1:443:输入/输出超时

我不确定此10.96.0.1 IP是否正确。我的虚拟机位于桥接网络10.10.10.0/24和仅主机网络192.168.59.0/24中。初始化Kubernetes时,我使用了参数--pod-network-cidr=192.168.0.0/16,这是我期望的另一个IP范围。但是10.96.0.1看起来并不熟悉。

我是Kubernetes的新手,只是做基础教程,所以我不知道现在该怎么做。如何修复或进一步调查?


编辑-其他信息:

kubectl get nodes -o wide

NAME                STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
kubernetes-master   Ready    master   15d   v1.14.1   10.10.10.11   <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2
kubernetes-node1    Ready    <none>   15d   v1.14.1   10.10.10.5    <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2
kubernetes-node2    Ready    <none>   15d   v1.14.1   10.10.10.98   <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2

我用来初始化集群的命令:

sudo kubeadm init --apiserver-advertise-address=192.168.59.20 --pod-network-cidr=192.168.0.0/16

1 个答案:

答案 0 :(得分:1)

其原因可能是Pod网络与Node网络的重叠-您将Pod网络CIDR设置为192.168.0.0/16,您的仅主机网络将包含在其中,因为其地址为192.168.59.0/24。

要解决此问题,您可以将Pod网络CIDR更改为192.168.0.0/24(不建议这样做,因为这样只会为您的Pod网络提供255个地址

您还可以为Calico使用不同的范围。如果要在正在运行的群集上执行此操作,请使用instruction

我尝试过的另一种方式:

将Calico manifest编辑到不同的范围(例如10.0.0.0/8)-sudo kubeadm init --apiserver-advertise-address=192.168.59.20 --pod-network-cidr=10.0.0.0/8),并在初始化之后应用它。

另一种方法是使用不同的CNI,例如Flannel(使用10.244.0.0/16)。

您可以找到有关CNI插件here范围的更多信息。