日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

DNS為Kubernetes集群內的工作負載提供域名解析服務。本文主要介紹Kubernetes集群中DNS域名解析原理和ACK集群中默認內置的DNS服務器CoreDNS。在Kubernetes集群中,CoreDNS扮演著至關重要的角色,它實現了服務發現的功能,使得集群內部的服務可以通過服務名來互相訪問,無需知道具體的IP地址。CoreDNS的強大之處在于其插件化架構,可以根據需求配置不同的插件以實現各種DNS相關的功能

Kubernetes集群中DNS域名解析原理

DNS解析原理圖

image

序號

描述

業務Pod(Pod Client)試圖訪問Nginx服務(Service Nginx)時,先會請求本地DNS配置文件(/etc/resolv.conf)中指向的DNS服務器(nameserver 172.21.0.10,即Service kube-dns)獲取服務IP地址,得到解析結果為172.21.0.30的IP地址。

業務Pod(Pod Client)再直接發起往該IP地址的請求,請求最終經過Nginx服務(Service Nginx)轉發到達后端的Nginx容器(Pod Nginx-1和Pod Nginx-2)上。

關于集群DNS域名解析原理的詳細說明,請參見DNS策略配置和域名解析說明

域名解析配置

ACK集群中kubelet的啟動參數有--cluster-dns=<dns-service-ip>--cluster-domain=<default-local-domain>,這兩個參數分別被用來設置集群DNS服務器的IP地址和主域名后綴。

ACK集群默認部署了一套CoreDNS工作負載,并通過kube-dns的服務名暴露DNS服務。ACK部署的CoreDNS工作負載后端是兩個名為coredns的Pod,集群會根據Pod內的配置,將域名請求發往集群DNS服務器獲取結果。Pod內的DNS域名解析配置文件為/etc/resolv.conf,文件內容如下。

nameserver xx.xx.0.10
search kube-system.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

參數

描述

nameserver

定義DNS服務器的IP地址。

search

設置域名的查找后綴規則,查找配置越多,說明域名解析查找匹配次數越多。ACK集群匹配有kube-system.svc.cluster.localsvc.cluster.localcluster.local3個后綴,最多進行8次查詢才能得到正確解析結果,因為集群里面進行IPv4和IPv6查詢各四次。

options

定義域名解析配置文件選項,支持多個KV值。例如該參數設置成ndots:5,說明如果訪問的域名字符串內的點字符數量超過ndots值,則認為是完整域名,并被直接解析;如果不足ndots值,則追加search段后綴再進行查詢。

根據上述Pod內的配置,集群會將域名請求(集群內部定義的服務或是集群外部域名)查詢發往集群DNS服務器獲取結果。

CoreDNS介紹

CoreDNS是Kubernetes集群中負責DNS解析的組件,能夠支持解析集群內部自定義服務域名和集群外部域名。CoreDNS具備豐富的插件集,在集群層面支持自建DNS、自定義hosts、CNAME、rewrite等需求。與Kubernetes一樣,CoreDNS項目由CNCF托管。關于CoreDNS的更多信息,請參見CoreDNS: DNS and Service Discovery

ACK集群使用CoreDNS負責集群的服務發現,您可以根據不同的使用場景配置CoreDNS以及使用CoreDNS提升集群的DNS QPS性能:

說明

您還可以在ACK集群中部署Node Local DNS提升服務發現的穩定性和性能,Node Local DNS通過在集群節點上作為DaemonSet運行DNS緩存代理來提高集群的DNS性能。關于如何在集群中部署Node Local DNS的具體步驟,請參見使用NodeLocal DNSCache