在 Linux 部署多節點 Kubernetes 集群與 KubeSphere 容器平台


KubeSphere 是在 Kubernetes 之上構建的以應用為中心企業級容器平台,所有供為用戶提供簡單易用的操作界面以及向導式操作方式。同時,KubeSphere Installer 提供了 快速部署生產級別的 Kubernetes 集群和全棧化容器平台的功能,能夠快速幫助企業用戶快速搭建一套以應用為中心的 DevOps 平台。

KubeSphere 支持部署和運行在包括公有雲、私有雲、VM、BM 和 Kubernetes 等任何基礎設施之上,可以部署在公有雲托管的 Kubernetes 之上(如 GKE、EKS、ACK),也支持部署在私有化的 Kubernetes 之上(如 kubeadm、k3s、RKE 部署的集群)。同時,KubeSphere 支持在線安裝與離線安裝

上一篇文章說明了如何在 Kubernetes 集群部署 KubeSphere,本文章將手把手帶你 使用 KubeSphere Installer 在 3 台 Linux 機器部署一個多節點的 Kubernetes 集群,並開啟 KubeSphere 最小化安裝。

Multi-Node 即多節點部署,部署前建議您選擇集群中任意一個節點作為一台任務執行機 (taskbox),為准備部署的集群中其他節點執行部署的任務,且 Taskbox 應能夠與待部署的其他節點進行 ssh 通信

  • KubeSphere 2.1 默認僅開啟最小化安裝,Installer 已支持自定義安裝各個可插拔的功能組件,用戶可根據業務需求和機器配置選擇安裝所需的組件,請確保開啟可插拔組件之前機器資源滿足最低要求,參考開啟可選組件的安裝。
  • 安裝時間跟網絡情況和帶寬、機器配置、安裝節點個數等因素有關,可通過調高帶寬的方式,或在安裝前 配置鏡像加速器 來加快安裝速度。

說明:

  • 本安裝示例僅作為快速測試部署的演示,因此將使用默認的 OpenEBS 基於 Local Volume 提供持久化存儲服務,OpenEBS 支持 動態申請 PV方便初次安裝但沒有准備存儲服務端的場景下進行部署測試正式環境建議配置使用 KubeSphere 支持的存儲類型,參考 持久化存儲配置說明
  • Multi-node 支持 Master 和 etcd 節點高可用配置,本示例為了方便多節點的快速測試安裝演示,僅部署單個 Master 和單個 etcd,正式環境建議配置 Master 和 etcd 節點的高可用,請參閱文檔的集群高可用部署配置。

前提條件

檢查安裝機器的網絡防火牆是否已關閉,若未關閉防火牆則需要開放相關的指定端口,參考 需開放的端口

第一步: 准備主機

參考以下節點規格准備至少 3 台符合要求的主機開始 multi-node 模式的部署。為防止軟件版本沖突,建議您選擇多台干凈的機器進行安裝

說明:

  • 所有節點需要時間同步,否則可能會安裝不成功;
  • 若使用 ubuntu 16.04 建議使用其最新的版本 16.04.5;
  • 若使用 ubuntu 18.04,則需使用 root 用戶;
  • 若 Debian 系統未安裝 sudo 命令,則需要在安裝前使用 root 用戶執行 apt update && apt install sudo 命令安裝 sudo 命令后再進行安裝;
  • 若選裝 DevOps 功能組件時需保證有一台內存大於 8G 的節點,因為 Jenkins 默認的 JVM 設置會需要 6~8 G 的整塊內存,若可用內存不足可能會造成該節點崩潰。
操作系統 最小配置(每台)
CentOS 7.5 (64 bit) CPU:2 核, 內存:4 G, 系統盤:40 G
Ubuntu 16.04/18.04 LTS (64 bit) CPU:2 核, 內存:4 G, 系統盤:40 G
Red Hat Enterprise Linux Server 7.4 (64 bit) CPU:2 核, 內存:4 G, 系統盤:40 G
Debian Stretch 9.5 (64 bit) CPU:2 核, 內存:4 G, 系統盤:40 G

