濟(jì)南優(yōu)化網(wǎng)站的哪家好軟文世界平臺(tái)
前言
kubernetes集群的圖形化管理工具主要有以下幾種:
1、 Kubernetes Dashborad: Kubernetes 官方提供的圖形化工具
2、 Rancher: 目前比較主流的企業(yè)級(jí)kubernetes可視化管理工具
3、各個(gè)云廠商Kubernetes集成的管理器
4、 Kuboard: 國(guó)產(chǎn)開(kāi)源Kubernetes可視化管理工具
本篇我們來(lái)學(xué)習(xí) 主流的企業(yè)級(jí)kubernetes可視化管理工具-rancher工具。
rancher官網(wǎng)
官網(wǎng):https://www.rancher.cn/
github:https://github.com/rancher/rancher
鏡像托管在hub.docker.com
上。
rancher的版本與k8s的版本有著一定的關(guān)系,在https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-7-5/
中可以查看。
主機(jī)準(zhǔn)備
準(zhǔn)備4臺(tái)服務(wù)器,一臺(tái)用于rancher軟件,其他3臺(tái)用于搭建k8s高可用集群:
rancher : 安裝rancher
master01 : k8s master節(jié)點(diǎn),也分配node、etcd角色;
node01 : k8s node節(jié)點(diǎn),也分配node、etcd角色;
node2 : k8s node節(jié)點(diǎn),也分配node、etcd角色;
環(huán)境初始化
4臺(tái)主機(jī)都根據(jù)實(shí)際情況做如下6大步驟配置:
# 1、關(guān)閉防火墻
systemctl stop firewalld && systemctl disable firewalld
# 2、禁用selinux
setenforce 0 #臨時(shí)關(guān)閉selinux
vim /etc/selinux/config #永久關(guān)閉selinux
SELINUX=disabled
# 3、關(guān)閉swap分區(qū)(必須,因?yàn)閗8s官網(wǎng)要求)
swapoff -a #禁用所有swap交換分區(qū)
vim /etc/fstab #永久禁用swap,刪除或注釋掉/etc/fstab里的swap設(shè)備的掛載命令即可
#/dev/mapper/centos-swap swap swap defaults 0 0
# 4、設(shè)置主機(jī)名并寫入配置文件
hostnamectl set-hostname rancher
hostnamectl set-hostname master01
hostnamectl set-hostname node1
hostnamectl set-hostname node2
cat >> /etc/hosts <<EOF
192.168.244.150 rancher
192.168.244.151 master01
192.168.244.152 node1
192.168.244.153 node2
EOF
# 5、時(shí)間同步
yum -y install ntp
systemctl start ntpd && systemctl enable ntpd
# 6、將橋接的IPv4流量傳遞到iptables的鏈(有一些ipv4的流量不能走iptables鏈,因?yàn)閘inux內(nèi)核的一個(gè)過(guò)濾器,每個(gè)流量都會(huì)經(jīng)過(guò)他,然后再匹配
# 是否可進(jìn)入當(dāng)前應(yīng)用進(jìn)程去處理,所以會(huì)導(dǎo)致流量丟失),配置k8s.conf文件(k8s.conf文件原來(lái)不存在,需要自己創(chuàng)建的)
cat >> /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
vm.swappiness=0
EOF
sysctl -p
rancher的安裝
rancher本身也是使用docker進(jìn)行安裝,所以要先安裝好docker,docker的安裝請(qǐng)參考Linux下如何安裝docker詳細(xì)介紹(聯(lián)網(wǎng)、離線安裝)``https://blog.csdn.net/MssGuo/article/details/122694156
rancher本質(zhì)上是封裝了RKE和K3S來(lái)安裝k8s的。
rancher是一個(gè)開(kāi)源的項(xiàng)目,開(kāi)源的代碼在https://github.com/rancher/rancher
上:
可以看到目前最新的rancher版本是2.7.5
rancher鏡像位于https://hub.docker.com/
上,如下所示進(jìn)入hub.docker官網(wǎng)搜索rancher:
[root@rancher ~]# docker pull rancher/rancher:v2.7.5 #拉取rancher鏡像
v2.6.7-linux-amd64: Pulling from rancher/rancher
9047ed9df36f: Pull complete
Digest: sha256:2c63e264eacc633d9d98ad30ac30bade271b66454a63446f0156191cee77aa9e
Status: Downloaded newer image for rancher/rancher:v2.6.7-linux-amd64
docker.io/rancher/rancher:v2.6.7-linux-amd64
[root@rancher ~]# docker images #查看rancher鏡像
REPOSITORY TAG IMAGE ID CREATED SIZE
rancher/rancher v2.6.7-linux-amd64 23fa8b4529d2 Less than a second ago 1.55GB
[root@rancher ~]#
啟動(dòng)rancher容器
#創(chuàng)建一個(gè)目錄用于存放rancher的持久化數(shù)據(jù)
[root@rancher ~]# mkdir /rancher_data
#--privileged運(yùn)行特權(quán)模式,-p表示映射本機(jī)的80端口到容器的80端口,443端口到容器的443端口,-v掛載持久卷,
[root@rancher ~]# docker run -d --privileged -p 80:80 -p 443:443 -v /rancher_data:/var/lib/rancher/ --restart=unless-stopped --name rancher-v2.7.5 rancher/rancher:v2.7.5[root@elk-client ~]# docker ps #確認(rèn)容器的CREATED時(shí)間STATUS時(shí)間基本相同就表示容器沒(méi)有重啟,rancher正常
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
768949c78d09 rancher/rancher:v2.7.5 "entrypoint.sh" 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher-v2.7.5
網(wǎng)頁(yè)登陸rancher
輸入服務(wù)器ip地址http://192.168.244.150
,默認(rèn)會(huì)跳轉(zhuǎn)到https的443端口,登錄頁(yè)面左下角有設(shè)置中文,可以設(shè)置中文,如下所示:
按照頁(yè)面的提示,去容器里面查找rancher的登陸密碼:
[root@rancher ~]# docker logs 7cf867e736fd01 2>&1 | grep "Bootstrap Password:"
2023/08/19 16:37:41 [INFO] Bootstrap Password: q5hgkh5lgtncbm2q2tts8w6cdz45xfvpx7v5s8dk9f4c8dpbzrcr6s
[root@rancher ~]#
復(fù)制密碼進(jìn)行登陸,跳轉(zhuǎn)到如下頁(yè)面,顯示要我們要給默認(rèn)賬號(hào)admin設(shè)置一個(gè)登陸密碼,那我們就設(shè)置一個(gè)登陸密碼,密碼需要有一定的復(fù)雜度,這里我就設(shè)置為admin12345678:
使用rancher創(chuàng)建一個(gè)k8s集群
既可以將已有的k8s集群加入rancher,讓rancher管理,也可以使用rancher創(chuàng)建一個(gè)新的k8s集群,這里我們使用rancher創(chuàng)建一個(gè)新的k8s集群。
點(diǎn)擊打開(kāi)RKE2/K3S開(kāi)關(guān),我們選擇使用RKE2創(chuàng)建k8s集群,點(diǎn)擊自定義按鈕,如下:
如下,填寫集群名稱,集群描述信息,可以看到rancher2.7.5支持的k8s版本有4個(gè),我們選擇RKE方式安裝的v1.25.12+rke2r2
,其他選項(xiàng)保持默認(rèn)即可:
網(wǎng)絡(luò)配置:
其他配置保持默認(rèn)即可,最后,點(diǎn)擊右下角的創(chuàng)建按鈕,頁(yè)面自動(dòng)跳轉(zhuǎn)到了集群頁(yè)面,點(diǎn)擊我們創(chuàng)建的k8s集群:
頁(yè)面跳轉(zhuǎn)到了這里,如下,節(jié)點(diǎn)角色勾選對(duì)應(yīng)的角色后會(huì)生成對(duì)應(yīng)的注冊(cè)命令,把這串注冊(cè)命令復(fù)制粘貼到k8s服務(wù)器上執(zhí)行即可,這里由于我只有3臺(tái)主機(jī),所以角色規(guī)劃是3臺(tái)服務(wù)器都作為master、etcd、node角色:
master01 :k8s master節(jié)點(diǎn),也分配node、etcd角色;
node01:k8s node節(jié)點(diǎn),也分配master、etcd角色;
node02:k8s node節(jié)點(diǎn),也分配master、etcd角色;
把注冊(cè)命令復(fù)制粘貼到k8s服務(wù)器上執(zhí)行,然后等待安裝完成,在左側(cè)"主機(jī)"欄可以查看:
等全部的節(jié)點(diǎn)安裝完畢后,返回首頁(yè),點(diǎn)擊集群名稱即可進(jìn)入集群。
創(chuàng)建deployment和svc
進(jìn)入集群:
創(chuàng)建一個(gè)deployment:
在頁(yè)面填寫信息即可:
創(chuàng)建完成之后,等待deployment就緒即可:
創(chuàng)建svc,選擇對(duì)應(yīng)的標(biāo)簽選擇器:
等待svc創(chuàng)建完成即可:
瀏覽器頁(yè)面訪問(wèn)成功:
kubectl 命令行工具設(shè)置
使用rancher安裝的k8s集群,服務(wù)器里面的kubectl 工具不能正常使用,如果需要在服務(wù)器執(zhí)行kubectl命令的話,需要配置一下上下文:
#kubectl 配置命令自動(dòng)補(bǔ)全
yum install -y bash-completion
echo 'source /usr/share/bash-completion/bash_completion' >> ~/.bashrc
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrcfind / -name kubectl
ln -s /var/lib/rancher/rke2/data/v1.25.12-rke2r1-15557ace5a8f/bin/kubectl /usr/bin/kubectl
返回首頁(yè),點(diǎn)擊管理:
下載kubeConfig文件:
mkdir ${HOME}/.kube/
#把下載的kubeConfig上傳到服務(wù)器,重命名
mv datacenter.yaml /root/.kube/config
#驗(yàn)證正常使用
[root@master01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-dc9ff6bdf-xc22t 1/1 Running 0 66m
以上就完成了rancher的安裝和使用。