關於阿里雲上K8S叢集部署高可靠的IngressController遇到的小坑

yeguanqing發表於2018-08-23

由於最近我司將一些上層應用逐漸遷移到K8S叢集裡面,關於一些應用資源的訪問預設採用的是容器的服務,這裡服務的負載均衡整合了阿里雲SLB,預設是四層的一個負載,當前只支援http無法支援https
基於以上問題以及業界玩K8S的都採用Ingress形式,所以就阿里雲預設建立的Ingress進行了調研,主要是針對兩個問題:
1,配置安全路由服務證書問題
2,部署高可靠的Ingress Controller問題
以上兩個問題,阿里雲官方都有支援文件,只是這兩個文件都有一些小坑需要大家注意,接下來基於這兩個問題的小坑進行展開描述:

問題一:阿里雲官方文件如下連結:
https://help.aliyun.com/document_detail/53770.html?spm=a2c4g.11186623.6.634.QsDUbP
點選本文導讀目錄->配置安全的路由服務 這一章節;
通過這個阿里雲官方文件建立的secret一般現在很多瀏覽器是不可信任的證書,而且每次ingress服務都需要重新建立;所以需要我們們官方的申請一個證書,比如說申請個二級域名*.alitest.com,然後下載對應的證書檔案crt和pem,然後再建立一個secret,命令如下:
root@master # kubectl create secret tls alitest.com –key .key –cert .pem
這樣申請有什麼區別呢?
第一,是可信任的證書
第二,這個二級域名的證書可以通配你這個域名下的所有ingress服務的host

問題二:阿里雲官方文件如下連結:
https://help.aliyun.com/document_detail/86750.html?spm=5176.11065259.1996646101.searchclickresult.7c785098kDslht
點選本文導讀目錄->步驟3 更新 Ingress SLB 服務
針對於容器應用服務裡面的nginx-ingress-lb這個名稱,後面點選更新後的它的內部端點都會發生變化,這個時候ingress預設整合的SLB監聽的埠就需要手動的更改,否則就顯示異常,有兩種方式可以檢視
1,通過K8S的dashborad
點選容器服務–應用–服務–檢視nginx-ingress-lb的內部端點對應關係
2,登入K8S的系統通過命令檢視
root@master #kubectl get svc -n kube-system
看到PORT(S)選項對應的80和443埠關係

所以當你根據阿里雲官方文件完成所有步驟的時候一定要記得更新Ingress SLB的監聽埠號。

以上兩點均屬本人實際操作過程中遇到的小坑,如有描述不清楚的資訊,請隨時致電18601146741進行溝通,完畢,謝謝。


相關文章