Porter 進入 CNCF 雲原生全景圖,新版本即將發佈!

来源:https://www.cnblogs.com/kubesphere/archive/2020/07/17/13330001.html
-Advertisement-
Play Games

近日,KubeSphere 社區子項目面向物理機環境的負載均衡器 Porter 正式進入 CNCF Landscape。CNCF Landscape 在雲原生實踐過程中的每個環節幫助用戶瞭解有哪些具體的軟體和產品選擇,Porter 進入 CNCF Landscape,意味著 Porter 正式成為了 ...


近日,KubeSphere 社區子項目面向物理機環境的負載均衡器 Porter 正式進入 CNCF Landscape。CNCF Landscape 在雲原生實踐過程中的每個環節幫助用戶瞭解有哪些具體的軟體和產品選擇,Porter 進入 CNCF Landscape,意味著 Porter 正式成為了 CNCF 認可的構建雲原生最佳實踐中的一環。

Porter 加入 CNCF Landscape

雲原生計算基金會(CNCF, Cloud Native Computing Foundation)致力於雲原生技術的普及和可持續發展。在每年的 CNCF 年度報告中都會提及 CNCF Landscape,CNCF Landscape 是 CNCF 中的一個重要項目,幫助企業和開發人員快速瞭解雲原生體系的全貌,同時,也受到廣大開發者和使用者對該項目的關註和重視。CNCF Landscape 意圖從雲原生的層次結構,以及不同的功能組成上,讓用戶瞭解雲原生體系的全貌,並幫助用戶在不同組件層次去選擇恰當的軟體和工具進行支持。

CNCF Landscape

新晉 CNCF Landscape 的 Porter,解決什麼問題?

在 Kubernetes 集群中可以使用 “LoadBalancer” 類型的服務將後端工作負載暴露在外部。雲廠商通常為 Kubernetes 提供雲上的 LoadBalancer 插件,但這需要將集群部署在特定 IaaS 平臺上。然而,許多企業用戶通常都將 Kubernetes 集群部署在物理機上,尤其是用於生產環境或數據敏感的環境。而且對於本地物理機集群,Kubernetes 不提供 LoadBalancer 的解決方案。Porter 是 KubeSphere 社區開源的專為物理機 Kubernetes 集群暴露服務而設計的開源的負載均衡器,為用戶提供在物理環境暴露服務和在雲上暴露服務一致性體驗的插件。

Porter 主要特性

面向物理機環境的 Kubernetes 開源負載均衡器 Porter 主要特性有:

  • 基於路由器 ECMP 的負載均衡
  • 基於 Layer 2 的負載均衡
  • 基於 BGP 路由動態配置
  • 支持 VIP 管理
  • 支持在 Kubernetes Service 中指定 LoadBalancerIP (v0.3.0)
  • 支持通過 Helm Chart 安裝(v0.3.0)
  • 支持通過 CRD 動態配置 BGP 服務端(v0.3.0)
  • 支持通過 CRD 動態配置 BGP 對等體(v0.3.0)

與 MetalLB 的區別

優點

  • 對 Kubernetes 用戶友好。基於 CRD-Controller 模式,使用 kubectl 控制 Porter 的一切
  • 配置文件動態更新,無需重啟,自動更新 BGP 配置。根據網路環境靈活配置 BGP,動態啟用各種 BGP 特性
  • 更友好地處理與 Calico 的衝突,提供 Passive 模式和埠轉發模式

缺點

  • 無法跨平臺,目前僅支持 Linux

Kubernetes 服務

在 Kubernetes 集群中,網路是非常重要的基礎設施。對於大規模的節點和容器來說,要保證網路的連通性、網路轉發的高效,同時能做的 IP 和 Port 自動化分配和管理,並提供給用戶非常直觀和簡單的方式來訪問需要的應用,這是非常複雜且細緻的設計。

Kubernetes 本身在這方面下了很大的功夫,它通過 CNI、Service、DNS、Ingress 等一系列概念,解決了服務發現、負載均衡的問題,也大大簡化了用戶的使用和配置。其中的 Service 是 Kubernetes 微服務的基礎,Kubernetes 是通過 kube-proxy 這個組件來實現服務的。kube-proxy 運行在每個節點上,監聽 API Server 中服務對象的變化,通過管理 iptables 來實現網路的轉發。用戶可以創建多種形式的 Service,比如基於 Label Selector 、Headless 或者 ExternalName 的 Service,kube-proxy 會為 Service 創建一個虛擬的 IP(即 Cluster IP),用於集群內部訪問服務。

暴露服務的三種方式

如果需要從集群外部訪問服務,即將服務暴露給用戶使用,Kubernetes Service 本身提供了兩種方式,一種是 NodePort,另外一種是 LoadBalancer。另外 Ingress 也是一種常用的暴露服務的方式。

