【问题标题】:How do I fix a dial tcp 10.96.0.1:443: i/o timeout error for Operator pod installed via helm-rook?如何修复通过 helm-rook 安装的 Operator pod 的 dial tcp 10.96.0.1:443: i/o timeout 错误?
【发布时间】:2020-02-26 18:44:39
【问题描述】:

我几乎用这个命令添加了 repo

helm repo add rook-stable https://charts.rook.io/stable

然后我运行命令

helm install --namespace rook-ceph-system <NAME> <CHART VERSION>

操作符一开始是创建的,后来变成了crashloopbackoff错误。

下面是日志。

kubectl logs  rook-ceph-operator-5bdc9cfcb9-qml5n
2020-02-26 17:42:38.863455 I | rookcmd: starting Rook v0.9.3 with arguments '/usr/local/bin/rook ceph operator'
2020-02-26 17:42:38.863570 I | rookcmd: flag values: --alsologtostderr=false, --help=false, --log-level=INFO, --log_backtrace_at=:0, --log_dir=, --logtostderr=true, --mon-healthcheck-interval=45s, --mon-out-timeout=5m0s, --stderrthreshold=2, --v=0, --vmodule=
2020-02-26 17:42:39.056154 I | cephcmd: starting operator
failed to get pod. Get https://10.96.0.1:443/api/v1/namespaces/default/pods/rook-ceph-operator-5bdc9cfcb9-qml5n: dial tcp 10.96.0.1:443: i/o timeout

知道如何解决这个问题吗?

【问题讨论】:

  • 10.96.0.1:443 是 API 服务器的默认地址,这意味着您的安装无法与控制平面通信。有几件事可能会导致这种情况——你能分享更多关于你的设置的信息吗?例如:您是否已验证您的 CNI 提供程序(例如 flannel、weave、calico 等)已安装并正常工作?你的kube-proxy 豆荚健康吗?如果您 kubectl exec 进入另一个 pod 并尝试访问 API 服务器会发生什么?
  • @JesseStuart 感谢您的回复,非常感谢。我正在使用 calico,当我运行 kubectl get pods --all-namespaces 时,所有 kube-system 都在运行。在我的 .kube 配置中,我的 API 服务器地址是 192.168.50.10:6443。我可以将 API 服务器从 10.96.0.1:443 更改为 192.168.50.10:6443 吗?另外值得一提的是,我没有使用云提供商,而是在裸机上使用 k8s。集群 IP 将不起作用。
  • 关于您的问题的任何更新?因为我的情况完全一样。我不知道为什么它会尝试调用 10.96.0.1:443 上的 API 服务器

标签: kubernetes-helm ceph cephfs rook-storage kubernetes-rook


【解决方案1】:

几乎相同的设置也有同样的问题。 Kubernetes 集群部署了 3 个虚拟机(通过 vagrant)。 Calico 作为 pod 网络。

我纠正的事情: 在每个 /etc/hosts 中声明 3 个 VM 主机名

192.168.100.51  kube1   kube1
192.168.100.52  kube2   kube2
192.168.100.53  kube3   kube3

更改 pod-network-cidr :

kubeadm init --apiserver-advertise-address=192.168.100.51 --apiserver-cert-extra-sans=192.168.100.51 --node-name kube1 --pod-network-cidr=10.10.0.0/16

在 calico 中使用相同的 pod-cidr:

- name: CALICO_IPV4POOL_CIDR
  value: "10.10.0.0/16"

Rook 部署:

git clone --single-branch --branch release-1.2 https://github.com/rook/rook.git
cd cluster/examples/kubernetes/ceph
kubectl create -f common.yaml
kubectl create -f operator.yaml
kubectl create -f cluster-test.yaml

现在 Ceph 集群已启动并运行。

【讨论】:

  • 我遇到了一些问题。我参考并修复了 Kubernetes 集群配置。然后它工作正常。我猜 pod-network-cidr 是这个问题的根本原因。但是,我不知道究竟是为什么? calico cni pod-network-cidr 的指南是 192.168.0.0/16。它看起来像与节点 ip 范围的冲突。但我不确定我是否遇到了 flannel network cni(10.240.0.0/16) 的类似问题。
猜你喜欢
  • 1970-01-01
  • 2021-09-24
  • 2020-01-11
  • 2019-08-21
  • 2021-06-11
  • 2021-01-23
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多