@
Rancher 官網 https://rancher.com/
Rancher 官網檔案 https://rancher.com/docs/
Rancher 最新版本2.6官網檔案 https://rancher.com/docs/
Rancher GitHub原始碼地址 https://github.com/apache/incubator-seatunnel
Rancher是一個為在生產中部署容器的組織構建的完備開源容器管理平臺,Rancher使Kubernetes在任何地方都可以輕鬆執行,滿足it需求並授權給DevOps團隊,從資料中心到雲端再到邊緣,Rancher提供Kubernetes-as-a-Service服務。目前docker映象最新版本為v2.6.8
Rancher是一個全棧式管理各地的所有Kubernetes叢集,同時可以管理多個K8S叢集,將它們統一在集中式RBAC下,監控它們,並讓您輕鬆部署和管理。與Rancher同樣快速安裝和管理K8S叢集,還有Openshift、Kubesphere、sealos,本篇主要實戰Rancher的使用。
Rancher支援集中化認證、許可權控制、監控和管理所有的Kubernetes叢集。
提供一個簡單直接的使用者介面給DevOps工程師管理應用程式。
解決企業痛點問題包括多機房跨區域的容器排程,
是規模化生產級Kubernetes的優秀實踐。
Rancher託管Kubernetes叢集操作,部署Kubernetes叢集——在本地、在雲端和在邊緣。
Rancher將這些叢集統一起來,以確保一致的操作、工作量管理和企業級安全。是一個真正經過實戰錘鍊過的推薦生產使用Kubernetes叢集管理工具。Rancher解決了DevOps團隊與Kubernetes部署應用程式和IT人員交付企業關鍵服務的需求。
對於本地工作負載,我們提供RKE。對於公有云,我們支援所有主要的發行版,包括EKS、AKS和GKE。對於邊緣、分支和桌面工作負載,我們提供K3s,一個經過認證的Kubernetes輕量級分發版
簡化叢集操作,Rancher提供簡單、一致的叢集操作,包括供應、版本管理、可見性和診斷、監控和警報,以及集中審計。
安全、策略和使用者管理,Rancher自動化處理過程併為所有叢集應用一組一致的使用者存取和安全策略。
共用工具和服務,Rancher提供了豐富的服務目錄,用於構建、部署和擴充套件容器化應用程式,包括應用程式打包裝、CI/CD、紀錄檔、監控和服務網格。
從Rancher開始只需2個簡單的步驟就可以看出其極簡單部署方式
使用四臺伺服器,一臺單獨安裝Rancher,然後通過Rancher部署一個K8S叢集,其中一臺安裝K8S的master和node,剩餘兩臺安裝node。
# 設定主機名,可以根據規劃名稱部署如rancher,k8s-master01,k8s-node01,k8s-node02,我這裡就不設定了
hostnamectl set-hostname rancher
# 設定crond任務
0 */1 * * * ntpdate time1.aliyun.com
# 預設開啟,註釋掉
vim /etc/fstab
# /dev/mapper/centos-swap swap swap defaults 0 0
# 臨時關閉
swapoff -a
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
# 修改完執行
sysctl -p
#更新yum
sudo yum update
#安裝依賴包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#設定映象倉庫為國內的阿里雲倉庫
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安裝docker
sudo yum install -y docker-ce
#啟動docker
sudo systemctl start docker
#設定開機啟動docker
sudo systemctl enable docker
Docker也提供下面簡化部署指令碼
# 下載部署指令碼
curl -fsSL get.docker.com -o get-docker.sh
# 部署docker
sh get-docker.sh
docker hub官網查詢需要安裝版本,這裡使用最新的2.6.8
# dockcer拉取映象,通常選擇amd,也可以選擇docker pull rancher/rancher:v2.6.8-rc1
docker pull rancher/rancher:v2.6.8-rc1-linux-amd64
# 建立掛載目錄
mkdir -p /home/commons/rancher/data
# 執行rancher
docker run -d --privileged -p 80:80 -p 443:443 -v /home/commons/rancher/data:/var/lib/rancher/ --restart=always --name rancher-v.2.6.8 rancher/rancher:v2.6.8-rc1-linux-amd64
登入Rancher的web UI,存取http://hadoop2/ 跳轉到https://hadoop2
# 通過上面docker ps找到執行後的容器container-id 7eb2c11302a2的紀錄檔找到啟動登入的密碼,如果是docker run安裝執行
docker logs 7eb2c11302a2 2>&1 | grep "Bootstrap Password:"
# 如果是Helm安裝執行
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'
進入後有一個預設local叢集,這個叢集就是是用K3S。建立叢集可以點選叢集管理,create按鈕,左邊import存在支援對已存在叢集的匯入
點選設定欄目,點選使用者和授權,建立使用者,給開發使用可以勾選Standard Users,確認後提交
選擇custom自定義
其他基本按照預設即可,還有高階選項裡NodePort埠可以適當給大一點如30000-50000,進入下一步,先裝一臺包含所有節點即master和node都有,全選3個
複製後在要安裝master的docker宿主機的命令列執行
返回Rancher的web UI的叢集管理頁面,可以看到剛才建立的叢集已經在安裝中
等待一段時間安裝,看網路情況這裡5-10分鐘左右,等待時間完畢後可以看下k8s-cluster1叢集已經處於active即啟用狀態
點選左上角的選單找EXPLORE CLUSTER即探索叢集中的k8s-cluster1,或者點選列表後面的EXPLORE,可以顯示當前叢集的概況資訊
在叢集管理頁面Clusters的列表中找到name列的k8s-cluster1,點選進入在註冊Tab框中只勾選worker節點
拷貝docker run語句後到所有需要安裝worker節點機器執行,檢視容器節點rancher-agent
等待5-10分鐘後檢視worker節點容器資訊如下
在Rancher的web UI的叢集管理頁面的機器列表(node名稱用的原來hostname沒有修改,因此不以hostname為主,可以看下後面roles角色)就已經有剛才安裝好處於active啟用狀態的2臺Worker節點
也可以通過叢集管理入口檢視相關設定
如果要操作kubectl命令可以直接通過Rancher管理頁面的Kubectl Shell來執行
另外如要要在節點主機上直接執行需要如下操作,用Rancher安裝好的k8s叢集的master節點預設是沒有cubectl的命令
通過如下新增kubernetes yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
執行kubectl安裝
yum install -y kubectl
kubectl get nodes
安裝完直接執行kubectl使用連線被拒絕,通過rancher管理頁面下載剛建立k8s-cluster1的KubeConfig檔案,或者點選下面一個直接拷貝KubeConfig到剪貼簿
貼上設定資訊到kube設定路徑
# 建立目錄
mkdir ~/.kube
# 將k8s-cluster1.yaml裡面的內容貼上到下面檔案
vi ~/.kube/config
# 查詢所有節點資訊
kubectl get pods
釋出應用需要先建立專案和名稱空間,找到叢集專案和名稱管理,建立專案,輸入專案名稱test,其它4項可以按需設定包括容器資源限制,點選建立專案
在test專案記錄點選建立名稱空間
這裡名稱空間是針對k8s的,沒有建立新的名稱空間是查詢只有下面幾個預設的名稱空間
輸入名稱空間testns,其他2項可以按需設定包括容器資源限制,點選建立
建立後頁面中也有testns這個名稱空間,從k8s叢集中也可以查詢testns名稱空間
這裡以釋出一個nginx的Deployments應用為主
選擇testns名稱空間,釋出Deployment的名稱testnginx,映象為nginx:latest,副本數為2
也設定Ports的設定,選擇Node Port型別,注意名稱不能超過15個字元,nginx容器內部埠80,35000為暴露埠
建立後返回頁面,過一會就下載完nginx並執行處理活躍狀態
點選testnginx進入可以後可以檢視部署的資訊,如Pods、Services、Ingresses等,目前有兩個副本
[外連圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-vNGUoQAg-1661956704467)(http://www.itxiaoshen.com:3001/assets/1661943335968kbERCAW1.png)]
通過其中一個pod部署節點ckserver1也即是192.168.5.52的IP去存取nginx ,http://ckserver1:35000/ ,成功返回資訊(host對應ip設定hosts檔案裡)
可以很方便調整擴容和縮容的數量
通過kubectl也可以檢視對應的資訊
比如通過偏好設定可以設定深色主題
**本人部落格網站 **IT小神 www.itxiaoshen.com