
本教程為系列教程,會陸續介紹如何在阿裡雲上實作kubernetes的七層負載均衡,并支援諸如健康檢查,帶寬控制,ssl,白名單管理,三方權限驗證,限流,url重寫等特性。
對kubernetes service及ingress有一定的了解。
對nginxingresscontroller有一定的了解。
阿裡雲賬号
使用hostnetwork的模式部署兩個nginxingresscontroller pod作為七層負載均衡服務,然後為該nginx pod提供一個阿裡雲slb接入點。
nginxingresscontroller的運作需要有一個預設的http後端伺服器用來傳回自定義的404與200頁面,是以通過下面的yaml檔案可以建立一個default_http_server服務,一個nginxingresscontroller rc.
監聽端口為主控端的80和443,確定該端口沒有占用。
注意自定義<code>--ingress-class="nginx-1"</code>,這個用來設定nginxcontroller會處理哪些ingress. 請留意這個值
<code>--publish-service</code> 指定使用cloudprovider提供的ip。
現在116.62.82.64就是阿裡雲為您提供的slb位址,通路<code>http://116.62.82.64</code>, 您會被重定向到一個404頁面,就是我們剛才建立的default_http_server.
到此,我們就部署好了一個可用的安全的ingresscontroller了,接下來部署實際應用來測試一下。
按照如下指令建立一個阿裡雲slb,然後您以後所有annotations包含<code>kubernetes.io/ingress.class: "nginx-1"</code>的ingress流量都會通過這個slb進入。
使用下面列出的ingress檔案建立一個ingress,後端指向http-svc. 注意設定annotation為<code>kubernetes.io/ingress.class: "nginx-1"</code>來使用前面建立的nginxingresscontroller和阿裡雲slb。 本節先忽略tls配置,但nginx預設包含一個自帶證書。
現在再次通路<code>http://116.62.82.64</code>,您會被重定向到https并且浏覽器給出一個安全提示,這是因為我們并未配置自己的證書。選擇忽略,然後您會看到一個列印了請求資訊的頁面,說明應用運作成功。然後您可以将這個ip位址綁定到您購買的域名上了。
本文介紹了如何在阿裡雲上為kubernetes建立七層負載均衡服務。這是一個一個簡單的示例,接下來我們将介紹更加複雜的配置,包含ssl支援,七層uri路由,及多節點負載均衡應對大流量通路政策等等。敬請期待