繁体   English   中英

为什么无法在 Internet 上访问 Kubernetes 服务外部名称?

[英]Why is Kubernetes service external name not accessible on the internet?

我想从 Internet 访问在 GCP 上的 Kubernetes 中部署的 PostgreSQL 组件。

我为具有外部名称的服务编写了 Pulumi 代码。 该服务如下所示:

import * as k8s from "@pulumi/kubernetes";
import {clusterProvider} from './cluster'
export const postgresService = new k8s.core.v1.Service('postgres-service', {
               metadata: {name: 'postgres'},
               spec: { type: 'ExternalName',
                       externalName: "dev.postgresql.steinko.org",
                       ports: [ {port: 5432 }] ,
                       selector: { app:'postgres'}, 
                     }
           },
          { provider: clusterProvider}
)

当我在 GCP 的服务窗口中单击端点dev.postgresql.steinko.org:5432 ,我收到错误消息:

This site can’t be reachedCheck if there is a typo in dev.postgresql.steinko.org.
DNS_PROBE_FINISHED_NXDOMAIN

问题:

  1. 我必须怎么做才能访问dev.postgresql.steinko.org才能访问我计算机上的数据库?

  2. 还有另一种方法可以访问数据库吗?

ExternalName类型的服务将没有用处。 它的主要目的是作为本地集群服务,在外部托管的服务 例如,使用ExternalName ,您可以将 AWS 服务公开为 GKE 上托管的常规服务。 https://github.com/kubernetes/community/blob/master/contributors/design-proposals/network/service-external-name.md

您可以改为创建LoadBalancer服务。 然后 GCP 将创建一个External LoadBalancer以将您的服务公开到互联网:请参阅https://cloud.google.com/kubernetes-engine/docs/how-to/exposing-apps#creating_a_service_of_type_loadbalancer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM