0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

k8s生態(tài)鏈包含哪些技術(shù)

阿銘linux ? 來源:阿銘linux ? 2023-08-07 10:56 ? 次閱讀

1. Apache APISIX Ingress 定義

在 K8s 生態(tài)中,Ingress 作為表示 K8s 流量入口的一種資源,想要讓其生效,就需要有一個(gè) Ingress Controller 去監(jiān)聽 K8s 中的 Ingress 資源,并對這些資源進(jìn)行相應(yīng)規(guī)則的解析和實(shí)際承載流量。在當(dāng)下趨勢中,像 Kubernetes Ingress Nginx 就是使用最廣泛的 Ingress Controller 實(shí)現(xiàn)。 而 APISIX Ingress 則是另一種 Ingress Controller 的實(shí)現(xiàn)。跟 Kubernetes Ingress Nginx 的區(qū)別主要在于 APISIX Ingress 是以 Apache APISIX 作為實(shí)際承載業(yè)務(wù)流量的數(shù)據(jù)面。如下圖所示,當(dāng)用戶請求到具體的某一個(gè)服務(wù)/API/網(wǎng)頁時(shí),通過外部代理將整個(gè)業(yè)務(wù)流量/用戶請求傳輸?shù)?K8s 集群,然后經(jīng)過 APISIX Ingress 進(jìn)行后續(xù)處理。 1350ce38-3340-11ee-9e74-dac502259ad0.jpg 從上圖可以看到,APISIX Ingress 分成了兩部分。一部分是 APISIX Ingress Controller,作為控制面它將完成配置管理與分發(fā)。另一部分 APISIX Proxy Pod 負(fù)責(zé)承載業(yè)務(wù)流量,它是通過 CRD(Custom Resource Definitions)的方式實(shí)現(xiàn)的。Apache APISIX Ingress 除了支持自定義資源外,還支持原生的 K8s Ingress 資源。 ?

2. Apache APISIX 簡述

前邊我們提到了 APISIX Ingress 是采用 Apache APISIX 作為實(shí)際承載業(yè)務(wù)流量的數(shù)據(jù)面,那么 Apache APISIX 項(xiàng)目又是做什么的呢? 139f218c-3340-11ee-9e74-dac502259ad0.jpg Apache APISIX 是 Apache 基金會旗下的頂級開源項(xiàng)目,也是當(dāng)前最活躍的開源網(wǎng)關(guān)項(xiàng)目。作為一個(gè)動(dòng)態(tài)、實(shí)時(shí)、高性能的開源 API 網(wǎng)關(guān),Apache APISIX 提供了負(fù)載均衡、動(dòng)態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測性等豐富的流量管理功能。 Apache APISIX 可以幫助企業(yè)快速、安全地處理 API 和微服務(wù)流量,比如限流認(rèn)證、日志安全功能,以及支持豐富的自定義插件。目前也與很多開源項(xiàng)目如 Apache SkyWalking、Prometheus 等之類的組件進(jìn)行了相關(guān)集成。 ?

3. APISIX Ingress vs K8s Ingress Nginx

1)配置層面

在 APISIX Ingress 中,我們增加了一些豐富且靈活的配置,比如通過單個(gè)配置文件去實(shí)現(xiàn)灰度部署。但在 K8s Ingress Nginx 中去實(shí)現(xiàn)如上效果的話,最少也需要有兩個(gè) Ingress 資源文件才可以完成。

2)豐富度

在豐富度上,由于 Apache APISIX 本身的自帶功能豐富且允許多種插件擴(kuò)展使用,所以使用 APISIX Ingress 就可以省去自己額外配置功能的繁瑣步驟,可以將更多的時(shí)間投入到實(shí)際開發(fā)中。

3)架構(gòu)分離