NodePort

如果將服務的類型設置為 NodePort,kube-proxy 就會為這個服務申請一個 30000 以上的埠號(預設情況下),然後在集群所有主機上配置 IPtables 規則,這樣用戶就能通過集群中的任意節點加上這個分配的埠號訪問服務了,如下圖

NodePort

NodePort 是最方便的暴露服務的方式,缺點也很明顯:

  • 基於 SNAT 進行訪問,Pod 無法看到真正的 IP。
  • NodePort 是將集群中的一個主機作為跳板訪問後端服務,所有的流量都會經過跳板機,很容易造成性能瓶頸和單點故障,難以用於生產環境。
  • NodePort 埠號一般都是用大埠,不容易記憶。

NodePort 設計之初就不是用於生產環境暴露服務的方式,所以預設埠都是一些大埠。

LoadBalancer

LoadBalancer 是 Kubernetes 提倡的將服務暴露給外部的一種方式。但是這種方式需要藉助於雲廠商提供的負載均衡器才能實現,這也要求了 Kubernetes 集群必須在雲廠商上部署。在物理機部署的 Kubernetes 環境則需要 Porter 來解決服務暴露的問題。

LoadBalancer 的原理如下:

LoadBalancer

LoadBalancer 通過雲廠商的 LB 插件實現,LB 插件基於 Kubernetes.io/cloud-provider 這個包實現,這個包會自動選擇合適的後端暴露給 LB 插件,然後 LB 插件由此創建對應的負載均衡器,網路流量在雲服務端就會被分流,就能夠避免 NodePort 方式的單點故障和性能瓶頸。LoadBalancer 是 Kubernetes 設計的對外暴露服務的推薦方式,但是這種方式僅僅限於雲廠商提供的 Kubernetes 服務上,對於物理部署或者非雲環境下部署的 Kubernetes 集群,這一機制就存在局限性而無法使用。

Ingress

Ingress 並不是 Kubernetes 服務本身提供的暴露方式,而是藉助於軟體實現的同時暴露多個服務的一種類似路由器的插件。Ingress 通過功能變數名稱來區分不同服務,並且通過 annotation 的方式控制服務對外暴露的方式。其原理如下圖:

Ingress

快速部署和體驗 Porter

完全開源

Porter 的所有代碼和文檔已在 Github 開源,歡迎大家關註 (Star) 和貢獻:https://github.com/kubesphere/porter

快速部署

Porter 目前已在如下三種環境下進行過部署和測試,並將部署測試與使用步驟的詳細文檔記錄在 GitHub,可以通過以下鏈接查看和部署實踐:

最新動態

Porter 將在本月中旬發佈新版本 v0.3.0,新版本由青雲QingCloud、本來生活和北京吉恆科技三家公司聯合開發,由社區定義與貢獻,非常感謝非青雲的社區貢獻者 @k0ngk0ng 和 @chinazj。新版本的主要功能已在文中 Porter 介紹中標註,歡迎大家安裝體驗!

延伸閱讀

關於 KubeSphere

KubeSphere 是在 Kubernetes 之上構建的以應用為中心的開源容器平臺,提供全棧的 IT 自動化運維的能力,簡化企業的 DevOps 工作流。

KubeSphere 已被 Aqara 智能家居、本來生活、新浪、安暢網路、華夏銀行、極視角、雲智匯、微眾銀行、VNG Corporation、Radore 等海內外數千家企業採用。KubeSphere 提供了運維友好的嚮導式操作界面和豐富的企業級功能,包括 Kubernetes 資源管理、DevOps (CI/CD)、應用生命周期管理、微服務治理 (Service Mesh)、多租戶管理、監控日誌、告警通知、存儲與網路管理、GPU support 等功能,幫助企業快速構建一個強大和功能豐富的容器雲平臺。

KubeSphere 官網https://kubesphere.io/
KubeSphere GitHubhttps://github.com/kubesphere/kubesphere

