如何使用群集 IP 连接到数据库服务


这可能是

非常基本的问题,但我在任何地方都找不到,所以我很抱歉。

我已经在Google Kubernetes Engine上使用helm安装了postresql

$ helm install --name staging stable/postgresql

我的部署:

$ kubectl get deployments
NAME                 DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
staging-backend      7         7         7            0           3h
staging-postgresql   1         1         1            0           3h

和我的服务:

$ kubectl get services
NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
staging-postgresql   ClusterIP   xx.x.xxx.xx   <none>        5432/TCP   3h

我尝试使用群集 IP 将staging-backendstaging-postgresql连接,但它似乎不起作用。还是我应该使用外部 IP..??我在哪里可以找到外部 IP..??

谢谢。。

在 Kubernetes 中,您有两种选择来查找服务的 IP。

  1. 环境变量

Kubernetes 自动生成环境变量,其中包含访问服务所需的所有数据。如果在 Pod 中运行env命令,则应看到类似于以下内容的输出:

KUBERNETES_SERVICE_PORT=443
STAGING_POSTGRESQL_SERVICE_HOST=10.0.162.149
KUBERNETES_SERVICE_HOST=10.0.0.1
STAGING_POSTGRESQL_SERVICE_PORT=5432
KUBERNETES_SERVICE_PORT_HTTPS=443

在应用中使用STAGING_POSTGRESQL_SERVICE_HOST环境变量来获取服务的 IP。

  1. 域名系统(首选(

Kubernetes 会自动为所有服务分配 DNS 名称。使用您的服务名称而不是 IP,它将解析为服务 IP。

例如,在任何 pod 中运行ping staging-postgresql

您可以在此处阅读有关使用服务的更多信息。

最新更新