什麼是Ingress?

更新於 2024/10/03閱讀時間約 4 分鐘

本次分享一個K8S網路的一個很重要的元件:Ingress(準確來說,這裡專指Kubernetes Ingress),以下是本文的幾個重點:

  1. 什麼是Ingress?
  2. 有沒有ingress差別在那?
  3. ingress controller?
  4. ingress怎麼寫?
  5. 結論

1. 什麼是Ingress?

  • Ingress = 進入Kubernetes cluster的流量
  • Egress = 離開Kubernetes cluster的流量
Ingress & Egress

Ingress & Egress

沒了,最簡單的解釋就是這樣。如果還要再細節點,可以說:

  • Ingress 是Kubernetes的原生資源(就等同於Pod…),裝好就可以使用
  • 透過Ingress我們可以自行維護DNS
  • 利用將規則加到路由,將k8s外部來源導至k8s內部應用服務的一種資源

2. 有沒有Ingress的差別?

  • 不使用Ingress,如上述,就會需要在service內加入像是NodePort的方式以IP:Port將服務暴露給外界
不使用ingress

不使用ingress

使用Ingress+Ingress controller,可以直接在Loadbalancer與內部應用service中間加入一層具備規則的控制元件,可以直接跟據規則將流量導引至正確的地方

加入了ingress controller

加入了ingress controller

3. ingress controller?

如果要讓ingress rule可以運行,就必須要有ingress controller存在。

Ingress controller基本上是「反向代理 web server」的實作,在K8S世界會被部署成K8S deployment的型式以LoadBalancer service存在。

在一座cluster內可以有許多ingress controller對應到多組loadbalancer,每個ingress controller都必須在annotation有唯一的ingress-class的識別名稱。

以nginx為例的ingress controller運作方式

以nginx為例的ingress controller運作方式

4. ingress怎麼寫?

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
namespace: dev
spec:
rules:
- host: test.apps.example.com
http:
paths:
- backend:
serviceName: hello-service
servicePort: 80

說明:
往test.apps.example.com的流量,透過此ingress導向到k8s內dev namespace的SVC
hello-service:80可以透過「path-based」的方式加入多個routing endpoint,還可
以加入TLS設定

5. 結論

  • 1. kubernetes ingress是利用將規則加到路由流量,將k8s外部來源導至k8s內部應用服務的一種資源
  • 2. Ingress簡單來說就是進入的行為
  • 3. 透過ingress controller的使用可以動態的進行路由規則的更新
  • 4. OpenShift架構下,預設使用HAProxy成為ingress controller
  • 5. Ingress controller 並不是K8S原生的資源,一座cluster內可以有許多ingress controller對應到多組loadbalancer
  • 6. nginx是其中一種常見的ingress controller
  • 7. ingress controller具備有LB的功能,如果沒有controller,就無法進行規則路由的動作
  • 8. Ingress不是LB,但ingress controller有LB的功能
  • 9. 如果沒有ingress controller就沒有路由規則的能力

------------------------------------------------------------------------
※ 參考來源:

avatar-img
15會員
40內容數
記錄IT社畜的自我學習筆記,如同專題名稱,主要是怕自已忘記自已做過什麼、學到什麼。索性就分享我自已在學習Kubernetes這條路上的各種測試、學習心得。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
連接器故名思議就是兩個系統之間的橋樑, 而Kafka Connect正是扮演著這樣的角色, 如圖上, 我們可以透過Kafka Connect將SQL的資料導出到Kafka並導入到MySQL。 豐富的Plugin Confluent Hub提供了各式各樣的外掛套件, 包括了MongoDB、My
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
安裝環境需求 64位元Linux,核心版本為3.1以上,且能滿足Ducker安裝環境。 機器之間要能夠互通。 外部存取權限。 硬體資源:兩核心CPU、8G記憶體、硬碟30GB以上。 安裝Kubeadm與Ducker Kubeadm是Kubernetes的一鍵部署工具。 增加Kube
Thumbnail
在實際生產中,容器化技術開始走向「容器編排技術」,如:Kubernetes。因為Docker無法獨立支撐大規模容器化部署。 Kubernetes起源於Borg系統,所以在大規模的叢集管理,優於其他容器編排技術。它提供拉取映像檔、拉取執行容器、路由閘道、水平擴充、監控和備份等,除外還可以自動化處理容
你是否曾對那些支撐著我們日常生活、工作與娛樂的網路系統背後的運作原理感到好奇?想知道是什麼力量讓我們能夠順暢地上網購物、交友、瀏覽資訊嗎?就現在,就讓我們一起探索伺服器(Server)的秘密,從定義到種類,從現狀到趨勢,一篇文章帶你全面探索伺服器的世界!
Thumbnail
使用Python開發後端API的經驗中應該會常常看到WSGI與ASGI這兩個名詞, 兩者的差異究竟是什麼呢? 就讓我們來為您科普一番。 什麼是WSGI 全名為「Web Server Gateway Interface」 Web伺服器閘道介面,主要規範HTTP請求如何與伺服器溝通, 通
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
引言 在當今的技術世界中,Kubernetes 已成為容器化應用的領導平台。作為一個高效的容器編排系統,它不僅管理著容器的部署和擴展,還提供了必要的自動化支持,以保證應用的高可用性和性能。在這個框架中,自動擴展功能起著至關重要的作用,特別是在面對不斷變化的負載和需求時。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
連接器故名思議就是兩個系統之間的橋樑, 而Kafka Connect正是扮演著這樣的角色, 如圖上, 我們可以透過Kafka Connect將SQL的資料導出到Kafka並導入到MySQL。 豐富的Plugin Confluent Hub提供了各式各樣的外掛套件, 包括了MongoDB、My
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
安裝環境需求 64位元Linux,核心版本為3.1以上,且能滿足Ducker安裝環境。 機器之間要能夠互通。 外部存取權限。 硬體資源:兩核心CPU、8G記憶體、硬碟30GB以上。 安裝Kubeadm與Ducker Kubeadm是Kubernetes的一鍵部署工具。 增加Kube
Thumbnail
在實際生產中,容器化技術開始走向「容器編排技術」,如:Kubernetes。因為Docker無法獨立支撐大規模容器化部署。 Kubernetes起源於Borg系統,所以在大規模的叢集管理,優於其他容器編排技術。它提供拉取映像檔、拉取執行容器、路由閘道、水平擴充、監控和備份等,除外還可以自動化處理容
你是否曾對那些支撐著我們日常生活、工作與娛樂的網路系統背後的運作原理感到好奇?想知道是什麼力量讓我們能夠順暢地上網購物、交友、瀏覽資訊嗎?就現在,就讓我們一起探索伺服器(Server)的秘密,從定義到種類,從現狀到趨勢,一篇文章帶你全面探索伺服器的世界!
Thumbnail
使用Python開發後端API的經驗中應該會常常看到WSGI與ASGI這兩個名詞, 兩者的差異究竟是什麼呢? 就讓我們來為您科普一番。 什麼是WSGI 全名為「Web Server Gateway Interface」 Web伺服器閘道介面,主要規範HTTP請求如何與伺服器溝通, 通
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
引言 在當今的技術世界中,Kubernetes 已成為容器化應用的領導平台。作為一個高效的容器編排系統,它不僅管理著容器的部署和擴展,還提供了必要的自動化支持,以保證應用的高可用性和性能。在這個框架中,自動擴展功能起著至關重要的作用,特別是在面對不斷變化的負載和需求時。