Kubernetes DNS服务

tech2022-11-30  99

Kubernetes中kube-dns系统组件唯一是基于deployment资源管理器,并通过Service来通讯,很多应用前提都是要基于DNS组件来完成

DNS A记录的自动产生

基于Service NAME字段产生A记录,格式:svc名称.当前命名空间.当前集群的域名(默认就是svc.cluser.local ),比如:busybox1.default.svc.cluster.local基于Pod的主机名产生A记录,需要基于hostname和subdomain指定,格式:hostname.subdomain.命名空间.svc.cluster.local ,比如:busybox1.subdomain.default.svc.cluster.local,但是无用,pod的生命周期问题根本无法使用

DNS策略类型

None 无任何策略,也就是自定义DNSDefault 使用节点DNS继承,注意这个不是系统默认选项ClusterFirst 集群 DNS,这个才是默认选项,也就是不配置dnsPliocy就默认为集群DNSClusterFirstWithHostNet ,设置了hostNetwork,还需要使用集群DNS功能,写其他类型默认强制变成Default

None

apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: hostname: busybox1 subdomain: subdomain containers: - image: busybox args: - sleep - "30000" name: busybox restartPolicy: Always dnsPolicy: None dnsConfig: nameservers: #注意要加s - 114.114.114.114 验证 kubectl exec busybox cat /etc/resolv.conf

Default

apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: hostname: busybox1 subdomain: subdomain containers: - image: busybox args: - sleep - "30000" name: busybox restartPolicy: Always dnsPolicy: Default #更简单,修改策略就行,ClusterFirst一样 验证 kubectl exec busybox cat /etc/resolv.conf

ClusterFirst

ClusterFirstWithHostNet

apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: hostname: busybox1 subdomain: subdomain containers: - image: busybox args: - sleep - "30000" name: busybox restartPolicy: Always dnsPolicy: ClusterFirstWithHostNet hostNetwork: true 验证 kubectl exec busybox cat /etc/resolv.conf

最新回复(0)