主頁 >  其他 > 無縫融入 Kubernetes 生態 | 云原生網關支持 Ingress 資源

無縫融入 Kubernetes 生態 | 云原生網關支持 Ingress 資源

2022-03-15 07:40:32 其他

Kubernetes Ingress 介紹

通常情況下,Kubernetes 集群內的網路環境與外部是隔離的,也就是說 Kubernetes 集群外部的客戶端無法直接訪問到集群內部的服務,這屬于不同網路域如何連接的問題,解決跨網路域訪問的常規做法是為目標集群引入一個入口點,所有外部請求目標集群的流量必須訪問這個入口點,然后由入口點將外部請求轉發至目標節點,

同樣,Kubernetes 社區也是通過增設入口點的方案來解決集群內部服務如何對外暴露的問題,Kubernetes 一貫的作風是通過定義標準來解決同一類問題,在解決集群對外流量管理的問題也不例外,Kubernetes 對集群入口點進行了進一步的統一抽象,提出了 3 種解決方案:NodePort、LoadBalancer 和 Ingress,下圖是這三種方案的對比:
在這里插入圖片描述

通過以上對比,我們可以發現,NodePort 和 LoadBalancer 主要作業在四層流量上,只能用于暴露集群中一個服務,當集群中對外暴露的服務數量增多時,NodePort 方案最侄訓因埠耗盡而無法暴露更多的服務,而 LoadBalancer 方案則會引入同等數量的 SLB,在增加成本的同時也給運維帶來一定的負擔,定位在七層流量上的 Ingress 方案可以通過定義基于虛擬主機域和路徑的路由規則來完成對集群中服務的代理,Ingress 與后端服務是一對多的關系,有效的降低了機器成本,

此外,因為外部訪問集群中服務的所有入口流量都先經過共享的 Ingress Provider 節點,所以集群管理者可以在 Ingress Provider 中額外實施訪問控制策略來保證集群中服務的安全性和穩定性,并且可以通過采集監控指標、記錄訪問日志以及開啟鏈路追蹤來增強可觀測建設,因此,目前 Ingress 方案是主流的選擇,

Kubernetes Ingress Provider 介紹

上文提到,Ingress 是 Kubernetes 應對集群管理外部訪問流量的場景抽象出來一個資源物件,用來描述集群外部如何訪問集群內部服務的方式,通過 Ingress 資源來配置不同的轉發規則,從而達到根據不同的規則設定外部訪問集群內不同的 Service 所對應的后端 Pod,Ingress Provider 是真實存在的 Workload 節點,是真正意義上 Ingress 規則的實作者與執行者,Kubernetes 提出 Ingress 的規范,將 Ingress 具體實作方式交給各種 Provider 以及云提供商,有效保證了 Ingress 不會被具體的 Provider 或者云廠商系結,符合 Kubernetes 一直秉承的開放、標準的思想,

在云原生技術浪潮下,Ingress Provider 產品種類如雨后春筍般涌現,其中用戶知名度最高當屬 Kubernetes Nginx Ingress,接下來會簡單介紹一下 Nginx Ingress Controller 和阿里云推出的下一代網關——MSE Ingress Controller(MSE 云原生網關),

Nginx Ingress Controller

Nginx Ingress Controller 是由 Kubernetes 官方維護的,內部由 Controller 和資料面 Nginx 組成,Nginx Ingress Controller 由用戶部署在 Kubernetes 集群中,通過訪問集群的 API Server 來實時監聽用戶應用到集群中的 Ingress 資源,經 Controller 決議并轉化為 Nginx 組態檔(nginx.conf),然后通過 reload 資料面 Nginx 的方式使得配置生效,

當外部請求訪問集群入口點 Nginx Ingress Controller 時,匹配 Nginx Ingress 轉發規則的流量轉發到后端 Service 所對應的 Pod,由 Pod 處理外部請求,其流程圖如下:

在這里插入圖片描述

MSE Ingress Controller(MSE 云原生網關)

隨著云原生技術持續演進,云原生應用微服務化不斷深入,Nginx Ingress 在面對復雜路由規則配置、支持多種應用層協議(Dubbo 和 QUIC 等)、服務訪問的安全性以及流量的可觀測性等問題上略顯疲憊,

