Rancher2.8.5架構

大多數 Rancher 2.x 軟件均運行在 Rancher Server 上。Rancher Server 包括用于管理整個 Rancher 部署的所有軟件組件。

下圖展示了 Rancher 2.x 的上層架構。下圖中,Rancher Server 管理兩個下游 Kubernetes 集群,其中一個由 RKE 創建,另一個由 Amazon EKS 創建。

為了達到最佳性能和安全性,我們建議你為 Rancher Management Server 創建一個專用的 Kubernetes 集群。不建議在此集群上運行用戶工作負載。部署 Rancher 后,你可以創建或導入集群來運行你的工作負載。

下圖介紹了用戶如何通過 Rancher 的認證代理管理?Rancher 啟動的 Kubernetes?集群和托管的 Kubernetes?集群:

通過 Rancher 的認證代理管理 Kubernetes 集群

Rancher 如何配置和管理運行應用和服務的下游集群。

下圖顯示了 Cluster Controller、Cluster Agent 和 Node Agent 讓 Rancher 控制下游集群的。

與下游集群通信

以下描述對應于上圖中的數字:

  1. 認證代理
  2. Cluster Controller 和 Cluster Agent
  3. Node Agents
  4. 授權集群端點

Components?

1. 認證代理?

在此圖中,名為 Bob 的用戶希望查看在名為 User Cluster 1 的下游集群上運行的所有 Pod。在 Rancher 中,他可以運行?kubectl?命令來查看 Pod。Bob 通過 Rancher 的認證代理進行身份驗證。

認證代理將所有 Kubernetes API 調用轉發到下游集群。它集成了本地身份驗證、Active Directory 和 GitHub 等身份驗證方式。在每個 Kubernetes API 調用請求時,認證代理會驗證請求方的身份,并在轉發給 Kubernetes master 節點之前,設置正確的 Kubernetes 消息頭。

Rancher 使用?ServiceAccount?與 Kubernetes 集群通信,該 ServiceAccount 為在 Pod 中運行的進程提供身份。

默認情況下,Rancher 生成一個?kubeconfig 文件,文件包含憑證信息,用于為 Rancher Server 連接下游集群的 Kubernetes API Server 的代理。kubeconfig 文件 (kube_config_rancher-cluster.yml) 包含對集群的完全訪問權限。

2. Cluster Controller 和 Cluster Agent?

每個下游集群都有一個 Cluster Agent,用于打開與 Rancher Server 中對應的 Cluster Controller 之間的通道。每個rancher控制的下游集群都會在rancher上創建一個 Cluster Controller 和下游集群的一個 Cluster Agent。

Cluster Controller 都能:

  • 檢測下游集群中的資源變化
  • 將下游集群的當前狀態變更到目標狀態
  • 配置集群和項目的訪問控制策略
  • 通過調用所需的 Docker Machine 驅動和 Kubernetes 引擎(例如 RKE 和 GKE)來配置集群

Cluster Agent,也叫做?cattle-cluster-agent,是運行在下游集群中的組件。它具有以下功能:

  • 連接 Rancher 啟動的 Kubernetes 集群中的 Kubernetes API。
  • 管理集群內的工作負載,pod 創建和部署。
  • 根據每個集群的全局策略,應用定義的角色和綁定。
  • 通過與 Cluster Controller 之間的通道,實現集群和 Rancher Server 之間的通信,包括事件,統計數據,節點信息和健康狀況。

默認情況下,Cluster Controller 連接到 Cluster Agent,Rancher 才能與下游集群通信。如果 Cluster Agent 不可用,Cluster Controller 可以連接到?Node Agent。

3. Node Agents?

如果 Cluster Agent(也稱為?cattle-cluster-agent)不可用,其中一個 Node Agent 會創建一個連接到 Cluster Controller 的通道與 Rancher 通信。

cattle-node-agent?使用?DaemonSet?資源進行部署,以確保它能在 Rancher 啟動的 Kubernetes 集群中的每個節點上運行,用于在執行集群操作時與節點交互。集群操作的包括升級 Kubernetes 版本,創建或恢復 etcd 快照等。

4. 授權集群端點?

授權集群端點(ACE)可連接到下游集群的 Kubernetes API Server,而不用通過 Rancher 認證代理調度請求。

授權集群端點僅適用于 Rancher 啟動的 Kubernetes 集群,即只適用于 Rancher?使用 RKE?來配置的集群。它不適用于導入的集群,也不適用于托管在 Kubernetes 提供商中的集群(例如 Amazon 的 EKS)。

授權集群端點的主要用途:

  • 在 Rancher 不可用時訪問下游集群
  • 在 Rancher Server 和與下游集群之間相距甚遠時降低延遲

kube-api-auth?微服務為授權集群端點提供用戶驗證功能。當使用?kubectl訪問下游集群時,集群的 Kubernetes API Server 使用?kube-api-auth?服務作為 webhook 對用戶進行身份驗證。

與授權集群端點一樣,kube-api-auth?的身份驗證功能也僅適用于 Rancher 啟動的 Kubernetes 集群。

