KubeSphere平臺安裝

KubeSphere簡介

KubeSphere 是一款功能強大的容器管理平臺,以下是其簡介:

1)基本信息

  • 開源項目:基于 Apache-2.0 授權協議開源,由 Google Go、Groovy、HTML/CSS 和 Shell 等多種編程語言開發。
  • 基礎架構:以 Kubernetes 為內核,架構具有即插即用特性,可運行在私有云、公有云、混合云等多種環境,支持多云與多集群的統一管理。

2)功能特性

  • 全棧 IT 自動化:提供從 Kubernetes 集群搭建到運維的全棧 IT 自動化能力,支持在線和離線安裝、升級與擴容。
  • 可視化資源管理:提供可視化的 Kubernetes 資源管理界面,用戶可通過向導式界面輕松創建和管理各種 K8s 資源。
  • 強大的 DevOps 功能:內置基于 Jenkins 的 DevOps 系統,支持圖形化和腳本兩種方式的 CI/CD 流水線構建,還提供 S2I 和 B2I 等 CD 工具。
  • 微服務治理出色:基于 Istio 提供可視化無代碼侵入的灰度發布、熔斷、流量治理等功能,同時支持分布式 Tracing。
  • 多租戶管理:提供基于角色的細粒度統一認證,支持對接企業 LDAP/AD,實現多層級的權限管理。
  • 可觀察性強:提供集群、工作負載、Pod、容器等多維度的監控,支持基于多租戶的日志查詢與日志收集,提供節點與應用層級的告警與通知功能。
  • 基礎設施管理全面:支持 Kubernetes 節點管理、節點擴容與集群升級,支持對接多種存儲系統,提供可視化運維管理 PVC、StorageClass 的功能,并支持 CSI 插件對接云平臺存儲。
  • 網絡管理靈活:提供租戶網絡隔離與 K8s NetworkPolicy 管理功能,支持 Calico、Flannel 等多種網絡插件,并提供 Porter LB 用于暴露物理環境 K8s 集群的 LoadBalancer 服務。
  • 支持 GPU 資源管理:可運行 TensorFlow 等 ML 框架,為 AI 和大數據應用提供支持。
  • 技術架構:采用前后端分離設計,后端各個功能組件可通過 REST API 對接外部系統,這種設計讓其能靈活運行在各種 Kubernetes、私有云、公有云、VM 或物理環境之上。

3)應用場景

  • 助力業務數字化轉型:幫助企業一步升級容器架構,適應數字化轉型需求。
  • 降低運維復雜度:通過多維管控 Kubernetes,讓運維工作更加輕松。
  • 推動企業 DevOps 落地:實現敏捷開發與自動化運維,提升開發和運維效率。
  • 升級云原生架構:提供靈活的微服務解決方案,助力企業構建云原生架構。
  • 釋放硬件最大效能:基于物理環境構建全棧容器架構,充分利用硬件資源。

在本次部署中選擇用NFS作為存儲

1、為什么需要用到NFS?

  • 提供持久化存儲:在 KubeSphere 中,應用產生的數據需要持久化保存,如數據庫的存儲、應用的配置文件等。NFS 能將服務器上的目錄共享給 Kubernetes 集群中的多個節點,使容器在重啟或在不同節點間遷移時,仍可訪問到相同的數據,保證應用的正常運行和數據的一致性。
  • 實現數據共享:KubeSphere 中的多個容器或應用可能需要共享數據,NFS 允許不同節點上的容器掛載同一個 NFS 共享目錄,實現數據的共享和交換,便于應用之間協作。比如,多個 Web 應用容器可能需要共享靜態資源文件,通過 NFS 就可以方便地實現。
  • 簡化存儲管理:NFS 的配置和管理相對簡單。管理員只需在 NFS 服務器上配置共享目錄和訪問權限,KubeSphere 集群中的節點即可通過網絡掛載 NFS 目錄,無需在每個節點上單獨配置復雜的存儲設備和管理策略,降低了存儲管理的難度和成本。
  • 支持動態卷供應:結合 Kubernetes 的 NFS Subdir External Provisioner 插件,NFS 能為 KubeSphere 提供動態卷供應能力。當有新的 PersistentVolumeClaim(PVC)創建時,系統可自動根據 StorageClass 的配置,在 NFS 服務器上創建對應的存儲卷并掛載到需要的容器中,提高了存儲資源的分配效率和靈活性。
  • 兼容性和通用性:NFS 是一種廣泛支持的網絡存儲協議,與 KubeSphere 及 Kubernetes 生態系統中的許多組件和應用都有良好的兼容性。大多數容器化應用都能輕松地使用 NFS 作為存儲后端,無需進行大量的適配工作,方便用戶在 KubeSphere 平臺上部署各種類型的應用。

2、?在KubeSphere部署中,NFS和其他存儲方案對比有什么優缺點?

在 KubeSphere 部署中,NFS 和其他常見存儲方案(如本地磁盤、Ceph、Longhorn)對比如下:

2.1、NFS存儲方案
優點
  • 簡單易維護:設置和維護相對容易,管理人員只需在 NFS 服務器上配置共享目錄和訪問權限,即可實現存儲共享,對技術要求相對較低。
  • 共享能力強:允許多個節點和 Pod 同時訪問相同的文件系統,能很好地滿足多個應用或容器之間共享數據的需求。
  • 成本低廉:通常運行在標準的硬件和網絡基礎設施上,無需特殊的存儲硬件設備,可顯著降低存儲成本。
  • 動態供給:通過使用 NFS 客戶端動態配置器,如 nfs-client-provisioner,Kubernetes 可以動態創建和管理持久化卷,提高存儲資源的分配效率。
  • 兼容性廣泛:作為得到廣泛支持的文件共享協議,與許多云服務提供商和存儲解決方案都兼容,大多數容器化應用都能輕松使用。
缺點
  • 存在單點故障:NFS 服務器一旦出現問題,所有依賴它的服務都可能受到影響,導致業務中斷。
  • 性能瓶頸:在高負載和大量并發訪問的場景下,性能可能不如專為容器化環境設計的存儲解決方案。
  • 網絡依賴嚴重:性能和穩定性高度依賴網絡質量,網絡問題可能導致連接異常或中斷,影響應用的正常運行。
  • 容量管理困難:難以限制實際使用容量,可能導致存儲空間的過度使用,造成存儲資源的浪費。
  • 數據安全風險:本身不提供數據冗余或備份功能,需要額外配置以確保數據安全,在處理敏感數據時安全性相對較弱。
2.2、本地磁盤存儲方案
優點
  • 性能卓越:磁盤和應用系統中間的 IO 路徑最短,可以提供最佳的性能,能滿足 IO 密集型應用對磁盤讀寫速度的要求。
  • 數據可靠:通過 RAID 技術可以避免因單個磁盤故障而導致的數據丟失,提供了一定程度的可靠性保證。
  • 部署簡單:在服務器的硬盤槽上插上硬盤,利用 HBA 卡或軟件的方式制作 RAID,劃分邏輯卷,格式化成某種文件系統后,掛載到容器中即可。
缺點
  • 數據不可遷移:由于容器的動態性,Pod 漂移至其他節點時,無法使用之前節點磁盤上的數據,限制了 Pod 的調度靈活性。
  • 缺乏節點級高可用:當物理節點發生故障時,數據都存儲在故障節點上,應用無法在其他節點恢復運行。
  • 擴展困難:業務使用的存儲空間受限于本地磁盤的大小,達到磁盤空間上限后難以擴容,且部署 RAID 耗時較長,難以快速部署大量應用系統。
2.3、Ceph 存儲方案
優點
  • 高擴展性:能夠輕松應對大規模數據存儲需求,可通過添加節點實現性能和容量的線性擴展。
  • 高可靠性:采用分布式架構,數據分布在多個節點上,通過數據冗余和副本機制確保數據的高可用性和可靠性。
  • 支持多種存儲類型:支持塊存儲、對象存儲和文件存儲等多種存儲類型,能滿足不同應用場景的需求。
