一、前言
1、我前面文章有寫過使用 kubeadm
安裝的方式,大家可以去參考 (二)k8s集群安裝,有一系列的k8s文章說明
2、安裝k8s的方式有很多
- kubeadm
- sealos
- kubespray
- 等等
3、關于sealos來安裝 k8s ,也是非常建議大家去官方文檔看看,安裝sealos和k8s,說的很非常清楚,一看就知道
4、這里順便說一下 Sealos
和 Sealer
。它們都是與 Kubernetes 相關的工具,但用途和功能不同。
-
Sealos:
Sealos 是一個用于快速部署 Kubernetes 集群的工具。它基于 Ansible 和 KubeAdm,旨在簡化 Kubernetes 集群的安裝過程。Sealos 提供了一種快速、便捷的方式來部署單節點或多節點的 Kubernetes 集群。它可以自動處理節點初始化、Master 和 Worker 節點的部署,以及集群的配置和初始化。Sealos 主要關注于 Kubernetes 集群的部署和初始化過程,使得用戶能夠更容易地搭建一個運行的 Kubernetes 環境。 -
Sealer:
Sealer 是一個用于加密和保護 Kubernetes 配置文件的工具。它可以將 Kubernetes 的配置文件(如 kubeconfig 文件)進行加密,以確保敏感信息在存儲和傳輸過程中得到保護。Sealer 可以使用不同的加密算法對配置文件進行加密,然后在使用時再進行解密。這有助于提高 Kubernetes 集群的安全性,尤其是在管理多個集群時,可以更好地保護配置信息。
總結:
- Sealos 主要用于 Kubernetes 集群的快速部署和初始化。
- Sealer 主要用于加密和保護 Kubernetes 配置文件,增強集群的安全性。
二、前置準備和說明
2.1、集群類型
kubernetes集群大體上分為兩類:一主多從和多主多從。
- 一主多從:一臺Master節點和多臺Node節點,但是有單機故障風險,適合用于測試環境
- 多主多從:多臺Master節點和多臺Node節點,安全性高,適合用于生產環境
說明:為了測試簡單,本次搭建的是 一主兩從 類型的集群
2.2、主機規劃
1、各個機器配置
作用 | ip | 操作系統 | 配置 |
---|---|---|---|
k8s-master01 | 192.168.173.135 | Centos7.9 基礎設施服務器 | 4顆CPU 4G內存 100G硬盤 |
k8s-node01 | 192.168.173.136 | Centos7.9 基礎設施服務器 | 2顆CPU 4G內存 100G硬盤 |
k8s-node02 | 192.168.173.137 | Centos7.9 基礎設施服務器 | 2顆CPU 4G內存 000G硬盤 |
2、相關網絡配置
IPADDR=xxxxxx
NETMASK=255.255.255.0
GATEWAY=192.168.173.2
3、DNS
nameserver 8.8.8.8
nameserver 114.114.114.114
2.3、安裝說明
2.3.1、環境初始化(所有節點都需要做的)
1、檢查操作系統的版本,因為此方式下安裝kubernetes集群要求Centos版本要在7.5或之上(否則存在node節點無法加入master的情況)
cat /etc/redhat-release
2、主機名解析,為了方便后面集群節點間的直接調用,在這配置一下主機名解析,企業中推薦使用內部DNS服務器
# 主機名成解析 編輯三臺服務器的/etc/hosts文件,添加下面內容
192.168.173.135 k8s-master01
192.168.173.136 k8s-node01
192.168.173.137 k8s-node02
3、設置每個節點的主機名稱,這是為了后續使用k8s的時候,生成的節點是以我們的主機名稱來命名的,不然k8s搭建之后生成的節點就是 master01,node01之類的等等
hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-node01
hostnamectl set-hostname k8s-node02
3、修改完成后測試是否正常,沒一臺都測試一下,避免后面安裝的時候再發現問題,可就難受了。
-
k8s-master01節點
-
k8s-node01節點
- k8s-node02節點
4、時間同步,kubernetes要求集群中的節點時間必須精確一致,這里使用 NTP同步網絡時間,當然如果你是內網,不能鏈接外網,那你最好搭建一個企業內部的時間同步服務器,其他機器都從這臺時間服務器同步,保證完全一致。
# 主機名成解析 編輯三臺服務器的/etc/hosts文件,添加下面內容
yum install ntp -y //安裝ntp服務systemctl enable ntpd //開機啟動服務systemctl start ntpd //啟動服務timedatectl set-timezone Asia/Shanghai //更改時區timedatectl set-ntp yes //啟用ntp同步ntpq -p //同步時間
2.3.2、安裝sealos
1、安裝的方式很多,大家也可以參考官方,有四種安裝方式
- 二進制自動下載
- 二進制手動下載
- 包管理工具安裝
- 源碼安裝
官方地址-安裝sealos
2.3.2.1、二進制手動下載安裝
1、截至我寫這篇文章為止,目前sealos
的版本如下,我們選擇安裝 v4.3.0
即可
注意:在選擇版本時,建議使用穩定版本例如v4.3.0。像v4.3.0-rc1、v4.3.0-alpha1這樣的版本是預發布版,請謹慎使用
2、在k8s-master01節點 下載
wget https://github.com/labring/sealos/releases/download/v4.3.0/sealos_v4.3.0_linux_amd64.tar.gz
3、解壓后重命名 sealos
,解壓完成后,會發現只有這一個可執行的文件
4、賦予可執行權限,并移動到當前用戶的bin 目錄下面,這樣方便我們可以在任何地方都去使用它
chmod +x sealos && mv sealos /usr/bin
2.3.3、安裝k8s
先決條件,sealos 是一個簡單的 go 二進制文件,可以安裝在大多數 Linux 操作系統中。以下是一些基本的安裝要求:
- 每個集群節點應該有不同的主機名。 主機名不要帶下劃線。
- 所有節點的時間同步。
- 在 Kubernetes 集群的第一個節點上運行sealos run命令,目前集群外的節點不支持集群安裝。
- 建議使用干凈的操作系統來創建集群。不要自己裝 Docker。
- 支持大多數 Linux 發行版,例如:Ubuntu CentOS Rocky linux。
- 支持 DockerHub 中支持的 Kubernetes 版本。
- 支持使用 containerd 作為容器運行時。
- 在公有云上請使用私有 IP。
1、安裝命令如下
這個底層是使用
containerd
,如果你希望底層還是使用docker,可以看我后面的第6步,將如下命令中的labring/kubernetes:v1.25.0
鏡像換成labring/kubernetes-docker:v1.25.0
即可
$ sealos run labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \--masters 192.168.173.135 \--nodes 192.168.173.136,192.168.173.137 -p 123456
如果你需要安裝HA的模式,即高可用多個master節點,也非常簡單,命令如下,即在參數masters后面以逗號分割多個master節點ip即可
$ sealos run labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \--masters 192.168.64.2,192.168.64.22,192.168.64.20 \--nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]
2、執行命令之后,你會發現大部分時間都在下載鏡像,所以這個速度和你的網速還是有很大關系的
這里無需科學上網,因為這里的鏡像 sealos 都從dockerHub 上面下載的,sealos都已經幫我們處理好了。
3、安裝完成之后的界面
4、查看集群情況
kubectl get node
5、注意,因為k8s從1.20版本開始就不再使用docker
,而是使用更加底層的 containerd
,所以我們安裝完成后,是沒有docker的命令的
其實 docker 底層也是
containerd
,k8s舍棄docker是,因為功能有些相同,關于這個方面的內容,大家可以參考這一篇文章 containerd的安裝與使用 里面詳細說明了k8s,docker,containerd的關系,簡單明了
6、如果你希望安裝k8s底層是docker的版本,可以將第一步的安裝命令改為如下即可
$ sealos run labring/kubernetes-docker:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \--masters 192.168.173.135 \--nodes 192.168.173.136,192.168.173.137 -p 123456
兩種的區別是
- labring/kubernetes-docker:v1.25.0 (使用
docker
) - labring/kubernetes:v1.25.0 (使用默認的
containerd
)
2.4、sealos相關命令
2.4.1、增加節點
1、增加 node 節點:
sealos add --nodes 192.168.64.21,192.168.64.19
2、增加 master 節點:
sealos add --masters 192.168.64.21,192.168.64.19
2.4.2、刪除節點
1、刪除 node 節點:
sealos delete --nodes 192.168.64.21,192.168.64.19
2、刪除 master 節點:
sealos delete --masters 192.168.64.21,192.168.64.19
2.4.3、清理集群
$ sealos reset
三、頁面管理工具(Kuboard)安裝部署
1、這一章大家可以隨意,不安裝的話就使用命令行,或者用k8s原生的頁面控制,不過原生的頁面控制臺不太好用,我個人還是建議安裝一下這個。
2、關于這個我也有在k8s系列文章中提起 (十一)k8s其它幫助&&單節點部署 這里就不再重復啰嗦了 , 而且官方文檔還是中文的,也很詳細。