搭建Kubesphere集群

快速部署KubeSphere容器平臺

1.環境描述

image.png
  • master :10.10.12.171
  • worker1:10.10.12.172
  • worker2:10.10.12.173
  • Kubeoperator:10.10.12.170(安裝ansible并通過Kubeoperator對kubesphere集群部署kubesphere軟件,要求根目錄至少需要200G用于儲存所需的安裝包)

所有服務器均采用centos7.6版本,最小安裝模式,每個服務器均有一個空余磁盤用于部署ceph

image.png

這里使用的是/dev/sdb磁盤,用于安裝ceph集群

2. 環境準備(所有節點)

2.1 關閉防火墻

systemctl stop firewalld
systemctl disable firewalld

2.2 關閉swap

swapoff -a
sed -i  '/ swap / s/^/#/' /etc/fstab

2.3 關閉Selinux

setenforce 0
sed -i '/=enforcing/ s/enforcing/disabled/' /etc/selinux/config

2.4 安裝所需軟件

yum -y install net-tools sshpass unzip lrzsz vim 

2.5 設置服務器hostname

hostnamectl set-hostname ***(對應每個服務器)

3. 安裝相關組件

kubeoperator描述:在kubeoperator上面安裝ansible工具并通過kubeoperator工具對kubesphere集群的三臺初始服務器安裝Kubernetes和Kubesphere容器平臺。

3.1 登錄kubeoperator服務器

ssh 10.10.12.170

3.2 將所需軟件拷貝到kubeoperator下的/tmp/tmp目錄中

image.png

3.3 給shell腳本文件添加執行權限

image.png
chmod +x prepare.sh

3.4 根據實際環境情況對應修改prepare.sh內容

 vim /tmp/tmp/prepare.sh
image.png
  • installerIp:kubeoperatorIP地址
  • cephPublicNetwork:ceph網段
  • cephPublicNetworkCard:ceph集群物理機網卡名稱
  • cephDisk:ceph盤符名稱

備注:ceph集群統一使用root登錄,密碼為Changeme_123

3.5 執行prepare.sh

sh /tmp/tmp/prepare.sh
image.png

前期準備完成(整個過程大概1分鐘)

3.6 執行deploy-docker.sh,安裝docker

cd /tmp/tmp/devops/
sh deploy-docker.sh 
image.png

3.7 執行deploy-harbor.sh,安裝Harbor鏡像倉庫

sh deploy-harbor.sh 
image.png

整個過程大概持續10分鐘左右

image.png

當ansible腳本完成后,打開網頁瀏覽器輸入:https://10.10.12.170

  • 賬號:admin
  • 密碼:Harbor12345
image.png

Harbor里面包含了所需要的相關kubesphere的安裝包

3.8 執行deploy-kubeoperator.sh,安裝kubeoperator

sh deploy-kubeoperator.sh 
image.png
image.png

當ansible腳本完成后,打開網頁瀏覽器輸入:http://172.16.12.249:8888

  • 賬號:admin
  • 密碼:kubeoperator@admin123
image.png

3.9 執行deploy-ceph.sh,安裝ceph

cd /tmp/tmp/ceph/
sh deploy-ceph.sh
image.png

(大概持續18分鐘左右)

如果 TASK [ceph-dashboard : create dashboard admin user] 執行報錯,請忽略此異常

ceph dashboard 賬戶密碼可以使用以下命令進行創建,創建后可以使用admin/admin登錄dashboard查看和管理ceph

echo "admin" > /tmp/file
ceph dashboard ac-user-create admin -i /tmp/file administrator

另外需要注意的是安裝結束時Install Ceph Dashboard : In Progress (0:02:20)表明當前dashboard還在初始化,需要等待9443端口啟動后(使用以下命令檢查)再進行下一步操作

netstat -ntpl | grep 9443

4. 配置kubeoperator

4.1 設置系統IP

image.png

填寫kubeoperatorIP地址

4.2 創建主機登錄憑據

image.png

image.png

創建主機登錄所需的登錄憑據

4.3 創建主機

image.png

image.png
  • 名稱:填寫主機名稱
  • ip:填寫主機物理IP
  • 端口: 填寫SSH端口
  • 憑據: 選擇root的密碼憑據
image.png

填寫三臺主機以后等待初始化,初始化完成后顯示正常狀態

4.3 創建kubesphere集群

4.3.1 創建資源

image.png

點擊項目-單擊kubeoperator管理員

image.png
image.png
image.png

添加資源主機

4.3.2 創建集群

image.png

集群-->添加

4.3.3 集群信息

image.png

4.3.4 高級選項

image.png

