K8s 中如何访问无外部 IP 的 LoadBalancer 服务?
在 k8s 中访问无外部 ip 的 loadbalancer 服务
使用 loadbalancer 类型的 k8s 服务时,如果没有外部 ip,可以通过以下方法访问它的后端容器:
1. 创建 nodeport 类型的 service
创建 nodeport 服务,它会将一个端口映射到集群中每个节点的一个端口上。然后可以通过
2. 配置 metallb 负载均衡器
metallb 是一个 k8s 附加组件,负责为无外部 ip 的 loadbalancer 服务分配 ip 地址。它提供了与 loadbalancer 相似的功能,但更易于管理。
无法解析外部域名
如果容器无法解析外部域名,可以检查 coredns 配置。coredns 是 k8s 中的 dns 服务器,如下所示:
apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | .:53 { forward . /etc/resolv.conf cache 30 loop reload keywords { per-request } }
此配置将上游 dns 解析委托给节点的 dns 配置,从而允许 pod 解析外部域名(前提是 pod 可以访问外部网络)。
以上就是K8s 中如何访问无外部 IP 的 LoadBalancer 服务?的详细内容,更多请关注硕下网其它相关文章!