iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
DevOps

前端工程師學習 DevOps 之路系列 第 9

Day09-Kubernetes那些事 - Ingress 篇(一)

前言

在上一篇文章介紹完 Service 後,看似解決了對外連接的問題,但大家一定會發現 port 真的太醜了,現在應該沒有任何一個網站除了網域之外後面還要加 port 吧XD

為了解決這個問題,今天的文章就要來介紹 Ingress,由於 Ingress 能介紹的東西真的太多了,只用一篇文章怕讀者會比較不好吸收(其實是可以多占幾篇鐵人賽的篇幅XD),這邊筆者預計會用三天的時間來完整的介紹整個 Ingress,廢話不多說馬上開始今天的文章吧!

什麼是 Ingress?

Ingress 可以幫助我們統一對外的 port number,並且根據 hostname 或是 pathname 決定請求要轉發到哪個 Service 上,之後就可以利用該 Service 連接到 Pod 做事情了,而 K8s 的 Ingress 會統一開 http 的 80 port 以及 https 的 443 port。

Ingress 作用

上面的段落簡單的介紹了 Ingress 的觀念後,接下來介紹一下 Ingress 真正的功能吧!

  • 將不同路徑的請求對應到不同的 Service 物件

    若沒有設定網域,則該機器上所有網域只要透過此路徑均可以連接到指定的 Service 物件。

  • 將不同網域的請求對應到不同的 Service 物件

    若沒有設定路徑,則會以 /路徑連接到指定的 Service 物件。

  • 支援 SSL Termination

    SSL 全名為:傳輸層安全性協定,而網站通常都會利用 https 進行加密以確保資料安全,但 Service 與 Pod 之間的溝通都是以無加密方式傳輸,所以 Ingress 就支援解密,讓 Service 與 Pod 可以正常溝通傳遞資料。

Ingress 架構圖

最後加了 Ingress 後架構圖就會長得像下圖這樣,這裡筆者故意用網域以及路徑的方式來表示 Ingress 的連結到 Service 的方式。

啟動 Ingress

由於 minikube 本身並沒有啟用 Ingress 的功能,因此需要額外下指令讓 minikube 可以順利的使用 Ingress ,啟動方法也很簡單只要在終端機下 minikube addons enable ingress 即可。

修改本機 host 內容

加了 Ingress 後基本上就需要網域才可以使用了,但我們都在本機端上練習而已,所以也不用刻意去網路上購買網域,只要修改本機的 host 檔案就可以了。

首先在終端機下 sudo vim /etc/hosts 並輸入電腦密碼後,在檔案內加入 minikube ip 以及想要呈現的網域名稱即可,寫法如下。

小結

今天介紹了 Ingress 的基本觀念以及如何在 minikube 上啟用,有了這些觀念後再來介紹整體的寫法跟應用會更得心應手。

接下來的文章就要介紹 Ingress 的寫法跟建立了,如果對於文章有任何問題都歡迎留言給我,那我們就下篇文章見嘍~


上一篇
Day08-Kubernetes 那些事 -Service 篇
下一篇
Day10-Kubernetes 那些事 - Ingress 篇(二)
系列文
前端工程師學習 DevOps 之路30

尚未有邦友留言

立即登入留言