基于rke2的K8S部署过程记录- rke2 + rancher + metallb

基于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网段地址可达

思路:

  1. 在192.168.10.1主机上开启路由转发,让其他网段的主机使用192.168.10.1 为跳板访问虚拟ip网段192.168.11.0/24
  2. 在路由表中增加路由配置,告知其他主机访问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 多套 学习资料,夯实基础👍🏻👍🏻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dapeng-大鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值