圖片參數僅供參考,可以根據實際情況部署

4.3.5 節點信息

image.png

4.3.6 確認信息

image.png

image.png

等待集群安裝,大概持續50分鐘左右

如果有報錯可以點擊重試再試一次

4.3.7 查看日志

image.png

可以在這里面查到安裝進度日志

image.png

4.4 登錄kubesphere

http://10.10.12.171:30880

image.png

  • 賬號:admin
  • 密碼:P@88w0rd
image.png

5.KubeSphere配置

5.1 創建企業空間、項目、帳戶和角色

本快速入門演示如何創建企業空間、角色和用戶帳戶。

5.1.1 創建賬戶

安裝 KubeSphere 之后,您需要向平臺添加具有不同角色的用戶,以便他們可以針對自己授權的資源在不同的層級進行工作。一開始,系統默認只有一個帳戶 admin,具有 platform-admin 角色。在本步驟中,您將創建一個帳戶 user-manager,然后使用 user-manager 創建新帳戶。

1.使用默認帳戶和密碼 (admin/P@88w0rd) 以 admin 身份登錄 Web 控制臺。

  • 出于安全考慮,強烈建議您在首次登錄控制臺時更改密碼。若要更改密碼,在右上角的下拉菜單中選擇個人設置,在密碼設置中設置新密碼,您也可以在個人設置中修改控制臺語言。
  • image.png

2.登錄控制臺后,點擊左上角的平臺管理,然后選擇訪問控制。

image.png

在帳戶角色中,有如下所示四個可用的內置角色。接下來要創建的第一個帳戶將被分配 users-manager 角色。

內置角色 描述
workspaces-manager 企業空間管理員,管理平臺所有企業空間。
users-manager 用戶管理員,管理平臺所有用戶。
platform-regular 平臺普通用戶,在被邀請加入企業空間或集群之前沒有任何資源操作權限
platform-admin 平臺管理員,可以管理平臺內的所有資源。

內置角色由 KubeSphere 自動創建,無法編輯或刪除。

3.在帳戶管理中,點擊創建。在彈出窗口中,提供所有必要信息(帶有*標記),然后在角色字段選擇 users-manager。請參考下圖示例。

image.png

完成后,點擊確定。新創建的帳戶將顯示在帳戶管理中的帳戶列表中。

4.切換帳戶使用 user-manager 重新登錄,創建如下四個新帳戶,這些帳戶將在其他的教程中使用。

帳戶登出請點擊右上角的用戶名,然后選擇登出

帳戶 角色 描述
ws-manager workspaces-manager 創建和管理所有企業空間。
ws-admin platform-regular 管理指定企業空間中的所有資源(在此示例中,此帳戶用于邀請新成員加入該企業空間)。
platform-admin platform-regular 創建和管理項目以及 DevOps 工程,并邀請新成員加入項目。
project-regular platform-regular project-regular 將由 project-admin 邀請至項目或 DevOps 工程。該帳戶將用于在指定項目中創建工作負載、流水線和其他資源。

5.查看創建的四個帳戶。

image.png

5.1.2 創建企業空間

您需要使用上一個步驟中創建的帳戶 ws-manager 創建一個企業空間。作為管理項目、DevOps 工程和組織成員的基本邏輯單元,企業空間是 KubeSphere 多租戶系統的基礎。

  • 1.以 ws-manager 身份登錄 KubeSphere,它具有管理平臺上所有企業空間的權限。點擊左上角的平臺管理,選擇訪問控制。在企業空間中,可以看到僅列出了一個默認企業空間 system-workspace,即系統企業空間,其中運行著與系統相關的組件和服務,您無法刪除該企業空間。


    image.png
  • 2.點擊右側的創建,將新企業空間命名為 demo-workspace,并將用戶 ws-admin 設置為企業空間管理員,如下圖所示:

    image.png

    完成后,點擊創建

如果您已啟用多集群功能,您需要為企業空間分配一個或多個可用集群,以便項目可以在集群中創建。

  • 3.登出控制臺,然后以 ws-admin 身份重新登錄。在企業空間設置中,選擇企業成員,然后點擊 邀請成員
image.png
  • 4.邀請 project-admin 和 project-regular 進入企業空間,分別授予他們 workspace-self-provisioner 和 workspace-viewer 角色。

實際角色名稱的格式:<workspace name>-<role name>。例如,在名為 demo-workspace 的企業空間中,角色 viewer 的實際角色名稱為 demo-workspace-viewer。

image.png
  • 5.將 project-admin 和 project-regular 都添加到企業空間后,點擊確定。在企業成員中,您可以看到列出的三名成員。