本文由博客一文多發平臺 OpenWrite 發佈!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背 景 Read the fucking source code! --By 魯迅 A picture is worth a thousand words. --By 高爾基 說明: Kernel版本:4.14 ARM64處理器,Contex-A53,雙核 使用工具:Source Insight 3 ...
  • 前言 ​ 最近公司里比較新的項目裡面,看到了很多關於java8新特性的用法,由於之前自己對java8的新特性不是很瞭解也沒有去做深入研究,所以最近就系統的去學習了一下,然後總結了一篇文章第一時間和大家分享一下。 ​ ​ 在瞭解一項新技術之前,我們需要瞭解我們為什麼要去學習它以及它的優點,以下是我總結 ...
  • TiDB 是 PingCAP 公司自主設計、研發的開源分散式關係型資料庫,是一款同時支持線上事務處理與線上分析處理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分散式資料庫產品,具備水平擴容或者縮容、金融級高可用、實時 HTAP... ...
  • 首先參照https://www.cnblogs.com/wdw984/p/13330074.html,來進行如何安裝Centos和離線下載rpm包。 離線下載jemalloc,上傳到CentOS的/data/rpm/jemalloc目錄 因為redis6.0.5推薦使用jemalloc管理記憶體,所以 ...
  • 一 負載均衡概述 1.1 負載均衡介紹 負載均衡是將負載分攤到多個操作單元上執行,從而提高服務的可用性和響應速度,帶給用戶更好的體驗。對於Web應用,通過負載均衡,可以將一臺伺服器的工作擴展到多台伺服器中執行,提高整個網站的負載能力。其本質採用一個調度者,保證所有後端伺服器都將性能充分發揮,從而保持 ...
  • win10 訪問遠程文件夾 此共用需要過時的SMB1協議 你不能訪問此共用文件夾 step1 開放協議 在windows功能中勾選SMB1.0並重啟電腦 step2 修改本地策略 將“啟動不安全的來賓登錄”雙擊開啟並確定 PS windows訪問遠程(區域網)使用\\,其實就是,\為本地路徑,\\為 ...
  • 一 盜鏈 1.1 盜鏈概述 盜鏈指的是在自己的界面展示非本伺服器上的內容,通過技術手段獲得其他伺服器的資源。繞過他人資源展示頁面,在自己頁面向用戶提供此內容,從而減輕自己伺服器的負擔,因為真實的空間和流量來自其他伺服器。 因此,通常為了避免被盜鏈,通常Web伺服器建議配置防盜鏈,其主要防盜鏈思路是能 ...
  • 有時候CentOS工作在無互聯網的環境下,需要在離線環境下安裝一些組件,這次實現的是模擬在離線環境下安裝gcc4.8。 第一步: 先去http://mirrors.aliyun.com/centos/7/isos/x86_64/下載CentOS7的安裝鏡像。 第二步: 用虛擬機安裝CentOS7 1 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 插件化的需求主要源於對軟體架構靈活性的追求,特別是在開發大型、複雜或需要不斷更新的軟體系統時,插件化可以提高軟體系統的可擴展性、可定製性、隔離性、安全性、可維護性、模塊化、易於升級和更新以及支持第三方開發等方面的能力,從而滿足不斷變化的業務需求和技術挑戰。 一、插件化探索 在WPF中我們想要開 ...
  • 歡迎ReaLTaiizor是一個用戶友好的、以設計為中心的.NET WinForms項目控制項庫,包含廣泛的組件。您可以使用不同的主題選項對項目進行個性化設置,並自定義用戶控制項,以使您的應用程式更加專業。 項目地址:https://github.com/Taiizor/ReaLTaiizor 步驟1: ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • Channel 是乾什麼的 The System.Threading.Channels namespace provides a set of synchronization data structures for passing data between producers and consume ...
  • efcore如何優雅的實現按年分庫按月分表 介紹 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能、輕量級針對分表分庫讀寫分離的解決方案,具有零依賴、零學習成本、零業務代碼入侵適配 距離上次發文.net相關的已經有很久了,期間一直在從事java相關的 ...
  • 前言 Spacesniffer 是一個免費的文件掃描工具,通過使用樹狀圖可視化佈局,可以立即瞭解大文件夾的位置,幫助用戶處理找到這些文件夾 當前系統C盤空間 清理後系統C盤空間 下載 Spacesniffer 下載地址:https://spacesniffer.en.softonic.com/dow ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • 一、ReZero簡介 ReZero是一款.NET中間件 : 全網唯一開源界面操作就能生成API , 可以集成到任何.NET6+ API項目,無破壞性,也可讓非.NET用戶使用exe文件 免費開源:MIT最寬鬆協議 , 一直從事開源事業十年,一直堅持開源 1.1 純ReZero開發 適合.Net Co ...
  • 一:背景 1. 講故事 停了一個月沒有更新文章了,主要是忙於寫 C#內功修煉系列的PPT,現在基本上接近尾聲,可以回頭繼續更新這段時間分析dump的一些事故報告,有朋友微信上找到我,說他們的系統出現了大量的http超時,程式不響應處理了,讓我幫忙看下怎麼回事,dump也抓到了。 二:WinDbg分析 ...
  • 開始做項目管理了(本人3年java,來到這邊之後真沒想到...),天天開會溝通整理需求,他們講話的時候忙裡偷閑整理一下常用的方法,其實語言還是有共通性的,基本上看到方法名就大概能猜出來用法。出去打水的時候看到外面太陽好好,真想在外面坐著曬太陽,回來的時候好兄弟三年前送給我的鍵盤D鍵不靈了,在打"等待 ...