我试图找出为什么我的 kube-dns 无法解析外部 URL,它似乎是由缺少端点引起的,如下所述:
(我正在使用 Google Kubernetes 引擎,并且使用 Google Cloud 控制台创建集群。)
https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/(DNS 端点是否暴露部分)
我可以看到端点没有暴露,这可能是导致我出现问题的原因。
但是,这里的文档不是很清楚:
如果您没有看到端点,请参阅调试服务文档中的端点部分。
我尝试研究它,但不确定以下内容:
- 为什么
endpoints
不自动创建?我们kube-dns
在不同的集群中工作,endpoints
默认情况下它们就存在于那里。 - 我是否需要手动添加或者是否可以用这些
endpoints
重新创建整个服务?kube-dns
endpoints
- 手动添加时,如何选择正确的IP地址?
- 我需要告诉其他 kubernetes 服务使用这些吗
endpoints
?
这是服务定义:
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"addonmanager.kubernetes.io/mode":"Reconcile","k8s-app":"kube-dns","kubernetes.io/cluster-service":"true","kubernetes.io/name":"KubeDNS"},"name":"kube-dns","namespace":"kube-system"},"spec":{"clusterIP":"10.87.0.10","ports":[{"name":"dns","port":53,"protocol":"UDP"},{"name":"dns-tcp","port":53,"protocol":"TCP"}],"selector":{"k8s-app":"kube-dns"}}}
creationTimestamp: "2019-09-16T13:49:57Z"
labels:
addonmanager.kubernetes.io/mode: Reconcile
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
kubernetes.io/name: KubeDNS
name: kube-dns
namespace: kube-system
resourceVersion: "468357079"
uid: deea9ec5-d888-11e9-9024-42010a840025
spec:
clusterIP: 10.87.0.10
clusterIPs:
- 10.87.0.10
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: dns
port: 53
protocol: UDP
targetPort: 53
- name: dns-tcp
port: 53
protocol: TCP
targetPort: 53
selector:
k8s-app: kube-dns
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}