帳戶 角色 描述
ws-admin workspace-admin 管理指定企業空間中的所有資源(在此示例中,此帳戶用于邀請新成員加入該企業空間)。
platform-admin workspace-self-provisioner 創建和管理項目以及 DevOps 工程,并邀請新成員加入項目。
project-regular workspace-viewer project-regular 將由 project-admin 邀請至項目或 DevOps 工程。該帳戶將用于在指定項目中創建工作負載、流水線和其他資源。

5.1.3 創建項目

在此步驟中,您需要使用在上一步驟中創建的帳戶 project-admin 來創建項目。KubeSphere 中的項目與 Kubernetes 中的命名空間相同,為資源提供了虛擬隔離。有關更多信息,請參見命名空間

  • 1.以 project-admin 身份登錄 KubeSphere,在項目管理中,點擊創建
image.png
  • 2.輸入項目名稱(例如 demo-project),然后點擊確定完成,您還可以為項目添加別名和描述。
image.png
  • 3.在項目管理中,點擊剛創建的項目查看其詳細信息。
image.png
  • 4.在項目的概覽頁面,默認情況下未設置項目配額。您可以點擊設置并根據需要指定資源請求和限制(例如:CPU 和內存的限制分別設為 1 Core 和 1000 Gi)。
image.png

image.png
  • 5.邀請 project-regular 至該項目,并授予該用戶 operator 角色。請參考下圖以了解具體步驟。
image.png

具有 operator 角色的用戶是項目維護者,可以管理項目中除用戶和角色以外的資源。

  • 6.在創建路由(即 Kubernetes 中的 Ingress)之前,需要啟用該項目的網關。網關是在項目中運行的 NGINX Ingress 控制器。若要設置網關,請轉到項目設置中的高級設置,然后點擊設置網關。此步驟中仍使用帳戶 project-admin。
image.png
  • 7.選擇訪問方式 NodePort,然后點擊保存
image.png
  • 8.在外網訪問下,可以在頁面上看到網關地址以及 http/https 的端口。
image.png

5.1.4 創建角色

完成上述步驟后,您已了解可以為不同級別的用戶授予不同角色。先前步驟中使用的角色都是 KubeSphere 提供的內置角色。在此步驟中,您將學習如何創建自定義角色以滿足工作需求。

  • 1.再次以 admin 身份登錄控制臺,然后轉到訪問控制

  • 2.帳戶角色中列出了四個系統角色,無法刪除或編輯。點擊創建并設置角色標識符。在本示例將創建一個名為 roles-manager 的角色。

image.png

點擊編輯權限繼續。

  • 3.在訪問控制中,選擇該角色所擁有的權限。例如,本示例選擇帳戶查看角色管理角色查看。點擊確定完成創建。
image.png
  • 4.新創建的角色將列于帳戶角色中,可以點擊右側的三個點對其進行編輯。
image.png
  • 5.在帳戶管理中,添加一個新帳戶并授予其 roles-manager 角色,您也可以通過編輯將現有帳戶的角色更改為 roles-manager。
image.png

5.2 創建并部署WordPress

WordPress 簡介

WordPress(使用 PHP 語言編寫)是免費、開源的內容管理系統,用戶可以使用 WordPress 搭建自己的網站。完整的 WordPress 應用程序包括以下 Kubernetes 對象,由 MySQL 作為后端數據庫。

image.png

準備工作

您需要準備一個 project regular 帳戶,并在一個項目中賦予該帳戶 operator 角色(該用戶已被邀請參加該項目)。有關更多信息,請參見5.1創建企業空間、項目、帳戶和角色。

5.2.1 創建密鑰

創建 MySQL 密鑰

環境變量 WORDPRESS_DB_PASSWORD 是連接到 WordPress 數據庫的密碼。在此步驟中,您需要創建一個密鑰來保存將在 MySQL Pod 模板中使用的環境變量。

  • 1.使用 project-regular 帳戶登錄 KubeSphere 控制臺,訪問 demo-project 的詳情頁并導航到配置中心。在密鑰中,點擊右側的創建
image.png
  • 2.輸入基本信息(例如,將其命名為 mysql-secret)并點擊下一步。在下一頁中,選擇類型默認,然后點擊添加數據來添加鍵值對。輸入如下所示的鍵 (Key) MYSQL_ROOT_PASSWORD 和值 (Value) 123456,點擊右下角 √ 進行確認。完成后,點擊創建按鈕以繼續。
image.png

創建 WordPress 密鑰
按照以上相同的步驟創建一個名為 wordpress-secret 的 WordPress 密鑰,輸入鍵 (Key) WORDPRESS_DB_PASSWORD 和值 (Value) 123456。創建的密鑰顯示在列表中,如下所示:

