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