您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在Linux部署多節點Kubernetes集群與KubeSphere容器平臺,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
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 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 用戶密碼:<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 多節點部署會自動化地進行環境和文件監測、平臺依賴軟件的安裝、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 分鐘內啟動完成。
KubeSphere (https://github.com/kubesphere/kubesphere) 是一個開源的以應用為中心的容器管理平臺,支持部署在任何基礎設施之上,并提供簡單易用的 UI,極大減輕日常開發、測試、運維的復雜度,旨在解決 Kubernetes 本身存在的存儲、網絡、安全和易用性等痛點,幫助企業輕松應對敏捷開發與自動化監控運維、端到端應用交付、微服務治理、多租戶管理、多集群管理、服務與網絡管理、鏡像倉庫、AI 平臺、邊緣計算等業務場景。
關于如何在Linux部署多節點Kubernetes集群與KubeSphere容器平臺就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。