k3s是輕量級的kubernetes,它是為物聯網和邊緣計算專門建構,也是經過認證的Kubernetes發行版。
k3s
雖然說k3s對于邊緣計算來說是特别完美的解決方案,但是我們也完全可以使用k3s叢集來替代k8s叢集。
k3s和k8s是完全相容的,我們完全可以無感的使用k3s。
部署一個單節點的k3s是很簡單的,你隻需要在機器上執行下面的指令即可:
curl -sfL https://get.k3s.io | sh -
安裝完成後,在機器上通過下面的指令檢視安裝情況
kubectl get nodes
今天我們需要安裝一個高可用的叢集,k3s可以通過内嵌的SQLite、内嵌的etcd或外部資料庫(etcd、MySQL、MariaDB、PostgreSQL )來作為高可用叢集的存儲。
1、準備
- 準備三台機器,作業系統為CentOS 7.9,将mysql安裝在第1台裝置上,如果你有更多的裝置。
2、安裝MySQL
在第1台伺服器上安裝MySQL
curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
sudo yum localinstall mysql80-community-release-el7-7.noarch.rpm
sudo yum install mysql-server
sudo systemctl start mysqld
sudo grep 'temporary password' /var/log/mysqld.log #檢視root臨時密碼
sudo mysql_secure_installation #初始化設定,密碼Ab.123456
mysql -u root -p # 連接配接MYSQL
CREATE DATABASE k3s; # 建立資料庫k3s
CREATE USER 'k3s'@'%' IDENTIFIED BY 'Ab.123456'; # 建立使用者k3s
GRANT ALL PRIVILEGES ON k3s.* TO 'k3s'@'%'; #将k3s資料庫的所有權限賦給k3s使用者
3、為MYSQL的位址設定hosts
在三台機器的/etc/hosts 上配置mysql的名字和ip,這一步不是必須的,我做這一步的目的是,在安裝k3s叢集的時候,需要指定mysql的位址,我們用了名字之後,就不需要制定ip位址了。這樣的話,如果我們MySQL機器的ip變了,隻需要修改hosts檔案即可。
三台裝置都需要做如下操作:
sudo vi /etc/hosts
添加下面到尾部(172.16.148.89是我們第1台機器的位址,我們把mysql安裝在第1台):
172.16.148.89 mysql
4、 第一台裝置安裝k3s
- 切換到root使用者
sudo -i
- 安裝k3s
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.27.2+k3s1 sh -s - server \
--datastore-endpoint="mysql://k3s:Ab.123456@tcp(mysql:3306)/k3s"
--datastore-endpoints設定指定mysql的位址。
- 通過下面指令檢查是否安裝成功:
kubectl get nodes
- 檢視token,token在後面兩台伺服器安裝時需要。
sudo cat /var/lib/rancher/k3s/server/token
K10608b6c57112cc212ed139d766b4667271c25cd4b916d50fcf6d39e7b77629efd::server:dc6fb51e57a553de1c53903a1c901ab0
5、其他兩台機器
在其他兩台機器上都是用下面的指令
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.27.2+k3s1 sh -s - server \
--token=K10608b6c57112cc212ed139d766b4667271c25cd4b916d50fcf6d39e7b77629efd::server:dc6fb51e57a553de1c53903a1c901ab0 \
--datastore-endpoint="mysql://k3s:Ab.123456@tcp(mysql:3306)/k3s"
6、檢查叢集是否安裝成功
在第一台機器上執行:
kubectl get nodes
kubectl get nodes
7、遠端通路
- 機器的/etc/rancher/k3s/k3s.yaml 檔案是可以遠端通路k3s的config檔案,可以複制到本地。
k3s config檔案
- 修改127.0.0.1為機器的ip位址。建立config檔案,将檔案放在使用者目錄下下的.kube下:
本地k3s檔案
- 遠端連接配接
遠端連接配接