1.Almalinux镜像准备
AlmaLinux OS - Forever-Free Enterprise-Grade Operating System
找到【下载】,选择合适的ISO镜像。这里做练手直接下载Minimal版的镜像。
2.Vmware创建双虚拟机作为k3s的主从节点
2.1.创建第一个虚拟机
2.2.加载ISO镜像
2.3.配置其它安装信息
2.4.安装AlmaLinux
2.5.配置安装信息
2.6.开始安装
安装完成后重启,进入系统页面,查看IP,用于后续xshell连接使用。到此为止第一个节点安装完成。
查看虚拟机ip,执行命令:
ifconfig
关闭防火墙,执行命令:
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动
systemctl disable firewalld
2.7.克隆虚拟机
这里可以遵循前面方式再安装一个虚拟机,这里为了方便直接选择克隆。
关闭被克隆虚拟机,右键虚拟机-管理-克隆
2.8.修改克隆机网络配置
由于k3s-node2是克隆的第一个虚拟机,所以我们需要重新修改以下它的MAC地址和主机地址。
右键虚拟机(k3s-node2)-设置-网络适配器-高级
重新生成mac地址,点击确认保存。
启动虚拟机,查看当前虚拟机hostname
hostnamectl
这里的hostname也是复制过来的,需要将其修改为 k3s-node2
执行命令:
hostnamectl set-hostname k3s-node2
2.9.重启虚拟机
reboot
3.安装k3s
3.1.安装文件准备
进入k3s的github主页:
GitHub - k3s-io/k3s: Lightweight Kubernetes
3.1.1.文件准备 install.sh
找到 install.sh脚本,下载到本地
3.1.2.文件准备 k3s和k3s-airgap-images-amd64.tar
点击Tags
找到对应版本Tag (v1.27.10+k3s2)
下载 k3s和k3s-airgap-images-amd64.tar
3.1.3.传输文件至虚拟机
传输文件至虚拟机后,为文件设置执行权限。
cd 到文件所在目录,执行以下命令:
chmod +x k3s install.sh k3s-airgap-images-amd64.tar
3.2.数据库准备
由于主节点需要和其它工作节点进行联络通信并且要存储一系列节点状态信息,所以需要部署一个mysql数据库用于存储数据,这里图方便我就直接把mysql装在主节点了。
3.2.1.主节点安装docker
3.2.2.主节点docker部署mysql
安装完成后创建数据库,名为k3s,以备后续k3s使用。
3.3.主节点安装k3s
将k3s拷贝至 /usr/local/bin/
cp k3s /usr/local/bin/
创建镜像加载所需要的文件夹:
mkdir -p /var/lib/rancher/k3s/agent/images/
将镜像文件拷贝至改目录
cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
执行安装命令:
# 注意,数据库连接改成实际部署的地址,这里仅做示例参考
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --cluster-init' K3S_DATASTORE_ENDPOINT='mysql://root:123456@tcp(192.168.186.133:33306)/k3s' ./install.sh
注意:
K3S_DATASTORE_ENDPOINT='mysql://root:123456@tcp(192.168.186.133:33306)/k3s'改成部署的数据库地址信息即可。
检查主节点是否安装成功,执行命令:
kubectl get node
3.3.1.主节点获取Token
获取主节点生成的token,复制token,用于工作节点连接使用,执行命令:
cat /var/lib/rancher/k3s/server/token
3.3.2.获取主节点服务地址
kubectl cluster-info
获取服务地址,用于后续工作节点连接使用。
3.4.回滚k3s安装
如果在安装过程中出现任何问题,在找到解决方案后强烈建议先卸载再重新安装,否则会出现一系列问题。
3.4.1.k3s卸载
这里随着k3s版本不断迭代,可能卸载脚本的名称会有不同,如有需要请到bin目录下具体信息。
卸载命令:
/usr/local/bin/k3s-uninstall.sh
3.5.安装k3s工作节点
使用xshell登录工作节点,按照前面的方式准备相关文件。(注意,工作节点无需安装mysql)
执行命令:
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --token K10c4c2b31fbb1c3bcf080cf4f096c17e71e589fdb95b64351cf6e0e84119e78c9e::server:60d6e21a0ea6de89cabf6d16e2acee1b --server https://192.168.186.133:6443' K3S_DATASTORE_ENDPOINT='mysql://root:123456@tcp(192.168.186.133:33306)/k3s' ./install.sh
注意:
1.--token [xxxx] 填入从主节点获取的token,这里仅为示例值。
2.--server [https://192.168.186.133:6443] 这里改成主节点k3s服务的ip和端口 (默认6443)。
3.K3S_DATASTORE_ENDPOINT=['xxxxx'] 和前面一致,改成部署的数据库地址信息即可。
3.6.安装服务校验
安装完成后如无问题,检查节点是否成功连接,执行命令:
kubectl get node
4.安装Rancher
4.1.前置准备-安装helm
- 下载helm二进制包
- Helm
解压二进制包。(版本号,根据下载的版本进行调整。这里用x代替)
tar -zxvf helm-v3.x.x-linux-amd64.tar.gz
为解压出来的helm赋予权限。
chmod +x linux-amd64/helm
在解压目录中找到helm
程序,移动到需要的目录中。
mv linux-amd64/helm /usr/local/bin/helm
检查helm是否成功安装,显示了版本号则安装成功。
helm version
4.2.前置准备-安装cert-manager
设置配置文件
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
添加helm仓库
helm repo add jetstack https://charts.jetstack.io
更新helm仓库
helm repo update
安装CRDS
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.14.3/cert-manager.crds.yaml
设置配置文件
安装cert-manager
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.14.3
安装成功后有如下提示:
4.3.安装rancher
添加 Helm Chart 仓库
helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable
指定下载版本
helm fetch rancher-stable/rancher --version=v2.8.3
创建rancher所需命名空间
kubectl create namespace cattle-system
4.3.启动rancher
这里的hostname与密码可自定义,注意密码需要有大写小写和符号(12位)
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.devops.com \
--version 2.8.3 \
--set bootstrapPassword=Jk312587895.
4.4.访问rancher
4.4.1.前往DNS服务配置域名与ip的关联
https://rancher.devops.com
大功告成!!!