是否可以访问 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 对任何网络实现都提出了以下基本要求(除非有意的网络分段策略):
- 所有容器都可以在没有 NAT 的情况下与所有其他容器通信
- 所有节点都可以在没有 NAT 的情况下与所有容器通信(反之亦然)
- 容器自己看到的 IP 与其他人看到的 IP 相同
https://kubernetes.io/docs/concepts/cluster-administration/networking/
假设您为 pod(部署)定义了一个服务,您可以使用 kubectl 将本地端口转发到该服务。例如:
$ kubectl port-forward redis-service 6379:6379 --namespace=default
这将允许您通过本地端口 6379
访问您的 pod/service
如果您有兴趣让您的 pod public可用,您最好的资源是定义一个入口。这将允许您将 public DNS 主机名和路径映射到您的内部 kubernetes 服务
我知道 pods 被隔离到另一个子网(POD-CIDR、CNI...) 是否有可能到达吊舱(使用工具)?我看到你可以使用 ClusterIP、LB、Externalname,但我无法访问我的 pod 的 IP 地址。
这意味着您的网络有问题。 Kubernetes 对任何网络实现都提出了以下基本要求(除非有意的网络分段策略):
- 所有容器都可以在没有 NAT 的情况下与所有其他容器通信
- 所有节点都可以在没有 NAT 的情况下与所有容器通信(反之亦然)
- 容器自己看到的 IP 与其他人看到的 IP 相同
https://kubernetes.io/docs/concepts/cluster-administration/networking/
假设您为 pod(部署)定义了一个服务,您可以使用 kubectl 将本地端口转发到该服务。例如:
$ kubectl port-forward redis-service 6379:6379 --namespace=default
这将允许您通过本地端口 6379
访问您的 pod/service如果您有兴趣让您的 pod public可用,您最好的资源是定义一个入口。这将允许您将 public DNS 主机名和路径映射到您的内部 kubernetes 服务