共計 5605 個字符,預計需要花費 15 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關如何在 Linux 部署多節點 Kubernetes 集群與 KubeSphere 容器平臺,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
KubeSphere 是在 Kubernetes 之上構建的以應用為中心的企業級容器平臺,所有供為用戶提供簡單易用的操作界面以及向導式操作方式。同時,KubeSphere Installer 提供了 快速部署生產級別的 Kubernetes 集群和全?;萜髌脚_的功能,能夠快速幫助企業用戶快速搭建一套以應用為中心的 DevOps 平臺。
KubeSphere 支持部署和運行在包括公有云、私有云、VM、BM 和 Kubernetes 等任何基礎設施之上,可以部署在公有云托管的 Kubernetes 之上(如 GKE、EKS、ACK),也支持部署在私有化的 Kubernetes 之上(如 kubeadm、k3s、RKE 部署的集群)。同時,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 GUbuntu 16.04/18.04 LTS (64 bit)CPU:2 核,內存:4 G,系統盤:40 GRed Hat Enterprise Linux Server 7.4 (64 bit)CPU:2 核,內存:4 G,系統盤:40 GDebian 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.1mastermaster,etcd192.168.0.2node1node192.168.0.3node2node
集群架構:單 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 用戶密碼:br 主機名為 master 的節點作為已通過 SSH 連接的 Taskbox 所以無需填寫密碼。br Node 節點的參數比如 node1 和 node2 的 ansible_host 和 ip 都替換為當前 node1 和 node2 的內網 IP,將 ansible_ssh_pass 相應替換為 node1 和 node2 的 root 用戶密碼。
參數解釋:br – 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 節點。br
[local-registry]:離線安裝包中該參數值表示設置哪個節點作為本地鏡像倉庫,默認值為 master 節點。建議給該節點的 /mnt/registry 單獨掛盤 (參考 fdisk 命令),使鏡像可保存在持久化存儲并節省機器空間。
第三步: 安裝 KubeSphere
KubeSphere 多節點部署會自動化地進行環境和文件監測、平臺依賴軟件的安裝、Kubernetes 和 etcd 集群的自動化部署,以及存儲的自動化配置。Installer 默認安裝的 Kubernetes 版本是 v1.15.5。
說明:
通常情況您不需要修改任何配置,直接安裝即可。
網絡插件默認是 calico,存儲默認用 OpenEBS 基于 Local Volume 提供持久化存儲服務,若您需要自定義安裝參數,如網絡、存儲、負載均衡器插件、可選功能組件等相關配置需在 conf/common.yaml 文件中指定或修改,參考 集群組件配置說明。
支持存儲類型:GlusterFS、Ceph RBD、NFS、Local Volume、QingCloud 云平臺塊存儲 (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_addresses 或 kube_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 平臺、邊緣計算等業務場景。
關于如何在 Linux 部署多節點 Kubernetes 集群與 KubeSphere 容器平臺就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。