APISIX Ingress 采用了數(shù)據(jù)面與控制面的分離架構(gòu),所以用戶可以選擇將數(shù)據(jù)面部署在 K8s 集群內(nèi)部/外部。但 K8s Ingress Nginx 是將控制面和數(shù)據(jù)面放在了同一個(gè) Pod 中,如果 Pod 或控制面出現(xiàn)一點(diǎn)閃失,整個(gè) Pod 就會掛掉,進(jìn)而影響到業(yè)務(wù)流量。 這種架構(gòu)分離,給用戶提供了比較方便的部署選擇,同時(shí)在業(yè)務(wù)架構(gòu)調(diào)整場景下,也方便進(jìn)行相關(guān)數(shù)據(jù)的遷移與使用。

4. APISIX Ingress 特性詳解

由于 Apache APISIX 是一個(gè)全動(dòng)態(tài)的高性能網(wǎng)關(guān),所以在 APISIX Ingress 自身就支持了全動(dòng)態(tài),包括路由、SSL 證書、上游以及插件等等。 同時(shí) APISIX Ingress 還具有以下特性:

支持 CRD,更容易理解聲明式配置;同時(shí)狀態(tài)檢查可保證快速掌握聲明配置的同步狀態(tài);

支持高級路由匹配規(guī)則以及自定義資源,可與 Apache APISIX 官方 50 多個(gè)插件 & 客戶自定義插件進(jìn)行擴(kuò)展使用;

支持 K8s 原生 Ingress 配置;

支持流量切分;

支持 gRPC plaintext 與 TCP 4 層代理;

服務(wù)自動(dòng)注冊發(fā)現(xiàn),無懼?jǐn)U縮容;

更靈活的負(fù)載均衡策略,自帶健康檢查功能;

責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1472

    瀏覽量

    61749
  • 流量
    +關(guān)注

    關(guān)注

    0

    文章

    243

    瀏覽量

    23872
  • 生態(tài)鏈
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    9886

