如何安裝 KubeSphere 以及管理 Workspace 和新增 Label


前言

在 Kubernetes 的世界中,KubeSphere 是一個功能強大的開源容器平台,它不僅讓 Kubernetes 的管理更簡單,還集成了多集群管理、DevOps、微服務治理等功能。本篇文章將教您如何使用 Helm 快速安裝 KubeSphere,並如何通過管理 Workspace 和新增 Label 來實現資源的高效管理。


一、使用 Helm 安裝 KubeSphere

1. 為什麼選擇 Helm 安裝?

Helm 是 Kubernetes 中廣泛使用的包管理工具,使用 Helm 安裝 KubeSphere 有以下優點:

  • 自動化:簡化安裝過程,減少手動配置。
  • 靈活性:可以根據需求自定義安裝的模組。
  • 版本控制:支持管理和回滾安裝的不同版本。

2. 安裝前準備

在開始安裝之前,請確保以下條件:

  • Kubernetes 集群:已準備好 1.19 或以上版本的 Kubernetes 集群。
  • Helm 工具:安裝並配置 Helm CLI 工具(3.x 版本)。

安裝 Helm

如果尚未安裝 Helm,可以使用以下命令:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

驗證 Helm 是否成功安裝:

helm version

3. 使用 Helm 安裝 KubeSphere

步驟 1:添加 Helm Repository

首先添加官方的 KubeSphere Helm Chart 倉庫:

helm repo add kubesphere https://charts.kubesphere.io/main
helm repo update

步驟 2:自定義安裝配置

您可以使用以下命令下載 KubeSphere 的默認安裝配置:

helm show values kubesphere/ks-core > ks-values.yaml

根據需求修改 ks-values.yaml,例如開啟監控功能:

monitoring:
  enabled: true
  persistence:
    storageClass: "default"

步驟 3:執行安裝

使用 Helm 命令安裝 KubeSphere 到指定的命名空間(默認為 kubesphere-system):

helm install ks-core kubesphere/ks-core -n kubesphere-system --create-namespace -f ks-values.yaml

步驟 4:確認安裝

檢查安裝的 Pod 狀態:

kubectl get pods -n kubesphere-system

當所有 Pod 的狀態為 Running 時,說明安裝成功。

步驟 5:訪問 KubeSphere

  1. 默認登錄賬戶:
    • 用戶名admin
    • 密碼xxxxx

使用瀏覽器訪問 KubeSphere 的 Web 界面:

http://<NodeIP>:<NodePort>

獲取 KubeSphere 的 NodePort 或 LoadBalancer 地址:

kubectl get svc -n kubesphere-system

二、管理 Workspace

1. 什麼是 Workspace?

在 KubeSphere 中,Workspace 是對 Kubernetes 資源(例如命名空間 Namespace)的一層抽象,用於分組管理 Projects(項目)和用戶權限。

2. 如何查看 Workspaces

方法 1:通過 KubeSphere 界面

  1. 登錄 KubeSphere 控制台。
  2. 點擊左側導航欄的 Platform > Workspace Management
  3. 您將看到所有已創建的 Workspace。

方法 2:使用 kubectl 命令

執行以下命令查看所有 Workspace:

kubectl get workspaces

輸出範例:

NAME               AGE
system-workspace   10d
dev-workspace      7d
prod-workspace     3d

3. 如何創建新的 Workspace

方法 1:通過 KubeSphere 界面創建

  1. 點擊 Workspace Management 頁面的 Create 按鈕。
  2. 輸入 Workspace 名稱(例如 prod-workspace)並設置管理者用戶。
  3. 點擊確認完成創建。

方法 2:使用 kubectl 創建

您可以通過 YAML 文件創建 Workspace,例如:

apiVersion: tenant.kubesphere.io/v1alpha2
kind: Workspace
metadata:
  name: prod-workspace
spec:
  manager: admin

應用文件:

kubectl apply -f workspace-prod.yaml

三、新增 Label 與管理 Namespace

1. 什麼是 Label?

Label 是一種鍵值對(Key-Value),用於標記 Kubernetes 資源。您可以使用 Label 為資源分類,並方便後續的篩選和管理。

2. 如何為 Namespace 添加 Label

執行以下命令為 Namespace 添加 Label:

kubectl label namespace <namespace-name> <label-key>=<label-value>

範例:

kubectl label namespace default kubesphere.io/workspace=system-workspace kubesphere.io/managed=true

檢查是否添加成功:

kubectl get namespaces --show-labels

輸出範例:

NAME         STATUS   AGE   LABELS
monitoring   Active   12d   environment=production

3. 如何移除 Label

使用以下命令移除 Label:

kubectl label namespace <namespace-name> <label-key>-

4. 篩選帶有指定 Label 的資源

您可以使用 Label Selector 篩選資源。例如,查找所有帶有 environment=production 的命名空間:

kubectl get namespaces -l environment=production

四、結語

通過 Helm 安裝 KubeSphere,您可以更快地完成系統部署,同時利用 KubeSphere 強大的功能來管理 Kubernetes 集群資源。Workspace 的分組管理和 Label 的高效篩選,能讓資源管理更加靈活和高效。希望這篇文章能幫助您快速上手 KubeSphere,提升容器管理效率!


這篇文章已經更新為使用 Helm 安裝的版本,並且包含完整的 Workspace 和 Label 管理指南。如果需要進一步修改或補充,請隨時告知!

資料整理來自 GPT

Read more

我的經驗

1. 網絡與安全 (Networking & Security) * Fortigate: 防火牆來管理網路環境 * Traefik: 用於 K8s 的 2. 虛擬化與存儲 (Virtualization & Storage) * Esxi: 買了一台server 使用 Esxi 管理 vm * TrueNAS: 還沒有買 NAS 使用這個加減用一下 3. DevOps 與持續交付 (DevOps & CI/CD) * ArgoCD: GitOps 工具,用於 Kubernetes 的應用交付和管理,支持自動化部署和同步。 * KubeSphere:提供完整的 CI/CD 工作流管理、應用部署和 DevOps 整合功能,是 Kubernetes

By Tim Chiagn

使用 Bitnami/Discourse 的心得與注意事項

Discourse 是一個現代化的開源論壇軟體,Bitnami 提供的 Docker 鏡像使其在 Kubernetes 或 Docker 環境中的部署更加方便。然而,過程中有一些細節需要特別留意,以下是我的實際使用經驗與解決方法。 1. Persisting 儲存的路徑 Discourse 的 Bitnami 鏡像需要持久化數據來確保論壇的穩定運行,尤其是 PostgreSQL 資料庫的數據存儲。 * Persisting 儲存路徑: Bitnami/Discourse 預設將 PostgreSQL 的數據儲存在 /bitnami/postgresql,這是需要持久化的關鍵目錄。 * 解決方案: 配合 NFS 或其他外部存儲解決方案,可以確保數據的持續性和高可用性。 2. 搭配 NFS Provider 使用 NFS Subdir External Provisioner 是一種高效的方法,能確保 Discourse

By Tim Chiagn