来自kubernetes主机的DNS解析

来自kubernetes主机的DNS解析,kubernetes,Kubernetes,kubernetes具有服务或pod的DNS解析。例如,如果我登录到pod,我可以通过DNS名称访问服务或pod,如mysvc.default.svc 但我如何通过DNS直接从Kubernetes主机访问它们 目前,我必须获得IP地址才能访问该服务,这很不方便 谢谢 您不能从kubernetes外部(即主机)使用kubernetes群集DNS(CoreDNS)。您应该通过入口或负载平衡器或节点端口类型服务公开pod,并配置外部DNS提供商以将主机名解析为IP。您不能从kubernetes外部使用

kubernetes具有服务或pod的DNS解析。例如,如果我登录到pod,我可以通过DNS名称访问服务或pod,如
mysvc.default.svc

但我如何通过DNS直接从Kubernetes主机访问它们

目前,我必须获得IP地址才能访问该服务,这很不方便


谢谢

您不能从kubernetes外部(即主机)使用kubernetes群集DNS(CoreDNS)。您应该通过入口或负载平衡器或节点端口类型服务公开pod,并配置外部DNS提供商以将主机名解析为IP。

您不能从kubernetes外部使用CoreDNS。您应该通过入口或LoadBalancer或NodePort类型服务公开pod,并配置外部DNS提供程序将主机名解析为IP地址
Arghya Sadhu
answers

另一种方法是将外部IP用于您的服务,并直接与公共IP通信

这里有一些例子:

  • 外部IP

  • 我不认为你可以,这些DNS只在集群中可见。若您希望主机能够解决此问题,则需要指向同一DNS服务器
    apiVersion: v1
    kind: Service
    metadata:
      name: postgres
      labels:
        app: postgres
    spec:
      type: ClusterIP
      ports:
       - port: 5432
         targetPort: 5432
      selector:
       app: postgres
      externalIPs:
        - <YOUR_PUBLIC_IP_ADDRESS>
    
    apiVersion: v1
    kind: Service
    metadata:
      name: postgres
      labels:
        app: postgres
    spec:
      type: NodePort
      ports:
       - port: 5432
         targetPort: 5432
      selector:
       app: postgres