是否可以访问 pod DNS(使用 dig 或 nslookup)?

is a pod DNS can be reached (with dig or nslookup)?

我知道 pods 被隔离到另一个子网(POD-CIDR、CNI...) 是否有可能到达吊舱(使用工具)?我看到你可以使用 ClusterIP、LB、Externalname,但我无法访问我的 pod 的 IP 地址。

这意味着您的网络有问题。 Kubernetes 对任何网络实现都提出了以下基本要求(除非有意的网络分段策略):

  1. 所有容器都可以在没有 NAT 的情况下与所有其他容器通信
  2. 所有节点都可以在没有 NAT 的情况下与所有容器通信(反之亦然)
  3. 容器自己看到的 IP 与其他人看到的 IP 相同

https://kubernetes.io/docs/concepts/cluster-administration/networking/

假设您为 pod(部署)定义了一个服务,您可以使用 kubectl 将本地端口转发到该服务。例如:

$ kubectl port-forward redis-service 6379:6379 --namespace=default

这将允许您通过本地端口 6379

访问您的 pod/service

Kubernetes Documentation


如果您有兴趣让您的 pod public可用,您最好的资源是定义一个入口。这将允许您将 public DNS 主机名和路径映射到您的内部 kubernetes 服务

Ingress Documentation