【问题标题】:How do we debug networking issues within istio pods?我们如何调试 istio pod 中的网络问题?
【发布时间】:2019-12-26 20:50:40
【问题描述】:

我正在我的 kubernetes 集群中设置 istio。

我下载了 istio-1.4.2 并安装了演示配置文件并进行了手动 sidecar 注入。

但是当我检查 sidecar pod 日志时,我收到以下错误。

2019-12-26T08:54:17.694727Z     error   k8s.io/client-go@v11.0.1-0.20190409021438-1a26190bd76a+incompatible/tools/cache/reflector.go:98: Failed to list *v1beta1.MutatingWebhookConfiguration: Get https://10.96.0.1:443/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations?fieldSelector=metadata.name%3Distio-sidecar-injector&limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refused

这似乎是网络问题,但你能告诉我它到底想做什么吗?

有没有办法获得更多的日志,而不仅仅是“连接被拒绝”?

我们如何验证 istio pod 之间的网络问题。看来我无法在 istio sidecar pod 中运行 'wget'、'curl'、'tcpdump'、'netstat' 等来进一步调试。

kube-system 命名空间中的所有 pod 都工作正常。

【问题讨论】:

  • 10.96.0.1 是您的api-server。你的 k8s 在哪里运行?虚拟机?在任何云上?
  • 它在 RHEL7 虚拟机中运行
  • 我的 istio sidecar pod 没有连接到 kube-api 服务器可能是什么原因
  • 我也可以在节点之间ping,并且防火墙在所有节点中都停止了。也使用 weavenet 插件。

标签: kubernetes istio


【解决方案1】:

检查您的 API Server 服务于 https 流量的端口(由该标志控制 --secure-port int 默认值:6443)。它可能是 6443 而不是 443。 检查 kubeconfig 中 server 的值是多少,您是否能够使用该 kubeconfig 通过 kubectl 连接到您的 kubernetes。

要检查的另一件事是您是否将网络策略附加到阻止出口流量的命名空间。

您可以使用临时容器来调试 sidecar 的问题

https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/

https://github.com/aylei/kubectl-debug

【讨论】:

  • 我可以在配置文件中看到 6443 端口,我没有配置任何地方使用 443 端口,但不知道为什么它使用 443 端口
猜你喜欢
  • 2018-01-26
  • 2022-01-24
  • 2020-05-11
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
  • 2019-08-09
相关资源
最近更新 更多