以下用一個示例介紹 multi-node 模式部署多節點環境,本示例准備了 3 台 CentOS 7.5 的主機並以 root 用戶准備安裝。登錄主機名為 Master 的節點作為任務執行機 Taskbox 來執行安裝步驟。

安裝說明 已經介紹了 KubeSphere 集群架構是由管理節點 (Master) 和工作節點 (Node) 構成的,這 3 台主機分別部署 1 個 Master 節點和 2 個 Node 節點。

假設主機信息如下所示:

主機 IP 主機名 集群角色
192.168.0.1 master master,etcd
192.168.0.2 node1 node
192.168.0.3 node2 node

集群架構: 單 master 單 etcd 雙 node

第二步: 准備安裝配置文件

1. 下載 KubeSphere 2.1.0 安裝包至待安裝機器,進入 conf 目錄。

$ curl -L https://kubesphere.io/download/stable/v2.1.0 > installer.tar.gz \
&& tar -zxf installer.tar.gz && cd kubesphere-all-v2.1.0/conf

2. 編輯主機配置文件 conf/hosts.ini,為了對目標機器及部署流程進行集中化管理配置,集群中各個節點在主機配置文件 hosts.ini 中應參考如下配置,建議使用 root 用戶進行安裝。

說明:

  • 若以非 root 用戶 (如 ubuntu 用戶) 進行安裝,[all] 部分可參考配置文件 conf/hosts.ini 的注釋中 non-root 用戶示例部分編輯。
  • 如果在 taskbox 使用 root 用戶無法 ssh 連接到其他機器,也需要參考 conf/hosts.ini 的注釋中 non-root 用戶示例部分,但執行安裝腳本 install.sh 時建議切換到 root 用戶。
  • master, node1, node2 作為集群各個節點的主機名,若需要自定義主機名則所有主機名需要都使用小寫形式。

以下示例在 CentOS 7.5 上使用 root 用戶安裝,每台機器信息占一行,不能分行。

root 配置 hosts.ini 示例:

[all]
master ansible_connection=local  ip=192.168.0.1
node1  ansible_host=192.168.0.2  ip=192.168.0.2  ansible_ssh_pass=PASSWORD
node2  ansible_host=192.168.0.3  ip=192.168.0.3  ansible_ssh_pass=PASSWORD

[kube-master]
master

[kube-node]
node1
node2

[etcd]
master

[k8s-cluster:children]
kube-node
kube-master

說明:

  • [all]: 中需要修改集群中各個節點的內網 IP 和主機 root 用戶密碼:
    主機名為 "master" 的節點作為已通過 SSH 連接的 Taskbox 所以無需填寫密碼。
    Node 節點的參數比如 node1 和 node2 的 ansible_hostip 都替換為當前 node1 和 node2 的內網 IP,將 ansible_ssh_pass 相應替換為 node1 和 node2 的 root 用戶密碼。

    參數解釋:

    - ansible_connection: 與主機的連接類型,此處設置為 local 即本地連接
    - ansible_host: 集群中將要連接的主機地址或域名
    - ip: 集群中將要連接的主機 IP
    - ansible_user: 默認的 SSH 用戶名 (非 root),例如 ubuntu
    - ansible_become_pass: 默認的 SSH 用戶登錄密碼
    - ansible_ssh_pass: 待連接主機 root 用戶的密碼

  • [kube-master][etcd]:應將主機名 "master" 填入 [kube-master] 和 [etcd] 部分,"master" 節點作為 taskbox,用來執行整個集群的安裝任務,同時 "master" 節點在 KubeSphere 集群架構中也將作為 Master 節點管理集群和 etcd 節點負責保存集群的數據。

  • [kube-node]:將主機名 "node1","node2" 填入 [kube-node] 部分,作為 KubeSphere 集群的 node 節點。

  • [local-registry]:離線安裝包中該參數值表示設置哪個節點作為本地鏡像倉庫,默認值為 master 節點。建議給該節點的 /mnt/registry 單獨掛盤 (參考 fdisk 命令),使鏡像可保存在持久化存儲並節省機器空間。

