首页 > 解决方案 > 从 Azure 中的虚拟机连接到集群服务

问题描述

我在 Azure 中创建了一个 VM,我想连接到 mariadb 服务(来自集群节点的 mariadb.mariadb.svc.cluster.local)

可以使用主机名或私有 IP 来做到这一点吗?

谢谢!

标签: azurekubernetesvirtual-machineazure-aks

解决方案


可以使用主机名或私有 IP 来做到这一点吗?

绝对地!

在 Kubernetes 中,该服务 用于与 pod 进行通信。

Kubernetes 中默认的服务类型是 ClusterIP

ClusterIP 是只能从 Kubernetes 集群内部访问的内部IP 地址。ClusterIP 使运行在 pod 中的应用程序能够访问该服务。

要在 kubernetes 集群之外公开 Pod,您将需要NodePortLoadBalancer类型的 k8s 服务。

  • NodePort:在静态端口(NodePort)上公开每个节点 IP 上的服务。ClusterIPService 路由到的ServiceNodePort是自动创建的。您可以通过请求从集群外部联系 NodePort 服务<NodeIP>:<NodePort>

请注意,需要将外部IP 地址分配给集群中的一个节点,以及允许进入该端口的流量的防火墙规则。因此,Kubernetes 节点(附加外部 IP 地址)上的 kubeproxy 将将该端口代理到服务选择的 pod。

  • LoadBalancer:使用云提供商的负载均衡器向外部公开服务。自动创建外部负载均衡器路由到的服务NodePortClusterIP

或者,如果您需要访问 HTTP/S(这里不是这种情况,但仍然值得一提),可以使用Ingress

有一篇关于从集群外部访问 Kubernetes Pod的非常好的文章。

希望有帮助。


推荐阅读