azure - 从 Azure 中的虚拟机连接到集群服务

标签 azure kubernetes virtual-machine azure-aks

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

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

谢谢!

最佳答案

It's possible to do that using the host name or a private IP?

绝对是!

在 Kubernetes 中,service用于与 pod 进行通信。

Kubernetes 中默认的服务类型是 ClusterIP

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

要在 kubernetes 集群外部公开 Pod,您需要 NodePort 的 k8s 服务或 LoadBalancer 类型。

  • NodePort:在静态端口(NodePort)上公开每个节点 IP 上的服务。一个ClusterIP服务,到哪了NodePort服务路线是自动创建的。您将能够通过请求 <NodeIP>:<NodePort> 从集群外部联系 NodePort 服务.

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

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

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

acessing Kubernetes Pods from Outside of cluster 有一篇非常好的文章.

希望有帮助。

关于azure - 从 Azure 中的虚拟机连接到集群服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60497193/

相关文章:

azure - 向无状态 Service Fabric 应用程序添加应用程序洞察

c# - ASP.NET ActionResult 对本地主机和托管的 Azure Web 服务提供不同的响应

docker - Nginx 返回错误的内容类型

kubernetes - Kubernetes:比较Prometheus/PromQL中Pod的RSS内存使用情况和Pod内存需求

docker - 在带有tls的k8s中,使用http而不是https进行重定向,以通过入口传递

powershell - 如何查找 Azure 区域中可用的最大更新域/故障域

azure - WADDiagnosticInfrastructureLogsTable 失败 ERROR_WINHTTP_AUTODETECTION_FAILED (12180)

android - Windows 7 中 Ubuntu VM 中 Android 模拟器中的黑屏

virtual-machine - 陷阱和模拟虚拟化是什么意思?

virtual-machine - 无法从另一个vmware guest ping vmware guest