文章目录
基于rke2的K8S部署过程记录
1.准备
1.1 服务器准备
- 配置:4核32G + 100G系统盘 + 200G数据盘
- 系统:Ubuntu 22.04 64位
- 地址:
- server1:192.168.10.1
- worker1:192.168.10.2
- worker2:192.168.10.3
1.2 给服务器开放端口
参考:https://docs.rancher.cn/docs/rke2/install/requirements/_index#%E7%BD%91%E7%BB%9C
1.3 挂载数据盘(创建LV,便于以后扩展)(3台机器执行相同操作)
# 创建物理卷
pvcreate /dev/vdb
# 创建卷组
vgcreate vg_data /dev/vdb
# 创建逻辑卷
lvcreate -l 100%VG -n lv_data vg_data
# 创建文件系统
mkfs.ext4 /dev/vg_data/lv_data
# 创建挂载点
mkdir /data
# 将挂载信息写入fstab
echo "/dev/vg_data/lv_data /data ext4 defaults 1 1" >> /etc/fstab
# 自动挂载
mount -a
# 查看是否挂载成功
df -h
2. 安装RKE2
参考:https://docs.rancher.cn/docs/rke2/install/quickstart/_index
安装server节点
curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRROR=cn sh -
systemctl enable rke2-server.service
systemctl start rke2-server.service
# 获取server token
cat /var/lib/rancher/rke2/server/node-token
# 监控日志
journalctl -u rke2-server -f
安装worker节点
- 查看worker配置文件: /etc/rancher/rke2/config.yaml
# cat /etc/rancher/rke2/config.yaml
server: https://192.168.10.1:9345
token: K10708e72***003edf91::server:1bf87*****39
- 安装
curl -sfL https://rancher-mirror.rancher.cn/rke2/install.sh | INSTALL_RKE2_MIRROR=cn INSTALL_RKE2_TYPE="agent" sh -
systemctl enable rke2-agent.service
mkdir -p /etc/rancher/rke2/
vim /etc/rancher/rke2/config.yaml
config.yaml 的内容。
server: https://<server>:9345
token: <token from server node>
- 启动
systemctl start rke2-agent.service
- 查看日志
journalctl -u rke2-agent -f
3. 安装rancher
# 先配置本地的 ~/.kube/config 文件
scp root@192.168.10.1:/etc/rancher/rke2/rke2.yaml ~/.kub/config
# 给k8s节点nfs-common,使rancher可以支持以NFSv4支持 ReadWriteMany
apt install nfs-common
######
# 添加 Jetstack Helm 仓库
helm repo add jetstack https://charts.jetstack.io
# 更新本地 Helm Chart 仓库缓存
helm repo update
# 安装 cert-manager Helm Chart
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--set installCRDs=true \
--create-namespace
#####################################################
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--create-namespace \
--set hostname=rancher.goner.fun \
--set bootstrapPassword=admin
然后,访问地址:https://rancher.goner.fun/dashboard/?setup=admin进行配置
4. 安装负载均衡:metallb
为什么要安装负载均衡?
答案:有部分Operator写死了使用负载均衡,比如 minio-Operator
4.1 给kube-proxy开启ipvs模式
# 1.在server节点操作
echo """
kube-proxy-arg:
- proxy-mode=ipvs
- ipvs-strict-arp=true
""" >> /etc/rancher/rke2/config.yaml
# 2.所有节点均需操作
echo """
ip_vs_lc
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
""" > /etc/modules-load.d/ipvs.conf
# 重启服务器
reboot
4.2 安装metallb
helm repo add metallb https://metallb.github.io/metallb
helm install metallb metallb/metallb
4.3 配置地址池
echo """
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses:
- 192.168.11.0/24
""" > layer2-pool.yaml
kubectl apply -f layer2-pool.yaml
4.4 使192.168.11.0/24网段地址可达
思路:
- 在192.168.10.1主机上开启路由转发,让其他网段的主机使用192.168.10.1 为跳板访问虚拟ip网段192.168.11.0/24
- 在路由表中增加路由配置,告知其他主机访问192.168.11.0/24,需要通过192.168.10.1
- 开启跳转
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
- 增加路由规则
注意: metallb采用了ipvs的方式提供服务,真正服务的还是k8s集群节点,如果虚拟ip监听了某端口,需要在集群节点安全组中开放响应端口。
备注:我这里是在阿里云上完成的,路由是在IPC的路由表中设置的,如果是物理集群需要再路由器中配置,如果是其他云也有类似的地方可以配置路由。
参考文献:
[1]. https://docs.rancher.cn/docs/rke2/install/requirements/_index#%E7%BD%91%E7%BB%9C
[2]. https://docs.rancher.cn/docs/rke2/install/quickstart/_index
[3]. https://metallb.io/installation/
[4]. https://ranchermanager.docs.rancher.com/zh/getting-started/overview
手动广告
我开发了一个golang的依赖注入框架名字叫Gone, Gone 是可以高效开发Web服务的Golang依赖注入框架
github地址:https://github.com/gone-io/gone
文档地址:https://goner.fun/zh/
帮忙在gitlab上点个星星吧?
福利:🔥添加 Gone框架-交流群,赠送 Golang 多套 学习资料,夯实基础👍🏻👍🏻