記錄在
ubuntu-20.04.2-live-server系統上通過rancher安裝k8s的過程。
0. 更換阿里云軟件源
為了保障下載速度,將ubuntu軟件源替換為阿里云軟件源。如果網絡通暢,可跳過。
0.1. 備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
0.2. 修改
sudo vim /etc/apt/sources.list
將source.list文件內容替換成下面的
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
0.3. 更新
sudo apt-get update
1. 安裝Docker
通過命令行安裝最新版本docker。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker your-user
安裝后將當前賬戶加入到docker組內,否則只有root權限可以執行docker命令。對root權限的限制,也是docker相比于podman的劣勢之一。
完成添加之后需要退出賬號重新登陸,讓設置生效。
2. 安裝rancher
通過命令行完成rancher安裝
docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 rancher/rancher:v2.4.5
2.0. 登陸
安裝完成后通過瀏覽器訪問 https://ip:8443 首次訪問會要求設置管理員(用戶名:admin)密碼

2.1. 添加集群
單擊添加集群按鈕后,選擇自定義

只需指定集群名稱,剩下全部選擇默認配置

需要指定集群角色。生產環境需要根據機器及集群狀況,保障系統性能及穩定性(最小可用節點數量 n/2+1 通過raft算法保障)。測試環境可以給一個集群授予多種角色。拷貝生成的命令在已安裝docker的機器上運行,向rancher完成注冊操作。這里仍然在這臺ubuntu機器上完成注冊操作。

等待agent完成注冊操作。期間會通過輪詢的方式進行進度檢測,可以在rancher頁面中看到注冊進度。

在安裝完成后,可以在頁面中看到集群信息

理論上我們在一臺機器中部署了4類節點
- rancher: 可視化管理集群
- Control Plane: k8s主節點,管理、監控工作節點
- etcd: 配置數據存儲
- worker: k8s工作節點,用于運行容器
實際上運行的容器會更多,用于保障集群功能,比如ingress-controller

2.2 安裝kubectl
需要根據系統選擇不同的安裝方式,示例仍然安裝在同一臺ubuntu系統內,如果跨機器,需要確認ip之間的訪問通道
snap install kubectl --classic
將Kubeconfig File文件(Yaml格式)復制到機器的~/.kube/config目錄下(如果沒有則新建)完成授權操作

通過kubectl訪問集群
kubectl get pods -n ingress-Nginx
看到下列信息表示配置已完成。

至此,已完成k8s平臺搭建以及命令行管理的配置。