Kubernetes对service或pod有DNS的解析。例如,如果我登录到pod,我可以通过DNS名称访问服务或pod,例如mysvc. default.svc
。
但是我如何通过直接从库伯内特斯主机DNS访问它们?
目前,我必须获得IP地址才能访问该服务,这很不方便。
谢谢!
您不能从外部kubernetes(即主机)使用kubernetes集群DNS(CoreDNS)。您应该通过ingress或loadbalancer或NodePort类型服务公开pod,并配置外部DNS提供程序以将主机名解析为IP。
您无法从外部kubernetes使用CoreDNS。您应该通过入口或LoadBalancer或NodePort类型服务公开pod,并配置外部DNS提供程序以在Arghya Sadhu
回答时将主机名解析为IP。
其他方法使用外部IP您的服务并直接与您的公共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