iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
DevOps

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

Day10-Kubernetes 那些事 - Ingress 篇(二)

前言

在昨天的文章講完 Ingress 的基本觀念以及要如何在 minikube 上啟動的基礎建設後,今天的文章就要正式進入 Ingress 的寫法及建立了,廢話不多說馬上開始今天的文章吧!

Ingress 寫法

接下來就用個簡單的範例來講一下 Ingress 的寫法吧!這邊會用兩種方式來介紹 Ingress。

  • 只設定路徑沒有設定網域

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: helloworld
    spec:
      rules:  
        - http:
            paths:
            - path: /
              backend:
                serviceName: helloworld
                servicePort: 8080
    
  • 設定網域以及路徑

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: helloworld
    spec:
      rules:  
        - host: helloworld.com.tw
          http:
            paths:
            - path: /
              backend:
                serviceName: helloworld
                servicePort: 8080
    

    這邊可以發現 Ingress 的 apiVersionextensions/v1beta1 而不是 v1 是因為目前 Ingress 能支援的 API 版本只有 extensions/v1beta1 而已,這邊要稍微注意一下不要複製太快結果忘記改 API 版本了XD

    基本上整體寫法跟 Service 差不多,唯一不同的地方就在 spec 的細部設定,因此底下就來講講 spec 的相關設定吧!

    • rules

    代表這個 Ingress 的轉發規則,所有 Ingress 的設定都要寫在 rules 內。

    • host

    設定可以連接到 Service 物件的網域名稱。

    • path

    設定可以連接到 Service 物件的路徑名稱。

    • serviceName

    設定欲連接到的 Service 名稱,這裡要填寫的就是 Service 中在 metadata 內寫上的 name

    • servicePort

    設定要經由哪個 port 連接到 Service 物件,就像 Service 的 port 要連接到 Pod 的 targetPort。

建立 Ingress

由於上面用了兩種寫法,因此這個段落也會拆成兩個部分來說明。

  • 只設定路徑沒有設定網域

    建立 Ingress 一樣也要用 apply 這個參數來建立。

    為了要查看 Ingress 是否有正確建立起來也可以利用 get 這個參數來查看。

    可以發現 hosts 的部分是 *,這代表的是所有背後會指向 192.168.64.14 這個 IP 的網域都可以利用上面指定的路徑連接到指定的 Service 物件。

  • 設定網域以及路徑

    一樣利用 apply 參數建立完 Ingress 物件後,接下來利用 get 參數來查看一下 Ingress 的詳細資訊。

    可以發現現在 hosts 變成 helloworld.com.tw 這個網域了,所以可想而知 helloworld-test.com.tw 就會出現 404 錯誤。

小結

今天介紹了 Ingress ,看似美好而且也不用再輸入麻煩的 port 到網域後,這時候讀者心中應該都有一個疑惑,連 Service 都可以利用 LoadBalancer 形式來做負載平衡了(雖然要在雲端服務上才能實現XD),難道 Ingress 做不到嗎?

其實 Ingress 也做得到,但要用其他的方法來實現,所以接下來要介紹 Ingress Controller,如果對於文章有任何問題都歡迎留言給我,那我們就下篇文章見嘍~


上一篇
Day09-Kubernetes那些事 - Ingress 篇(一)
下一篇
Day11-Kubernetes 那些事 - Ingress 篇(三)
系列文
前端工程師學習 DevOps 之路30

尚未有邦友留言

立即登入留言