高可用k3s集群部署rancher

本文详细介绍了如何在Centos7系统上搭建k3s高可用集群,并成功安装Rancher进行管理。在Rockylinux8.6上尝试时遇到问题,但经过多次尝试在Centos7上成功完成。步骤包括k3s HA集群的部署、Rancher的安装、升级及访问验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本篇所述的步骤,在Centos7(2009) x86_64验证通过。采用的k3s版本为v1.24.10+k3s1 采用的rancher版本为2.7。在Rockylinux8.6未通过,反复安装多次,最终都在部署rancher时失败,失败原因不一。

#1.部署k3s ha集群

##Server节点 1~N,执行如下命令

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_VERSION=v1.24.10+k3s1 \
INSTALL_K3S_MIRROR=cn  \
sh -s - server \
--token=SECRET \
--datastore-endpoint="mysql://username:password@tcp(ip:port)/database" \
--system-default-registry "registry.cn-hangzhou.aliyuncs.com"

##可选: 加入Agent节点

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_VERSION=v1.24.10+k3s1  INSTALL_K3S_MIRROR=cn \
K3S_URL=https://${k3s-server}:6443 \
K3
### 如何在单节点上设置高可用性 K3s 集群 #### 单节点上的K3s HA架构概述 为了实现单节点上的高可用(K3s High Availability),可以采用嵌套虚拟化技术创建多个轻量级容器或虚拟机作为集群成员,或者利用外部etcd集群提供冗余。然而最简便的方法之一是在同一物理机器上启动多个K3s实例并指定不同的端口和服务名称。 #### 准备工作环境 确保操作系统支持多网络命名空间或多IP地址绑定功能以便于区分各个K3s服务实例之间的通讯路径[^1]。 #### 安装第一个K3s Server 实例 使用官方推荐的一键安装脚本来部署首个server节点,并记录下生成的token用于后续agent加入: ```bash curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --cluster-init" sh - ``` 此命令会初始化一个新的Kubernetes集群并将当前主机设为主控(server)角色。 #### 启动额外的Server实例以增强HA特性 在同一台设备上重复上述过程来增加更多的master节点(即其他servers),只需更改监听端口号以及连接到已存在的etcd数据库即可: ```bash curl -sfL https://get.k3s.io | \ INSTALL_K3S_EXEC=&#39;server --node-ip <NODE_IP> --bind-address <BIND_ADDRESS> --advertise-address <ADVERTISE_ADDRESS> --etcd-servers http://<EXISTING_SERVER_ADRESS>:2379&#39; sh - ``` 其中`<NODE_IP>`代表该实例使用的内部通信地址;`<BIND_ADDRESS>`指明API server对外暴露的服务地址;而`<ADVERTISE_ADDRESS>`则是用来通告给其它组件识别的位置; `<EXISTING_SERVER_ADRESS>`应替换为之前已经成功建立的第一个server的实际位置信息[^4]. 注意:当在一个单独硬件资源有限制的情况下尝试构建这样的结构时,可能需要考虑CPU/Memory分配策略,比如通过cgroups等方式加以限制,防止因争抢而导致性能下降甚至崩溃的情况发生. #### 加入Agent节点至现有Cluster 对于想要模拟分布式环境中worker行为的工作负载承载单元(agent nodes),可以通过下面的方式将其关联进前述所组建起来的小型HA cluster里头去: ```bash curl -sfL https://get.k3s.io | \ K3S_URL=https://${MASTER_NODE_IP}:6443 K3S_TOKEN=${TOKEN} sh - ``` 这里`${MASTER_NODE_IP}`对应任一先前定义好的master node ip 地址, `${TOKEN}` 则是从最初那次setup操作后获得的秘密字符串[^2]. #### 使用私有镜像仓库优化本地依赖获取效率 针对那些处于防火墙之后无法直接访问互联网的企业内网场景来说,提前准备好一套可供信赖且快速响应请求的docker image source至关重要。按照如下指引完成相应配置文件编辑动作后重启相关进程使改动生效: ```yaml mkdir -p /etc/rancher/k3s/ vi /etc/rancher/k3s/registries.yaml mirrors: docker.io: endpoint: - "http://private_registry_ip:port" configs: "private_registry_ip:port": auth: username: user_name password: pass_word ``` 随后分别对不同类型的k3s service执行重载指令:`systemctl restart k3s|k3s-agent`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值