image.png

5.2.2 創建存儲卷

  • 1.訪問存儲管理下的存儲卷,點擊創建。
image.png
  • 2.輸入卷的基本信息(例如,將其命名為 wordpress-pvc),然后點擊下一步

  • 3.在存儲卷設置中,需要選擇一個可用的存儲類型,并設置訪問模式存儲卷容量。您可以直接使用如下所示的默認值,點擊下一步繼續。

image.png
  • 4.對于高級設置,您無需為當前步驟添加額外的配置,點擊創建完成即可。

5.2.3 創建應用程序

添加 MySQL 后端組件

  • 1.導航到應用負載下的應用,選擇自制應用,再點擊構建自制應用
image.png
  • 2.輸入基本信息(例如,在應用名稱一欄輸入 wordpress),然后點擊下一步
image.png
  • 3.在服務組件中,點擊添加服務以在應用中設置組件。
image.png
  • 4.設置組件的服務類型為有狀態服務

  • 5.輸入有狀態服務的名稱(例如 mysql)并點擊下一步

image.png
  • 6.在容器鏡像中,點擊添加容器鏡像
image.png
  • 7.在搜索框中輸入 mysql:5.6,按下回車鍵,然后點擊使用默認端口。由于配置還未設置完成,請不要點擊右下角的 √ 按鈕。
image.png

在高級設置中,請確保內存限制不小于 1000 Mi,否則 MySQL 可能因內存不足而無法啟動。

  • 8.下滾動到環境變量,點擊引用配置文件密匙。輸入名稱 MYSQL_ROOT_PASSWORD,然后選擇資源 mysql-secret 和前面步驟中創建的密鑰 MYSQL_ROOT_PASSWORD,完成后點擊 √ 保存配置,最后點擊下一步繼續。
image.png
  • 9.選擇掛載存儲中的添加存儲卷模板,輸入存儲卷名稱 (mysql) 和掛載路徑(模式:讀寫,路徑:/var/lib/mysql)的值,如下所示:

image.png

完成后,點擊 √ 保存設置并點擊下一步繼續。

  • 10.在高級設置中,可以直接點擊添加,也可以按需選擇其他選項。
image.png
  • 11.現在,MySQL 組件已經添加完成,如下所示:
image.png

添加 WordPress 前端組件

  • 12.再次點擊添加服務,這一次選擇無狀態服務。輸入名稱 wordpress 并點擊下一步
image.png
  • 13.與上述步驟類似,點擊添加容器鏡像,在搜索欄中輸入 wordpress:4.8-apache 并按下回車鍵,然后點擊使用默認端口
image.png
  • 14.向下滾動到環境變量,點擊引用配置文件或密匙。這里需要添加兩個環境變量,請根據以下截圖輸入值:
    • 對于 WORDPRESS_DB_PASSWORD,請選擇在步驟 1 中創建的 wordpress-secret 和 WORDPRESS_DB_PASSWORD。
    • 點擊添加環境變量,分別輸入 WORDPRESS_DB_HOST 和 mysql 作為鍵 (Key) 和值 (Value)。
image.png

點擊 √ 保存配置,再點擊下一步繼續。

  • 15.在掛載存儲中,點擊添加存儲卷,并選擇已有存儲卷
image.png
image.png
  • 16.選擇上一步創建的 wordpress-pvc,將模式設置為讀寫,并輸入掛載路徑 /var/www/html。點擊 √ 保存,再點擊下一步繼續。
image.png
  • 17.在高級設置中,可以直接點擊添加創建服務,也可以按需選擇其他選項。
image.png
  • 18.現在,前端組件也已設置完成。點擊下一步繼續。
image.png
  • 19.您可以在這里設置路由規則(應用路由 Ingress),也可以直接點擊創建
image.png
  • 20.創建后,應用將顯示在下面的列表中。
image.png

5.2.4 驗證資源

工作負載中,分別檢查部署有狀態副本集中 wordpress-v1 和 mysql-v1 的狀態。如果它們的運行狀態如下圖所示,就意味著 WordPress 已經成功創建。

image.png
image.png

5.2.5 通過NodePort 訪問WordPress

  • 1.若要在集群外訪問服務,請首先導航到服務。點擊 wordpress 右側的三個點后,選擇編輯外網訪問
image.png
  • 2.在訪問方式中選擇 NodePort,然后點擊確定
image.png
  • 3.點擊服務進入詳情頁,可以看到暴露的端口。
image.png
  • 4.通過 {Node IP}:{NodePort} 訪問此應用程序,可以看到下圖:
image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容