缺點
  • 部署和管理復雜:需要專業的知識和技能進行部署、配置和維護,對運維人員要求較高。
  • 性能優化難度大:由于涉及多個組件和復雜的網絡拓撲,性能優化需要深入了解其架構和原理,難度較大。
  • 資源消耗較高:為了保證性能和可靠性,Ceph 需要較多的計算和存儲資源,成本相對較高。

2.4、Longhorn 存儲方案
優點
  • 輕量級高可用:特別適用于 Kubernetes 環境,提供易于使用的圖形界面,方便用戶進行管理和操作。
  • 自動快照和備份:具備自動快照、備份和恢復等功能,可有效保護數據,降低數據丟失風險。
  • 動態擴展:支持動態擴展,能夠根據業務需求靈活調整存儲容量。
缺點
  • 功能相對有限:與一些功能強大的企業級存儲系統相比,功能可能不夠豐富,對于一些復雜的存儲需求可能無法滿足。
  • 性能表現因環境而異:在不同的硬件和網絡環境下,性能表現可能存在較大差異,需要進行充分的測試和優化。

一、配置NFS

1、所有服務器節點安裝NFS服務

前面實驗已經安裝過參考博客:k8s基礎(6)—Kubernetes-存儲_kubectl delete pvc-CSDN博客

2、配置KubeSphere共享的目錄

#步驟一:創建共享目錄
mkdir -p /opt/nfs/data/kubesphere#步驟二:在/etc/exports文件中加入下面的行
/opt/nfs/data/kubesphere *(insecure,rw,sync,no_root_squash)#步驟三:重啟NFS服務
systemctl restart rpcbind && systemctl enable rpcbind
systemctl restart nfs && systemctl enable nfs#步驟四:查看配置是否生效
exportfs -r
exportfs#步驟五:其他集群節點上查看配置是否生效
showmount -e 192.168.72.130

?

3、部署NFS Subdir External Provisioner 插件

作用:因為NFS沒有可以提供動態卷供應的能力,安裝NFS Subdir External Provisioner 插件,NFS 能為 KubeSphere 提供動態卷供應能力。當有新的 PersistentVolumeClaim(PVC)創建時,系統可自動根據 StorageClass 的配置,在 NFS 服務器上創建對應的存儲卷并掛載到需要的容器中,提高了存儲資源的分配效率和靈活性。

3.1、安裝步驟

