硬件服务器层面,目前三台机器搭建k8s服务,一台服务器用于存储,一台服务器用于rancher服务
ip地址 | 用途 |
50.50.100.131 | k8s.master01 |
50.50.100.132 | k8s.node01 |
50.50.100.133 | k8s.node02 |
50.50.100.134 | k8s.nfs |
50.50.100.135 | k8s.rancher |
软件版本层面,rancher服务版本v2.7.6,内核5.16.13,系统centos7.9,容器docker-ce v23
每台服务器都执行
# 检查现有id值
cat /etc/machine-id
# 重新生成id值
rm -f /etc/machine-id && systemd-machine-id-setup
每台服务器都执行
# 在最后一行追加一句话
sed -i '$a\net.ipv4.ip_forward=1' /etc/sysctl.conf
# 配置文件生效
sysctl -p
# 查看验证是否生效
sysctl -a | grep ip_forward
每台服务器都执行
# 查看防火墙状态
firewall-cmd --state
# 关闭防火墙
systemctl disable --now firewalld
每台服务器都执行
# 查询是否关闭。Enforcing,Permissive和Disabled。Enforcing表示SELinux正在执行强制访问控制策略,Permissive表示只有当偏离策略时才执行警告,Disabled表示SELinux已被完全禁用。
getenforce
# 配置永久关闭 && 临时关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0
每台服务器都执行
] swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 4063228 524 -2
] swapoff -a
] sed -i 's/.*swap.*/#&/g' /etc/fstab
] swapon -s
这里要注意的是rancher2.7支持的容器docker版本及kubernetes的版本。这里部署的是v2.7.5的rancher服务,支持docker-ce v23 和 kubernetes v1.26
每台服务器都执行
下载阿里云的源安装docker-ce
# 下载依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 下载阿里容器镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# 安装指定docker-ce版本
sudo yum makecache fast
yum -y install docker-ce-23.0.1 docker-ce-cli-23.0.1
# 启动docker服务
systemctl enable --now docker
systemctl status docker
systemctl is-active docker
# 返回active 就表示运行成功
# 验证是否为23版本
# docker -v
Docker version 23.0.1, build a5ee5b1
只需要在rancher节点运行
大概分为两部分,一部分 创建挂载目录,二部分 创建rancher服务。
# 在data下创建rancher_data目录
mkdir rancher_data
# 查看是否创建成功
rancher_data]# pwd
/data/rancher_data
# 安装rancher服务 (需要看一下镜像是否可以下载)
docker run -d --privileged -p 80:80 -p 443:443 -v /data/rancher_data/:/var/lib/rancher --restart=always --name rancher2.7 rancher/rancher:v2.7.5
# 查看容器运行状态
rancher_data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77301e766143 rancher/rancher:v2.7.5 "entrypoint.sh" 40 seconds ago Up 39 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher2.7
访问rancher节点的443端口
https://ip
点击高级-->继续访问-->这个页面设置密码,因为这里是用docker方式部署就复制上面这句话
在rancher的服务器命令行运行,需要先查看一个容器的id号
# 示例
docker logs container-id 2>&1 | grep "Bootstrap Password:"
# 这里查看rancher登录的初始化密码
]# docker logs 773 2>&1 | grep "Bootstrap Password:"
2024/01/24 10:35:04 [INFO] Bootstrap Password: kngmdlwbbz5zps2qwtj458dt4htxfqn9n99xc9zfdcppcwr9kq2bsr
这里复制密码到登录框下一步即可。
这里使用随机密码就好了,点击继续
这里就是登录后的页面
这里点击首页-->创建即可
这里选择自定义-->使用rke2的方式部署集群
填写需要创建集群的信息,填写集群名称,选择集群版本及网络组建。
其它选项这里保持默认,如需要修改可以自行对每个选项卡进行配置。点击创建。
看到以下画面这里要注意一下,这里会有提示 节点角色,是否为master节点,是否为node节点。
这里在master节点运行,点击etcd和control plane即可。这里不选择worker,点击不安全然后复制命令到master节点命令行运行。
在master节点运行
]# curl --insecure -fL https://50.50.100.135/system-agent-install.sh | sudo sh -s - --server https://50.50.100.135 --label 'cattle.io/os=linux' --token l65ld54wrv9s8mcbtczj4czmgwgfvh62hp2mtnj8skvbhph5lhfblq --ca-checksum 151109b69a16581442a448aeb11f3fe3e655e5d4b7db7c9f904d5ab88098aa0b --etcd --controlplane
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 30851 0 30851 0 0 149k 0 --:--:-- --:--:-- --:--:-- 150k
[INFO] Label: cattle.io/os=linux
[INFO] Role requested: etcd
[INFO] Role requested: controlplane
[INFO] Using default agent configuration directory /etc/rancher/agent
[INFO] Using default agent var directory /var/lib/rancher/agent
[INFO] Determined CA is necessary to connect to Rancher
[INFO] Successfully downloaded CA certificate
[INFO] Value from https://10.50.100.135/cacerts is an x509 certificate
[INFO] Successfully tested Rancher connection
[INFO] Downloading rancher-system-agent binary from https://50.50.100.135/assets/rancher-system-agent-amd64
[INFO] Successfully downloaded the rancher-system-agent binary.
[INFO] Downloading rancher-system-agent-uninstall.sh script from https://50.50.100.135/assets/system-agent-uninstall.sh
[INFO] Successfully downloaded the rancher-system-agent-uninstall.sh script.
[INFO] Generating Cattle ID
[INFO] Successfully downloaded Rancher connection information
[INFO] systemd: Creating service file
[INFO] Creating environment file /etc/systemd/system/rancher-system-agent.env
[INFO] Enabling rancher-system-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rancher-system-agent.service to /etc/systemd/system/rancher-system-agent.service.
[INFO] Starting/restarting rancher-system-agent.service
在worker节点运行,这里把etcd和control plane取消掉,复制下面的语句到worker节点运行。
worker节点运行
]# curl --insecure -fL https://50.50.100.135/system-agent-install.sh | sudo sh -s - --server https://10.50.100.135 --label 'cattle.io/os=linux' --token l65ld54wrv9s8mcbtczj4czmgwgfvh62hp2mtnj8skvbhph5lhfblq --ca-checksum 151109b69a16581442a448aeb11f3fe3e655e5d4b7db7c9f904d5ab88098aa0b --worker
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 30851 0 30851 0 0 150k 0 --:--:-- --:--:-- --:--:-- 150k
[INFO] Label: cattle.io/os=linux
[INFO] Role requested: worker
[INFO] Using default agent configuration directory /etc/rancher/agent
[INFO] Using default agent var directory /var/lib/rancher/agent
[INFO] Determined CA is necessary to connect to Rancher
[INFO] Successfully downloaded CA certificate
[INFO] Value from https://50.50.100.135/cacerts is an x509 certificate
[INFO] Successfully tested Rancher connection
[INFO] Downloading rancher-system-agent binary from https://10.50.100.135/assets/rancher-system-agent-amd64
[INFO] Successfully downloaded the rancher-system-agent binary.
[INFO] Downloading rancher-system-agent-uninstall.sh script from https://10.50.100.135/assets/system-agent-uninstall.sh
[INFO] Successfully downloaded the rancher-system-agent-uninstall.sh script.
[INFO] Generating Cattle ID
[INFO] Successfully downloaded Rancher connection information
[INFO] systemd: Creating service file
[INFO] Creating environment file /etc/systemd/system/rancher-system-agent.env
[INFO] Enabling rancher-system-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rancher-system-agent.service to /etc/systemd/system/rancher-system-agent.service.
[INFO] Starting/restarting rancher-system-agent.service
这里如果输入完命令可以在页面查看进程日志
查看添加的节点
查看运行的日志
这里需要等待大概十分钟 先让master节点运行起来,再运行worker节点。
查看现在运行中的节点
到这里rancher部署kubernetes就完成了。
在首页找到集群管理
找到需要新增节点的集群,选到test
选择注册,对应的选择集群的角色复制到机器即可
返回查看新增节点,新增节点50.50.100.134 集群状态已展示。
右上角有一个kubectl shell的按钮,点击后可以进入命令行
点击后可以在命令框里输入命令查看
下载配置文件到服务器上
创建目录上传文件
~]# mkdir /root/.kube/
~]# cd /root/.kube/
.kube]# ls
.kube]# vim config
.kube]# cat config
apiVersion: v1
kind: Config
clusters:
- name: "test"
##省略
安装Kubectl命令行(这里安装多少版本没有关系的)
]# cat /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
.kube]# yum -y install kubectl
使用命令行运行命令
.kube]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-xxxx50100131-security-cm5 Ready control-plane,etcd,master 14h v1.26.11+rke2r1
k8s-xxx050100132-security-cm5 Ready worker 14h v1.26.11+rke2r1
k8s-xxx050100133-security-cm5 Ready worker 14h v1.26.11+rke2r1
k8s-xxx050100134-security-cm5 Ready worker 13h v1.26.11+rke2r1
这里rancher安装完默认是使用containerd容器运行时。
.kube]# kubectl get nodes -o jsonpath='{.items[*].status.nodeInfo.containerRuntimeVersion}'
containerd://1.7.7-k3s1 containerd://1.7.7-k3s1 containerd://1.7.7-k3s1 containerd://1.7.7-k3s1[
这里查看配置文件,这里修改containerd为dockerd