原文標(biāo)題:Apache APISIX了解下

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    k8s核心原理學(xué)習(xí)指南3

    k8s學(xué)習(xí)3 - 核心原理
    發(fā)表于 09-25 16:37

    如何利用K8S全面擁抱微服務(wù)架構(gòu)?

    K8S是第一個(gè)將“一切以服務(wù)為中心,一切圍繞服務(wù)運(yùn)轉(zhuǎn)”作為指導(dǎo)思想的創(chuàng)新型產(chǎn)品,它的功能和架構(gòu)設(shè)計(jì)自始至終都遵循了這一指導(dǎo)思想,構(gòu)建在K8S上的系統(tǒng)不僅可以獨(dú)立運(yùn)行在物理機(jī)、虛擬機(jī)集群或者企業(yè)私有云上,也可以被托管在公有云中。
    的頭像 發(fā)表于 10-08 15:59 ?2.7w次閱讀

    OpenStack與K8s結(jié)合的兩種方案的詳細(xì)介紹和比較

    OpenStack與K8S結(jié)合主要有兩種方案。一是K8S部署在OpenStack平臺之上,二是K8S和OpenStack組件集成。
    的頭像 發(fā)表于 10-14 09:38 ?2.7w次閱讀

    如何使用kubernetes client-go實(shí)踐一個(gè)簡單的與K8s交互過程

    【導(dǎo)讀】Kubernetes項(xiàng)目使用Go語言編寫,對Go api原生支持非常便捷。 本篇文章介紹了如何使用kubernetes client-go實(shí)踐一個(gè)簡單的與K8s交互過程
    的頭像 發(fā)表于 02-02 11:16 ?6717次閱讀
    如何使用kubernetes client-go實(shí)踐一個(gè)簡單的與<b class='flag-5'>K8s</b>交互過程

    Docker不香嗎為什么還要用K8s

    Docker 雖好用,但面對強(qiáng)大的集群,成千上萬的容器,突然感覺不香了。 這時(shí)候就需要我們的主角 Kubernetes 上場了,先來了解一下 K8s 的基本概念,后面再介紹實(shí)踐,由淺入深步步為營
    的頭像 發(fā)表于 06-02 11:56 ?3396次閱讀

    簡單說明k8s和Docker之間的關(guān)系

    這篇文章主要介紹了k8s和Docker關(guān)系簡單說明,本文利用圖文講解的很透徹,有需要的同學(xué)可以研究下 最近項(xiàng)目用到kubernetes(以下簡稱k8sks之間有
    的頭像 發(fā)表于 06-24 15:48 ?3326次閱讀

    K8S集群服務(wù)訪問失敗怎么辦 K8S故障處理集錦

    問題1:K8S集群服務(wù)訪問失??? ? ? 原因分析:證書不能被識別,其原因?yàn)椋鹤远x證書,過期等。 解決方法:更新證書即可。 問題2:K8S集群服務(wù)訪問失敗? curl: (7) Failed
    的頭像 發(fā)表于 09-01 11:11 ?1.6w次閱讀
    <b class='flag-5'>K8S</b>集群服務(wù)訪問失敗怎么辦 <b class='flag-5'>K8S</b>故障處理集錦

    K8S(kubernetes)學(xué)習(xí)指南

    K8S(kubernetes)學(xué)習(xí)指南
    發(fā)表于 06-29 14:14 ?0次下載

    mysql部署在k8s上的實(shí)現(xiàn)方案

    的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件之一。這里主要講 mysql 部署在 k8s 上,mysql 部署在 k8s 上的優(yōu)勢主要有以下幾點(diǎn)。
    的頭像 發(fā)表于 09-26 10:39 ?2441次閱讀

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes簡稱K8s,是一個(gè)開源的,用于管理云平臺中多個(gè)主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效(powerful
    發(fā)表于 07-19 13:14 ?1085次閱讀

    什么是K3sK8sK3sK8s有什么區(qū)別?

    Kubernetes,通??s寫為 K8s,是領(lǐng)先的容器編排工具。該開源項(xiàng)目最初由 Google 開發(fā),幫助塑造了現(xiàn)代編排的定義。該系統(tǒng)包括了部署和運(yùn)行容器化系統(tǒng)所需的一切。
    的頭像 發(fā)表于 08-03 10:53 ?7153次閱讀

    K8s多集群管理:為什么需要多集群、多集群的優(yōu)勢是什么

    隨著K8s和云原生技術(shù)的快速發(fā)展,以及各大廠商在自己的數(shù)據(jù)中心使用K8s的API進(jìn)行容器化應(yīng)用編排和管理,讓應(yīng)用交付本身變得越來越標(biāo)準(zhǔn)化和統(tǒng)一化,并且實(shí)現(xiàn)了與底層基礎(chǔ)設(shè)施的完全解耦,為多集群和混合云提供了一個(gè)堅(jiān)實(shí)
    發(fā)表于 09-14 10:48 ?1122次閱讀
    <b class='flag-5'>K8s</b>多集群管理:為什么需要多集群、多集群的優(yōu)勢是什么

    K8S落地實(shí)踐經(jīng)驗(yàn)分享

    k8s 即 Kubernetes,是一個(gè)開源的容器編排引擎,用來對容器化應(yīng)用進(jìn)行自動(dòng)化部署、 擴(kuò)縮和管理。
    的頭像 發(fā)表于 01-02 11:45 ?1005次閱讀
    <b class='flag-5'>K8S</b>落地實(shí)踐經(jīng)驗(yàn)分享

    k8s云原生開發(fā)要求

    Kubernetes(K8s)云原生開發(fā)對硬件有一定要求。CPU方面,建議至少配備2個(gè)邏輯核心,高性能CPU更佳。內(nèi)存至少4GB,但8GB或更高更推薦。存儲需至少20-30GB可用空間,SSD提升
    的頭像 發(fā)表于 10-24 10:03 ?141次閱讀
    <b class='flag-5'>k8s</b>云原生開發(fā)要求

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地與公有云分別建立K8s集群,并確保網(wǎng)絡(luò)連接。接著,配置kubeconfig文件連接兩集群,并安裝云服務(wù)插件以實(shí)現(xiàn)資源互通。然后,編寫Deployment文件部署應(yīng)用,并使用kubectl命令應(yīng)用至集群。最后,驗(yàn)證應(yīng)用狀態(tài)并監(jiān)控集群性能
    的頭像 發(fā)表于 11-07 09:37 ?61次閱讀