1. 程式人生 > >使用ExternalDNS自動化DNS配置

使用ExternalDNS自動化DNS配置

嘗試 一個 自動化 ace wid 模板 water ext poc

Kubernetes社區的生態繁榮和該領域技術的快速茁壯發展,已經是眾所周知。Kubernetes領域有太多強大的、創新的技術產品,而最近引起我註意的項目是ExternalDNS。這是在近期的POC期間客戶主動咨詢起來的,我承諾客戶會嘗試一下ExternalDNS子項目,且使用後發現它真的令人印象深刻。



ExternalDNS子項目


ExternalDNS子項目(孵化器流程已被棄用)是由sig-network贊助並由Tim Hockin倡導的,旨在自動配置雲DNS提供商。這很重要,因為它進一步支持基礎架構自動化,用戶可以在應用程序部署的同時直接完成DNS配置。

傳統企業部署模型,通常是由多個孤立業務單元,來處理部署過程的不同部分。但帶有ExternalDNS的Kubernetes不同於傳統企業部署模型,它可以自動完成此過程的這一部分工作。有時候有可能會出現這種不好的情況:一部分軟件已準備就緒,但它卻必須等待另一個業務部門手動配置DNS。而有了ExternalDNS,這一潛在問題就被解決了。

通過ExternalDNS,組織團隊可實現自動化和共同責任協作,而這將避免手動配置的錯誤,並使各方都能夠更有效地將其產品推向市場。


AKS上的ExternalDNS配置和部署


我曾作為軟件開發人員在.NET領域有過多年的工作經驗。微軟開發人員社區在我心中一直有一個特殊的位置,過去幾年以來我參加過不少費城地區的Azure用戶meetup,分享如何通過ACS(Azure Container Service)和AKS(Azure Kubernetes Service)使用Kubernetes on Azure。恰巧的是,向我咨詢ExternalDNS的用戶也正是在選擇了Azure作為其IaaS產品。

下文是我準備的在AKS集群上啟動ExternalDNS的分步說明和幫助程序代碼。即使您使用的是其他公有雲上的托管的Kubernetes,本教程依然適用


先決條件


登錄Azure AD,必要情況下請設置訂閱。


先決幾點註意事項


1、請註意,本文檔中的外部模板文件使用了許多可選設置。

2、它也在debug級別日誌中,因此您也可以自行進行troubleshooting。


在Azure AKS或Azure IaaS上設置ExternalDNS


1、創建Azure DNS記錄

技術分享圖片

2、根據您的註冊商的需要委派DNS


3、創建服務主體以代表Kubernetes行事

技術分享圖片

4、創建你的雲提供商配置

技術分享圖片

5、使用雲提供商配置來創建一個Kubernetes秘鑰。


技術分享圖片

6、如果你使用的是Rancher配置的Azure IaaS Backed Clusters,從集群中刪除ingress controller。

技術分享圖片

註意:如果您是使用Rancher中的 AKS配置的集群,則不會提供ingress controller。

7、安裝nginx ingress controller並為ExternalDNS配置它。創建ingress-nginx部署和服務。


技術分享圖片

8、由於在基於Rancher的Kubernetes集群上默認啟用了RBAC,因此可以從下面的腳本創建名為externaldns.yaml的yaml文件,或者使用此repo中的externaldns-template.yaml文件。


技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片


驗證


技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片



1、以與部署ExternalDNS相同的方式在ingress中創建nginx服務


技術分享圖片


2、創建nginx-ingress controller


技術分享圖片


3、稍等幾分鐘

4、檢查一下是否已有record被創建出來

技術分享圖片

技術分享圖片


5、檢查日誌


技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片



您還可以在ExternalDNS的repo中了解更多信息:

https://github.com/kubernetes-incubator/external-dns


如希望對原文中的代碼有更深入的了解,請猛戳這裏:

https://github.com/JasonvanBrackel/kubernetes-external-dns-in-rancher#prerequisites


使用ExternalDNS自動化DNS配置