第三步: 安裝 KubeSphere

KubeSphere 多節點部署會自動化地進行環境和文件監測、平台依賴軟件的安裝、Kubernetes 和 etcd 集群的自動化部署,以及存儲的自動化配置。Installer 默認安裝的 Kubernetes 版本v1.15.5

說明:

  • 通常情況您不需要修改任何配置,直接安裝即可。
  • 網絡插件默認是 calico,存儲默認用 OpenEBS 基於 Local Volume 提供持久化存儲服務,若您需要自定義安裝參數,如網絡、存儲、負載均衡器插件、可選功能組件等相關配置需在 conf/common.yaml 文件中指定或修改,參考 集群組件配置說明
  • 支持存儲類型:GlusterFSCeph RBDNFSLocal VolumeQingCloud 雲平台塊存儲 (QingCloud 公有雲單節點掛盤限制為 10 塊)、QingStor NeonSAN,存儲配置相關的詳細信息請參考 存儲配置說明
  • 由於 Kubernetes 集群的 Cluster IP 子網網段默認是 10.233.0.0/18,Pod 的子網網段默認是 10.233.64.0/18,因此安裝 KubeSphere 的節點 IP 地址范圍不應與以上兩個網段有重復,若遇到地址范圍沖突可在配置文件 conf/common.yaml 修改 kube_service_addresseskube_pods_subnet 的參數。

參考以下步驟開始 multi-node 部署。

說明:由於 multi-node 的安裝時間跟網絡情況和帶寬、機器配置、安裝節點個數等因素都有關,此處暫不提供時間標准。

1. 進入安裝目錄,建議使用 root 用戶執行 install.sh 安裝腳本:

$ cd scripts
$ ./install.sh

2. 輸入數字 2 選擇第二種 Multi-node 模式開始部署,安裝程序會提示您的環境是否前提條件,若滿足請輸入 "yes" 開始安裝。

################################################
         KubeSphere Installer Menu
################################################
*   1) All-in-one
*   2) Multi-node
*   3) Quit
################################################
https://kubesphere.io/               2018-10-14
################################################
Please input an option: 2

3. 驗證 KubeSphere 集群部署是否成功:

(1) 待安裝腳本執行完后,當看到如下 "Successful" 界面,則說明 KubeSphere 安裝成功。

successsful!
#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.0.1:30880
Account: admin
Password: P@88w0rd

NOTE:Please modify the default password after login.
#####################################################

提示:如需要再次查看以上的界面信息,可在安裝包目錄下執行 cat kubesphere/kubesphere_running 命令查看。

(2) 若需要在外網訪問,在雲平台需要在端口轉發規則中將內網端口 30880 轉發到源端口 30880,然后在防火牆開放這個源端口,確保外網流量可以通過該端口。

(3) 安裝成功后,瀏覽器訪問對應的 URL,如 http://{$公網IP}:30880,即可進入 KubeSphere 登錄界面,可使用默認的用戶名和密碼登錄 KubeSphere 控制台體驗,登錄后請立即修改默認密碼。參閱 快速入門 幫助您快速上手 KubeSphere。

注意:登陸 Console 后請在 "集群狀態" 查看服務組件的監控狀態,待所有組件啟動完成后即可開始使用,通常所有服務組件都將在 15 分鍾內啟動完成。

UI 快覽

KubeSphere (https://github.com/kubesphere/kubesphere) 是一個開源的以應用為中心的容器管理平台,支持部署在任何基礎設施之上,並提供簡單易用的 UI,極大減輕日常開發、測試、運維的復雜度,旨在解決 Kubernetes 本身存在的存儲、網絡、安全和易用性等痛點,幫助企業輕松應對敏捷開發與自動化監控運維、端到端應用交付、微服務治理、多租戶管理、多集群管理、服務與網絡管理、鏡像倉庫、AI 平台、邊緣計算等業務場景。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM