1. 应用的DNS管理

1.1.1. Pod的域名解析策略

[root@linux-node1 ~]# kubectl run dns-test --generator=run-pod/v1 --image=alpine --replicas=1 sleep 360000
pod/dns-test created

查看Pod

[root@linux-node1 ~]# kubectl get pod dns-test
NAME       READY   STATUS    RESTARTS   AGE
dns-test   1/1     Running   0          79s

Pod默认的DNS配置

[root@linux-node1 ~]# kubectl exec -it dns-test /bin/sh
/ # cat /etc/resolv.conf 
nameserver 10.1.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

如何访问Service名称

/ # ping -c 3 wordpress-service.default.svc.cluster.local
PING wordpress-service.default.svc.cluster.local (10.1.92.244): 56 data bytes
64 bytes from 10.1.92.244: seq=0 ttl=64 time=0.074 ms
64 bytes from 10.1.92.244: seq=1 ttl=64 time=0.141 ms
64 bytes from 10.1.92.244: seq=2 ttl=64 time=0.187 ms

--- wordpress-service.default.svc.cluster.local ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.074/0.134/0.187 ms

DNS查询策略

[root@linux-node1 ~]# kubectl get pod dns-test -o yaml | grep dnsPolicy
  dnsPolicy: ClusterFirst
  • Default: Pod从其运行的节点中继承名称解析配置。
  • ClusterFirst:(默认策略)与配置的群集域名后缀不匹配的任何DNS查询都将转发到从节点继承的上游名称服务器。
  • ClusterFirstWithHostNet: 如果Pod使用了hostNetwork(例如Ingress Controller Treafik就是使用了hostNetwok),应显式设置其DNS策略为“ClusterFirstWithHostNet”。
  • None: 它允许Pod忽略Kubernetes环境中的DNS设置,这时候会使用Pod Spec中的dnsConfig字段提供的DNS设置。
Copyright © 赵班长@新运维社区 2019 all right reserved,powered by Gitbook该文件修订时间: 2024-06-18 22:25:30

results matching ""

    No results matching ""