示例場景:?假設 Rancher Server 位于美國,User Cluster 1 與用戶 Alice 均位于澳大利亞。Alice 可以使用 Rancher UI 操作 User Cluster 1 中的資源,但她的請求必須從澳大利亞發送到美國的 Rancher Server,然后通過代理返回澳大利亞,即下游集群所在的位置。地理距離可能導致明顯延遲,因此,Alice 可以使用授權集群端點來降低延遲。

為下游集群啟用授權集群端點后,Rancher 會在 kubeconfig 文件中額外生成一段 Kubernetes 上下文,用于直連到集群。該文件具有?kubectl?和?helm的憑證。

如果 Rancher 出現問題,你需要使用此 kubeconfig 文件中定義的上下文來訪問集群。因此,我們建議你導出 kubeconfig 文件,以便在 Rancher 出現問題時,仍能使用文件中的憑證訪問集群。詳情請參見使用?kubectl 和 kubeconfig 文件訪問集群的章節。

重要文件?

維護、排除問題和升級集群需要用到以下文件,請妥善保管這些文件:

  • rancher-cluster.yml:RKE 集群配置文件。
  • kube_config_rancher-cluster.yml:集群的 Kubeconfig 文件,包含完全訪問集群的憑證。如果 Rancher 出現問題時,你可以使用此文件認證由 Rancher 啟動的 Kubernetes 集群。
  • rancher-cluster.rkestate:Kubernetes 集群狀態文件,文件包含用于完全訪問集群的憑證。注意:僅在使用 RKE v0.2.0 或更高版本時,才會創建此該文件。

注意:后兩個文件名中的?rancher-cluster?部分取決于你命名 RKE 集群配置文件的方式。

有關在沒有 Rancher 認證代理和其他配置選項的情況下連接到集群的更多信息,請參見?kubeconfig 文件。

Rancher Server 組件和源碼?

下圖展示了 Rancher Server 的組件:

原文鏈接:與下游集群通信 | Rancher?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75487.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75487.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75487.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java Lambda 表達式提升效率