#步驟一:創建安裝目錄
mkdir -p  /opt/k8s/kubesphere && cd /opt/k8s/kubesphere#步驟二:下載壓縮包
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/archive/refs/tags/nfs-subdir-external-provisioner-4.0.18.zip#步驟三:下載后解壓
unzip nfs-subdir-external-provisioner-4.0.18.zip#步驟四:進入文件目錄
cd nfs-subdir-external-provisioner-nfs-subdir-external-provisioner-4.0.18#步驟五:創建命名空間(Namespace)方便管理
kubectl create ns nfs-system#步驟六:替換部署文件中的命名空間名稱
sed -i'' "s/namespace:.*/namespace: nfs-system/g" ./deploy/rbac.yaml ./deploy/deployment.yaml#步驟七:替換部署文件中的命名空間為nfs-system
cd /opt/k8s/kubesphere/nfs-subdir-external-provisioner-nfs-subdir-external-provisioner-4.0.18sed -i'' "s/namespace:.*/namespace: nfs-system/g" ./deploy/rbac.yaml ./deploy/deployment.yamlgrep "namespace:" ./deploy/*     #驗證是否替換成功#步驟八:創建RBAC資源
cd /opt/k8s/kubesphere/nfs-subdir-external-provisioner-nfs-subdir-external-provisioner-4.0.18/deploy
kubectl apply -f rbac.yaml#步驟九:檢查NFS客戶端Provisioner部署是否成功#檢查 ServiceAccount輸出中是否包含 nfs-client-provisioner,確認 ServiceAccount 已經正確創建
kubectl get serviceaccount -n nfs-system|grep nfs-client-provisioner#檢查RBAC配置,確認ClusterRole和ClusterRoleBinding 是否已創建:
kubectl get clusterrole | grep nfs-client-provisioner-runner
kubectl get clusterrolebinding | grep run-nfs-client-provisioner#步驟十:
#1)配置deployment.yaml將nfs-subdir-external-provisioner:v4.0.2的鏡像地址改為自己的私有鏡像地址(注:nfs-subdir-external-provisioner:v4.0.2鏡像GitHub上獲取網絡受阻,可以先找到資源上傳到自己的私有倉庫中,可參考的源有:registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/nfs-subdir-external-provisioner:v4.0.2)
#2)修改NFS_SERVER和NFS_PATH為NFS主機對應的IP和共享的目錄
#3)修改volumes中的server和path為NFS主機的IP和NFS共享的目錄
#如下:
apiVersion: apps/v1
kind: Deployment
metadata:name: nfs-client-provisionerlabels:app: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: nfs-system
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccountName: nfs-client-provisionercontainers:- name: nfs-client-provisionerimage: registry.cn-hangzhou.aliyuncs.com/yangbin-docker/nfs-subdir-external-provisioner:v4.0.2imagePullPolicy: IfNotPresentvolumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: k8s-sigs.io/nfs-subdir-external-provisioner- name: NFS_SERVERvalue: 192.168.72.130- name: NFS_PATHvalue: /opt/nfs/data/kubespherevolumes:- name: nfs-client-rootnfs:server: 192.168.72.130path: /opt/nfs/data/kubesphere#步驟十一:執行/nfs-subdir-external-provisioner部署命令
kubectl apply -f deployment.yaml#步驟十二:驗證插件是否部署成功
kubectl get deployment,pods -n nfs-system#步驟十三:部署StorageClass
kubectl apply -f class.yaml#檢查StorageClass是否部署成功
kubectl get sc 

3.2、檢查Provisioner、ClusterRole、ClusterRoleBinding是否部署成功

3.3、檢查nfs-client-provisioner是否部署成功

?

3.4、檢查StorageClass是否部署成功

?

?二、部署KubeSphere

1.安裝核心組件 KubeSphere Core

1.1、安裝helm

#步驟一:下載helm安裝包
wget https://get.helm.sh/helm-v3.10.0-linux-amd64.tar.gz#步驟二:解壓
tar -zxvf helm-v3.10.0-linux-amd64.tar.gz#步驟三:將helm配置成系統命令
mv linux-amd64/helm /usr/local/bin/helm

1.2、通過helm安裝KubeSphere的核心組件KubeSphere Core

helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.com.cn/main/ks-core-1.1.3.tgz --debug --wait \
--set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \
--set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \
--set hostClusterName=k8s-paco



1.3、查看部署是否成功?

2、瀏覽器上輸入地址進行登錄驗證

2.1、在瀏覽器上輸入上述的地址?

2.2、修改密碼

三、KubeSphere模塊介紹

1、工作臺功能介紹

1.1、查看之前安裝的集群

?

1.2、集群節點(Nodes)

1.3、項目(NameSpace)?

1.4、工作負載

  • Deployment (自定義服務)
  • StatefulSet(有狀態副本集)
  • DaemonSet(守護進程集)

1.5、容器組(Pods)?

1.6、服務(Service)

?

1.7、配置

保密字典(Secret)
配置字典(ConfigMap

1.8、配置

持久卷(pv)
持久卷聲明(pvc)
存儲類(StorageClass

1.9、集群設置

2、擴展市場

在此可以安裝自己業務需要的組件

?

3、應用商店

?

參考文檔:KubeSphere部署安裝,接入KubeKey安裝的k8s集群_kubesphere 安裝部署-CSDN博客

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

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

相關文章

UE5銷毀Actor,移動Actor,簡單的空氣墻的制作

1.銷毀Actor 1.Actor中存在Destory()函數和Destoryed()函數 Destory()函數是成員函數,它會立即標記 Actor 為銷毀狀態,并且會從場景中移除該 Actor。它會觸發生命周期中的銷毀過程,調用 Destroy() 后,Actor 立即進入銷毀過程。具體…

Hadoop 基礎原理

Hadoop 基礎原理 基本介紹Hadoop 的必要性Hadoop 核心組件Hadoop 生態系統中的附加組件 HDFSHDFS 集群架構HDFS 讀寫流程HDFS 寫流程HDFS 讀流程 NameNode 持久化機制 MapReduce底層原理示例 Hadoop 是一個由 Apache 基金會開發的分布式系統基礎架構,主要解決海量數…

Linux編輯器

1.三種模式 2.圖例 3.wq 4.光標的使用

2.24DFS和BFS刷題

洛谷P2895&#xff1a;用BFS走出危險區域&#xff0c;危險區域存在時間&#xff0c;我們用ma記錄最快變成危險區域的時間&#xff0c; 然后每次枚舉時間1然后跟ma數組比較看能不能走&#xff0c;然后時間復雜度為O(305^2)。 #include<iostream> #include<cstring>…

TMDS視頻編解碼算法

因為使用的是DDR進行傳輸&#xff0c;即雙倍頻率采樣&#xff0c;故時鐘只用是并行數據數據的5倍&#xff0c;而不是10倍。 TMDS算法流程&#xff1a; 視頻編碼TMDS算法流程實現&#xff1a; timescale 1 ps / 1ps //DVI編碼通常用于視頻傳輸&#xff0c;將并行數據轉換為適合…

C++中tuple的用法

C中tuple的用法 在C中&#xff0c;std::tuple 是一個模板類&#xff0c;用于存儲一組不同類型的值。它類似于 Python 中的元組&#xff0c;但具有更強大的功能&#xff0c;例如支持不同類型的元素和更復雜的操作。std::tuple 是 C11 標準引入的&#xff0c;位于 <tuple>…

計算機網絡————(一)HTTP講解

基礎內容分類 從TCP/IP協議棧為依托&#xff0c;由上至下、從應用層到基礎設施介紹協議。 1.應用層&#xff1a; HTTP/1.1 Websocket HTTP/2.0 2.應用層的安全基礎設施 LTS/SSL 3.傳輸層 TCP 4.網絡層及數據鏈路層 IP層和以太網 HTTP協議 網絡頁面形成基本 流程&#xff1a…

【網絡編程】廣播和組播

數據包發送方式只有一個接受方&#xff0c;稱為單播。如果同時發給局域網中的所有主機&#xff0c;稱為廣播。只有用戶數據報(使用UDP協議)套接字才能廣播&#xff1a; 廣播地址以192.168.1.0 (255.255.255.0) 網段為例&#xff0c;最大的主機地址192.168.1.255代表該網段的廣…

小程序如何實現跨頁面通信

前言 最近有很多同學問&#xff0c;小程序里面如何進行跨頁面通信。看了下之前的老代碼&#xff0c;基本都是基于onShow或者localStorage。雖然可以實現&#xff0c;但是并不怎么優雅。 今天就來聊一聊&#xff0c;小程序的跨頁面通信的幾種實現方案。或許會有你想要的方案&a…

【工具】win-畫圖 保留圖片信息并僅改變圖片比例的工具

Windows 系統自帶的“畫圖”工具 Windows 系統自帶的“畫圖”&#xff08;Paint&#xff09;工具可以進行簡單的圖片編輯&#xff0c;包括調整圖片大小和比例。 使用方法&#xff1a; 打開“畫圖”工具&#xff08;可以通過在開始菜單中搜索“畫圖”或“Paint”&#xff09;。…

如何編輯autodl中以.bashrc結尾的隱藏文件

在nnunet的運行過程中遇到了設置環境變量的問題。之前沒有接觸過linux系統&#xff0c;但是autodl里面默認是linux系統。.bashrc 是一個在 Bash shell 啟動時執行的腳本文件&#xff0c;常用于設置環境變量、定義別名、加載函數等&#xff0c;用戶可以通過編輯這個文件來定制自…

實驗3 知識表示與推理

實驗3 知識表示與推理 一、實驗目的 &#xff08;1&#xff09;掌握知識和知識表示的基本概念&#xff0c;理解其在AI中的深刻含義與意義&#xff1b; &#xff08;2&#xff09;熟悉AI中常用的知識表示方法的優缺點及其應用場景&#xff1b; &#xff08;3&#xff09;掌握產…

在 M1 Mac 上解鎖 TensorFlow GPU 加速:從環境搭建到實戰驗證

在 M1 Mac 上解鎖 TensorFlow GPU 加速&#xff1a;從環境搭建到實戰驗證 前言&#xff1a;蘋果芯片的深度學習新紀元 隨著 Apple Silicon 芯片的普及&#xff0c;M1/M2/M3 系列 Mac 已成為移動端深度學習開發的新選擇。本文將以 TensorFlow 2.x 為例&#xff0c;手把手教你如…

Python 數據分析概述 ①

一文讀懂Python數據分析&#xff1a;從基礎到實踐全攻略 在當今數字化浪潮中&#xff0c;數據分析已然成為解鎖海量數據價值的關鍵鑰匙&#xff0c;而Python憑借其獨特優勢&#xff0c;在數據分析領域大放異彩。今天&#xff0c;咱們就結合教學PPT內容&#xff0c;深入探索Pyt…

【Gin-Web】Bluebell社區項目梳理6:限流策略-漏桶與令牌桶

本文目錄 一、限流二、漏桶三、令牌桶算法四、Gin框架中實現令牌桶限流 一、限流 限流又稱為流量控制&#xff0c;也就是流控&#xff0c;通常是指限制到達系統的并發請求數。 限流雖然會影響部分用戶的使用體驗&#xff0c;但是能一定程度上保證系統的穩定性&#xff0c;不至…

Linux高并發服務器開發 第十九天(線程 進程)

目錄 1.進程組和會話 2.守護進程 2.1守護進程daemon概念 2.2創建守護進程 3.線程 3.1線程的概念 3.2線程內核三級映射 3.3線程共享 3.4線程優缺點 4.線程控制原語 4.1獲取線程id 4.2創建線程 4.3循環創建N個子線 4.4子線程傳參地址&#xff0c;錯誤示例 4.5線程…

軟件工程和系統分析與設計

軟件工程 1、軟件危機 2、軟件過程模型 2.1 瀑布模型 2.2原型模型 2.3螺旋模型 2.4敏捷模型 2.5軟件統一過程 3、軟件能力成熟度模型 CMM 4、軟件能力成熟度模型集成 CMMI 系統分析與設計 1、結構化方法SASD 1.1結構化分析 DFD 1.2結構化設計 SD-是一種面向數據流的設計…

Qt/C++面試【速通筆記一】

Qt 信號與槽機制 什么是信號&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;&#xff1f; 在Qt中&#xff0c;信號&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;是實現對象之間通信的一種機制。信號是對象在某些事件發生時發出的通知&…

LangChain大模型應用開發:構建Agent智能體

介紹 大家好&#xff0c;博主又來給大家分享知識了。今天要給大家分享的內容是使用LangChain進行大模型應用開發中的構建Agent智能體。 在LangChain中&#xff0c;Agent智能體是一種能夠根據輸入的任務或問題&#xff0c;動態地決定使用哪些工具(如搜索引擎、數據庫查詢等)來…

微服務架構概述及創建父子項目

目錄 一&#xff0c;什么是單體架構 二&#xff0c;什么是集群和分布式架構 三&#xff0c;什么是微服務架構 四&#xff0c;解決微服務難題的方案Spring-cloud Spring Cloud Alibaba是阿里巴實現的方案&#xff0c;基于SpringCloud的規范。如果說Spring Cloud Netflix 是…