為了解決用戶對大規模流量治理的強烈訴求,MSE 云原生網關應運而生,這是阿里云推出的兼容標準 Ingress 規范的下一代網關,具備低成本、安全、高集成和高可用的產品優勢,將傳統的流量網關和微服務網關合并,在降低 50%資源成本的同時為用戶提供了精細化的流量治理能力,支持 ACK 容器服務、Nacos、Eureka、固定地址、FaaS 等多種服務發現方式,支持多種認證登錄方式快速構建安全防線,提供全方面、多視角的監控體系,如指標監控、日志分析以及鏈路追蹤,并且支持決議單、多 Kubernetes 集群模式下的標準 Ingress 資源,滿足云原生應用場景下以宣告式進行統一流量治理的訴求,

MSE Ingress Controller 通過 List-Watch 機制獲取關聯的 ACK 集群中 Ingress 資源的變化,然后以熱更新的方式動態更新 MSE 云原生網關的路由規則,當 MSE 云原生網關收到請求時,匹配 Ingress 轉發規則轉發請求到后端 Service 所對應的 Pod,

相比 Nginx Ingress Controller,首先 MSE Ingress Controller 是以熱更新的方式秒級生效監聽到的 Ingress 資源,這種無需重啟資料面即可生效配置的方式大大提高了集群入口網關的穩定性,有效保障了業務流量無損,更重要的是,MSE Ingress Controller 可以進行多集群管理,即同時作為多個集群的入口網關,意味著可以同時監聽多個集群中的 Ingress 資源,解決用戶跨 Kubernetes 集群流量調度和流量治理問題,

下圖是 MSE Ingress Controller 在多 ACK 集群模式下 Ingress 的應用場景,

在這里插入圖片描述

通過 MSE 云原生網關決議 Ingress

我們將基于 MSE 云原生網關和阿里云 ACK 產品進行實踐,由云原生網關決議并執行 ACK 集群中定義的 Ingress 資源,完成對外暴露 ACK 集群中指定服務,

前提條件
? 已擁有一個 MSE 云原生網關
? 已擁有一個 ACK 運維集群

步驟一:關聯 ACK 集群并配置監聽 Ingress

  1. 在 MSE 云原生網關控制臺->服務管理->來源管理中,關聯對應的 ACK 集群,開啟監聽 Kubernetes Ingress 配置,并配置 IngressClass 和監聽的目標命名空間,
    在這里插入圖片描述

步驟二:部署服務

創建并拷貝以下內容到 httpbin.yaml 檔案中,用于部署名稱為 httpbin Deployment,以及名稱為 httpbin 的 Service,然后應用到 ACK 集群中,

apiVersion: v1
kind: Service
metadata:
  name: httpbin
  labels:
    app: httpbin
    service: httpbin
spec:
  ports:
  - name: http
    port: 8000
    targetPort: 80
  selector:
    app: httpbin
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpbin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpbin
  template:
    metadata:
      labels:
        app: httpbin
    spec:
      containers:
      - image: mse-gw-demo-registry.cn-hangzhou.cr.aliyuncs.com/gw/httpbin
        imagePullPolicy: IfNotPresent
        name: httpbin
        ports:
        - containerPort: 80

步驟三:配置 Ingress

創建并拷貝以下內容到 ingress.yaml 中,然后應用到 ACK 集群中,

ACK 1.19 版本之前

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-demo
spec:
  rules:
  - host: test.com
    http:
        paths:
        - path: /ip
          backend:
            serviceName: httpbin
            servicePort: 800
ACK 1.19 及之后版本
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-demo
spec:
  rules:
  - host: test.com
    http:
        paths:
        - path: /ip
          backend:
            service:
              name: httpbin
              port:
                number: 8000
          pathType: Exact

步驟四:訪問服務

在 MSE 云原生網關控制臺的基本資訊查看網關 IP 地址,

在這里插入圖片描述

通過以下命令列測驗訪問服務,

curl -H "host: test.com" 47.97.127.61/ip

預期結果:

{
  "origin": "x.x.x.x"
}

步驟五:查看域名、路由相關配置

我們可以在 MSE 云原生網關控制臺查看已監聽的域名和路由相關的配置,例如,上述 ingress.yaml 在云原生網關控制臺的決議結果,

域名管理如下:

在這里插入圖片描述

路由管理如下:

在這里插入圖片描述

發布云原生技術最新資訊、匯集云原生技術最全內容,定期舉辦云原生活動、直播,阿里產品及用戶最佳實踐發布,與你并肩探索云原生技術點滴,分享你需要的云原生內容,

關注【阿里巴巴云原生】公眾號,獲取更多云原生實時資訊!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/443472.html

標籤:其他

上一篇:【理論】計算機網路知識點復習【408統考】

下一篇:【理論】資料結構知識點復習【408統考】

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more