lambda 表達式的應用場景 Stream 的應用場景 Lambda/Stream 的進一步封裝 自定義函數式接口(用 jdk 自帶的函數式接口也可以) https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html import java.io.Serializable;/*** 可序…

keep-alive緩存

#keep-alive緩存動態路由的使用指南# 代碼如下圖 &#xff1a; <router-view v-slot"{ Component }"> <keep-alive :include"[Hot, Notifications, User, Setting, Test]"> <component :is"Component" …

使用 PyTorch 的 `GradualWarmupScheduler` 實現學習率預熱

使用 PyTorch 的 GradualWarmupScheduler 實現學習率預熱 在深度學習中,學習率(Learning Rate, LR)是影響模型訓練效果的關鍵超參數之一。為了提升模型的收斂速度和穩定性,學習率調度策略變得尤為重要。其中,學習率預熱(Learning Rate Warmup) 是一種常用的策略,它通過…

【DLI】Generative AI with Diffusion Models通關秘籍

Generative AI with Diffusion Models&#xff0c;加載時間在20分鐘左右&#xff0c;耐心等待。 6.2TODO 這里是在設置擴散模型的參數&#xff0c;代碼里的FIXME部分需要根據上下文進行替換。以下是各個FIXME的替換說明&#xff1a; 1.a_bar 是 a 的累積乘積&#xff0c;在 …

如何在本地部署魔搭上千問Qwen2.5-VL-32B-Instruct-AWQ模型在顯卡1上面運行推理,并開啟api服務

環境: 云服務器Ubuntu NVIDIA H20 96GB Qwen2.5-VL-32B Qwen2.5-VL-72B 問題描述: 如何在本地部署魔搭上千問Qwen2.5-VL-32B-Instruct-AWQ模型在顯卡1上面運行推理,并開啟api服務 解決方案: 1.環境準備 硬件要求 顯卡1(顯存需≥48GB,推薦≥64GB)CUDA 11.7或更高…

基于方法分類的無監督圖像去霧論文

在之前的博客中&#xff0c;我從研究動機的角度對無監督圖像去霧論文進行了分類&#xff0c;而現在我打算根據論文中提出的方法進行新的分類。 1. 基于對比學習的方法 2022年 論文《UCL-Dehaze: Towards Real-world Image Dehazing via Unsupervised Contrastive Learning》&a…

4月3號.

JDK7前時間相關類: 時間的相關知識: Data時間類: //1.創建對象表示一個時間 Date d1 new Date(); //System.out.println(d1);//2.創建對象表示一個指定的時間 Date d2 new Date(0L); System.out.println(d2);//3.setTime修改時間 //1000毫秒1秒 d2.setTime(1000L); System.o…

數據結構與算法:子數組最大累加和問題及擴展

前言 子數組最大累加和問題看似簡單,但能延伸出的題目非常多,千題千面,而且會和其他算法結合出現。 一、最大子數組和 class Solution { public:int maxSubArray(vector<int>& nums) {int n=nums.size();vector<int>dp(n);//i位置往左能延伸出的最大累加…

MIT6.828 Lab3-2 Print a page table (easy)

實驗內容 實現一個函數來打印頁表的內容&#xff0c;幫助我們更好地理解 xv6 的三級頁表結構。 修改內容 kernel/defs.h中添加函數聲明&#xff0c;方便其它函數調用 void vmprint(pagetable_t);// lab3-2 Print a page tablekernel/vm.c中添加函數具體定義 采用…

2025高頻面試設計模型總結篇

文章目錄 設計模型概念單例模式工廠模式策略模式責任鏈模式 設計模型概念 設計模式是前人總結的軟件設計經驗和解決問題的最佳方案&#xff0c;它們為我們提供了一套可復用、易維護、可擴展的設計思路。 &#xff08;1&#xff09;定義&#xff1a; 設計模式是一套經過驗證的…

Java基礎:面向對象進階(二)

01-static static修飾成員方法 static注意事項&#xff08;3種&#xff09; static應用知識&#xff1a;代碼塊 static應用知識&#xff1a;單列模式 02-面向對象三大特征之二&#xff1a;繼承 什么是繼承&#xff1f; 使用繼承有啥好處? 權限修飾符 單繼承、Object類 方法重…

Spring框架如何做EhCache緩存?

在Spring框架中&#xff0c;緩存是一種常見的優化手段&#xff0c;用于減少對數據庫或其他資源的訪問次數&#xff0c;從而提高應用性能。Spring提供了強大的緩存抽象&#xff0c;支持多種緩存實現&#xff08;如EhCache、Redis、Caffeine等&#xff09;&#xff0c;并可以通過…

NVIDIA顯卡

NVIDIA顯卡作為全球GPU技術的標桿&#xff0c;其產品線覆蓋消費級、專業級、數據中心、移動計算等多個領域&#xff0c;技術迭代貫穿架構創新、AI加速、光線追蹤等核心方向。以下從技術演進、產品矩陣、核心技術、生態布局四個維度展開深度解析&#xff1a; 一、技術演進&…

【BUG】生產環境死鎖問題定位排查解決全過程

目錄 生產環境死鎖問題定位排查解決過程0. 表面現象1. 問題分析&#xff08;1&#xff09;數據庫連接池資源耗盡&#xff08;2&#xff09;數據庫鎖競爭(3) 代碼實現問題 2. 分析解決(0) 分析過程&#xff08;1&#xff09;優化數據庫連接池配置&#xff08;2&#xff09;優化數…

【計算機網絡應用層】

文章目錄 計算機網絡應用層詳解一、前言二、應用層的功能三、常見的應用層協議1. HTTP/HTTPS&#xff08;超文本傳輸協議&#xff09;2. DNS&#xff08;域名系統&#xff09;3. FTP&#xff08;文件傳輸協議&#xff09;4. SMTP/POP3/IMAP&#xff08;電子郵件協議&#xff09…

Linux 虛擬化方案

一、Linux 虛擬化技術分類 1. 全虛擬化 (Full Virtualization) 特點&#xff1a;Guest OS 無需修改&#xff0c;完全模擬硬件 代表技術&#xff1a; KVM (Kernel-based Virtual Machine)&#xff1a;主流方案&#xff0c;集成到 Linux 內核 QEMU&#xff1a;硬件模擬器&…

樹莓派 5 換清華源

首先備份原設置 cp /etc/apt/sources.list ~/sources.list.bak cp /etc/apt/sources.list.d/raspi.list ~/raspi.list.bak修改配置 /etc/apt/sources.list 文件替換內容如下&#xff08;原內容刪除&#xff09; deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm …

WGAN原理及實現(pytorch版)

WGAN原理及實現 一、WGAN原理1.1 原始GAN的缺陷1.2 Wasserstein距離的引入1.3 Kantorovich-Rubinstein對偶1.4 WGAN的優化目標1.4 數學推導步驟1.5 權重裁剪 vs 梯度懲罰1.6 優勢1.7 總結 二、WGAN實現2.1 導包2.2 數據加載和處理2.3 構建生成器2.4 構建判別器2.5 訓練和保存模…

Unity網絡開發基礎 (3) Socket入門 TCP同步連接 與 簡單封裝練習

本文章不作任何商業用途 僅作學習與交流 教程來自Unity唐老獅 關于練習題部分是我觀看教程之后自己實現 所以和老師寫法可能不太一樣 唐老師說掌握其基本思路即可,因為前端程序一般不需要去寫后端邏輯 1.認識Socket的重要API Socket是什么 Socket&#xff08;套接字&#xff0…

【linux】一文掌握 ssh和scp 指令的詳細用法(ssh和scp 備忘速查)

文章目錄 入門連接執行SCP配置位置SCP 選項配置示例ProxyJumpssh-copy-id SSH keygenssh-keygen產生鑰匙類型known_hosts密鑰格式 此快速參考備忘單提供了使用 SSH 的各種方法。 參考&#xff1a; OpenSSH 配置文件示例 (cyberciti.biz)ssh_config (linux.die.net) 入門 連…