摘要:我們很高興地宣布,在中,增加了對可配置的私有區域通常稱為存根域和外部上游名稱服務器的支持。例如,下面的配置插入單個存根域和兩個上游名稱服務器。具有存根域后綴的名稱例如將被發送到配置的自定義解析程序。
許多用戶他們想要集成domain name zones(現有域名區域)到Kubernetes DNS 命名空間。例如,混合云用戶可能希望在群集內解析其內部“.corp”域地址。其他用戶可能具有由非Kubernetes服務發現系統(如Consul)組成的區域。我們很高興地宣布,在Kubernetes 1.6中,kube-dns增加了對可配置的私有DNS區域(通常稱為“存根域”)和外部上游DNS名稱服務器的支持。在這篇博文中,我們將介紹如何配置和使用此功能。
Default lookup flow
Kubernetes目前支持使用dnsPolicy標志在每個pod上指定的兩個DNS策略:
“Default”
“ClusterFirst”
如果未明確指定dnsPolicy,則默認使用“ClusterFirst”:
果將dnsPolicy設置為“Default”,則名稱解析配置將從運行pod的node節點繼承。注意:此功能不能與dnsPolicy一起使用:“Default”。
如果將dnsPolicy設置為“ClusterFirst”,則DNS查詢將發送到kube-dns服務。對于以配置的集群域后綴為根的域(上面示例中以“.cluster.local”結尾的任何地址)的查詢將由kube-dns服務應答。所有其他查詢(例如,www.kubernetes.io)將被轉發到從節點繼承的上游名稱服務器。在此功能之前,通常通過使用自定義解析程序替換上游DNS來引入存根域。但是,這導致自定義解析程序本身成為DNS解析的關鍵路徑,其中可伸縮性和可用性問題可能導致群集丟失DNS功能。此特性允許用戶在不接管整個解析路徑的情況下引入自定義解析。
Customizing the DNS Flow
從Kubernetes 1.6開始,集群管理員可以通過為kube-dns提供ConfigMap來指定自定義存根域和上游域名服務器。例如,下面的配置插入單個存根域和兩個上游名稱服務器。根據規定,帶有“.acme.local”后綴的DNS請求將被轉發到偵聽1.2.3.4的DNS。此外,Google Public DNS將為上游查詢提供服務。有關數據格式的一些注意事項,請參閱本節末尾的ConfigMap配置說明。
apiVersion: v1 kind: ConfigMap metadata: name: kube-dns namespace: kube-system data: stubDomains: | {“acme.local”: [“1.2.3.4”]} upstreamNameservers: | [“8.8.8.8”, “8.8.4.4”]
下圖顯示了上述配置中指定的DNS查詢流。將dnsPolicy設置為“ClusterFirst”后,DNS查詢將首先發送到kube-dns中的DNS緩存層。從此處檢查請求的后綴,然后將其轉發到相應的DNS。在這種情況下,具有集群后綴的名稱(例如“.cluster.local”)將發送到kube-dns。具有存根域后綴的名稱(例如“.acme.local”)將被發送到配置的自定義解析程序。最后,與這些后綴中的任何一個都不匹配的請求將被轉發到上游DNS。
下面是一個示例域名和這些域名的查詢目的地的表格:
Domain name | Server answering the query |
kubernetes.default.svc.cluster.local | kube-dns |
foo.acme.local | custom DNS (1.2.3.4) |
widget.com | upstream DNS (one of 8.8.8.8, 8.8.4.4) |
ConfigMap Configuration Notes
stubDomains存根區域(可選)
格式:使用DNS后綴密鑰的JSON映射(例如;“acme.local”)和由DNS IP的JSON數組組成的值。
注意:目標名稱服務本身可能是Kubernetes服務。例如,您可以運行自己的dnsmasq副本以將自定義DNS名稱導出到Cluster DNS名稱空間中。
upstreamNameservers上游命名服務(可選)
格式:DNS IP的JSON數組。
注意:如果指定,則指定的值將替換默認情況下從節點的/etc/resolv.conf獲取的名稱服務
限制:最多可以指定三個上游名稱服務器
示例 #1: 增加 Consul DNS Stub Domain
在該示例中,用戶具有他們希望與kube-dns集成的Consul DNS服務發現系統。 consul域服務器位于10.150.0.1,所有consul名稱的后綴為“.consul.local”。要配置Kubernetes,集群管理員只需創建一個ConfigMap對象,如下所示。注意:在此示例中,集群管理員不希望覆蓋節點的上游名稱服務器,因此他們不需要指定可選的upstreamNameservers字段。
apiVersion: v1 kind: ConfigMap metadata: name: kube-dns namespace: kube-system data: stubDomains: | {“consul.local”: [“10.150.0.1”]}
示例 #2: 替換Upstream Nameservers
在此示例中,集群管理員希望顯式強制所有非集群DNS查找在172.16.0.1處通過自己的名稱服務器。再次,這很容易實現;他們只需要使用upstreamNameservers字段創建一個ConfigMap,指定所需的名稱服務器。
apiVersion: v1 kind: ConfigMap metadata: name: kube-dns namespace: kube-system data: upstreamNameservers: | [“172.16.0.1”]
總結
上文是kube-dns實現的解決方案。而stubDomains 和 upstreamNameservers 在coredns 中 通過 proxy 插件實現。coredns是接下來重點研究的東西。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/33065.html
摘要:我們很高興地宣布,在中,增加了對可配置的私有區域通常稱為存根域和外部上游名稱服務器的支持。例如,下面的配置插入單個存根域和兩個上游名稱服務器。具有存根域后綴的名稱例如將被發送到配置的自定義解析程序。 許多用戶他們想要集成domain name zones(現有域名區域)到Kubernetes DNS 命名空間。例如,混合云用戶可能希望在群集內解析其內部.corp域地址。其他用戶可能具有...
摘要:自定義從開始,集群管理員可以通過為提供的來指定自定義存根域和上游。例如,下面的配置插入一個單獨的存根域和兩個上游。使用存根域后綴例如的名稱將被發送到配置的自定義解析器。 許多用戶想將現有的域名 zones 集成到其 Kubernetes DNS 命名空間中。例如,混合云用戶可能希望解決集群內部的.corp域地址問題。其他用戶可能是有由非 Kubernetes 服務發現系統的 zone(...
摘要:云廠商托管服務的域名解析注意事項使用云廠家提供托管式,的域名解析參數,通過界面創建的話,可能廠商界面沒有開放配置,采用了一些默認值,在使用時候,需要了解清楚廠商提供的默認配置,否則會存在問題。原文鏈接使用云廠商托管時容器域名解析注意事項 云廠商托管 Kubernetes 服務的 Pod 域名解析注意事項 使用云廠家提供托管式Kubernetes,Pod的域名解析參數,通過界面創建Pod...
摘要:系統使用命令手動添加內網虛擬的情況,若申請的內網虛擬為,命令如下使用命令檢查內網虛擬是否刪除成功。系統將內網虛擬寫入配置文件的情況系統將內網虛擬寫入配置文件的情況修改網絡配置文件,命令如下將配置文件段中配置段刪除。 內網VIP本篇目錄申請內網VIP將內網VIP應用于云主機/物理云主機上解除資源中所配置內網虛擬IP釋放VIP使用VIP與Keepalive配置服務高可用申請內網VIP選擇菜單中網...
摘要:配置說明建議后臺關閉進程,以免導致解析失敗。在使用產品時,需要將的主機默認修改為以下配置。下面以北京二的配置為例,介紹不同操作系統下的修改方式。含,修改當前的配置文件修改為配置即可生效。修改修改為以下內容保存退出,即可生效。配置說明建議后臺關閉nscd、systemd-resolved進程,以免導致UDNS解析失敗。在使用UDNS產品時,需要將UHost的主機默認DNS修改為以下配置。北京二...
閱讀 1837·2021-09-23 11:21
閱讀 698·2019-08-30 15:55
閱讀 832·2019-08-29 15:40
閱讀 528·2019-08-29 12:56
閱讀 3158·2019-08-26 12:00
閱讀 3552·2019-08-23 18:24
閱讀 2246·2019-08-23 17:08
閱讀 1637·2019-08-23 17:03