提问者:小点点

从kubernetes主机DNS分辨率


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

但是我如何通过直接从库伯内特斯主机DNS访问它们?

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

谢谢!


共2个答案

匿名用户

您不能从外部kubernetes(即主机)使用kubernetes集群DNS(CoreDNS)。您应该通过ingress或loadbalancer或NodePort类型服务公开pod,并配置外部DNS提供程序以将主机名解析为IP。

匿名用户

您无法从外部kubernetes使用CoreDNS。您应该通过入口或LoadBalancer或NodePort类型服务公开pod,并配置外部DNS提供程序以在Arghya Sadhu回答时将主机名解析为IP。

其他方法使用外部IP您的服务并直接与您的公共IP通信。

这里有一些例子:

  1. 外部IP
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