【问题标题】:Why /var/lib/cni/networks is null after creating a kubernetes cluster?为什么创建 kubernetes 集群后 /var/lib/cni/networks 为空?
【发布时间】:2020-11-24 08:46:19
【问题描述】:

使用 Calico、CoreDNS 安装了一个 kubernetes 集群。

检查收到的 CoreDNS 的事件消息

Readiness probe failed: HTTP probe failed with statuscode: 503

/var/lib/cni/networks/ 目录下没有任何内容。为什么?如何解决?

即使所有 pod 的状态都是 Running,但担心它的健康状况。

日志

# kubectl logs coredns-1308140hfw -n kube-system
[INFO] plugin/ready: Still waiting on: "kubernetes"
.:53
[INFO] plugin/reload: Running configuration MD5 = 20328084ha6966e76816bcd928foa
CoreDNS-1.7.0
linux/amd64, go1.14.4, f59c03d
[INFO] plugin/ready: Still waiting on: "kubernetes"
[INFO] plugin/ready: Still waiting on: "kubernetes"
I0804 08:18:03.874045       1 trace.go:116] Trace[336122540]: "Reflector ListAndWatch" name:pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125 (started: 2020-08-04 08:17:33.872753993 +0000 UTC m=+0.038838328) (total time: 30.001059939s):
Trace[336122540]: [30.001059939s] [30.001059939s] END
E0804 08:18:03.874108       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1.Endpoints: Get "https://[IPv6]:443/api/v1/endpoints?limit=500&resourceVersion=0": dial tcp [IPv6]:443: i/o timeout
I0804 08:18:03.874047       1 trace.go:116] Trace[208240456]: "Reflector ListAndWatch" name:pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125 (started: 2020-08-04 08:17:33.872755558 +0000 UTC m=+0.038839930) (total time: 30.001213767s):
Trace[208240456]: [30.001213767s] [30.001213767s] END
E0804 08:18:03.874137       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1.Namespace: Get "https://[IPv6]:443/api/v1/namespaces?limit=500&resourceVersion=0": dial tcp [IPv6]:443: i/o timeout
I0804 08:18:03.874214       1 trace.go:116] Trace[1106410694]: "Reflector ListAndWatch" name:pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125 (started: 2020-08-04 08:17:33.872753715 +0000 UTC m=+0.038838086) (total time: 30.001438405s):
Trace[1106410694]: [30.001438405s] [30.001438405s] END
E0804 08:18:03.874248       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1.Service: Get "https://[IPv6]:443/api/v1/services?limit=500&resourceVersion=0": dial tcp [IPv6]:443: i/o timeout

【问题讨论】:

  • 你能用 coredns pod 日志更新你的问题吗?
  • @acid_fuji 我添加了日志。
  • 这个就绪探测失败了一次还是经常失败?
  • @acid_fuji 我只想一次。

标签: kubernetes cni


【解决方案1】:

就绪探测如何工作?

有时,应用程序暂时无法提供流量。为了 例如,应用程序可能需要加载大量数据或配置 启动过程中的文件。在这种情况下,您不想杀死 应用程序,但您也不想向它发送请求。 Kubernetes 提供就绪探测来检测和缓解这些情况。一种 带有容器报告它们尚未准备好的 pod 没有收到 通过 Kubernetes 服务的流量。

当 Pod 启动时,Kubernetes 可以配置为在执行第一次就绪检查之前等待可配置的时间过去。之后,它会定期调用探针并根据就绪探针的结果进行操作。如果一个 pod 报告它没有准备好,它就会从服务中删除。如果 pod 再次准备就绪,则会重新添加。

这意味着在您的情况下,您的 coreDNS pod 并未完全运行,但 Kubernetes 已经开始发送探测以检查它的 readiness

多亏了这些探测,当您有几个副本时,Kubernetes 只会将流量导向那些健康的(探测成功)。

附言。我的/var/lib/cni/networks/ 目录也是空的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 2019-06-12
    • 2019-04-22
    • 2023-03-11
    • 2018-04-15
    • 2021-10-05
    • 1970-01-01
    • 2020-01-17
    相关资源
    最近更新 更多