web集群项目:K3s集群部署
title: K3s集群部署 categories: - web综合集群 date: 2026-03-11 tags: - 项目 cover:把Cloud-Hub作为 K3s 主节点将本地的LB与Web节点作为工作节点构建的是一个标准的边缘计算Edge Computing或混合云Hybrid Cloud控制平面架构。集群架构Master (Cloud-Hub)运行k3s server。它包含 API Server、Scheduler 和 Controller Manager并使用 SQLite轻量级或 etcd 存储集群状态。Workers (LB1, LB2, Web1, Web2)运行k3s agent。每个节点包含kubelet接收指令和containerd运行容器运行时。通信隧道 (FRP)本地节点通过 Firewall 建立的隧道将心跳和管理流量加密传输回云端的 6443 端口。接下来开始部署K3s集群①Cloud-Hub初始化Master在Cloud-Hub上直接执行安装脚本。由于是混合云环境我们需要显式指定公网 IP 供本地节点连接。安装K3s Server在Cloud-Hub执行# 在 Cloud-Hub 执行 # 使用 Rancher 提供的国内加速源 INSTALL_K3S_MIRRORcn curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRRORcn sh -s - server \ --node-external-ip115.191.4.120 \ --flannel-backendvxlan \ --write-kubeconfig-mode 644验证#检查二进制文件 ls -lh /usr/local/bin/k3s #检查系统服务状态 systemctl status k3s #直接运行集群命令 kubectl get nodes获取连接令牌Token本地节点加入时需要这个“暗号”请妥善保存cat /var/lib/rancher/k3s/server/node-token # 输出类似于K10...::server:xxxx放行云安全组端口在云服务商控制台放行以下端口6443/TCPKubernetes API Server 入站流量②在本地节点执行Agent安装利用 Cloud-Hub 上的Ansible一键让LB1, LB2, Web1, Web2四台机器变身为集群的工作节点。编写部署剧本在Cloud-Hub创建deploy_k3s_agents.ymlvim /root/deploy_k3s_agents.yml粘贴内容,将YOUR_TOKEN_HERE替换为刚才获取的 Token--- - name: 强制重新部署 K3s Agent (工作节点) hosts: lb,web become: yes vars: master_url: https://115.191.4.120:6443 node_token: 这里填你真实的TOKEN # 务必确认 TOKEN 正确 tasks: - name: 1. 强力清除残留文件 (确保安装脚本能触发) shell: | /usr/local/bin/k3s-agent-uninstall.sh || true rm -rf /usr/local/bin/k3s /etc/rancher/k3s /var/lib/rancher/k3s ignore_errors: yes - name: 2. 执行 K3s Agent 安装脚本 (使用国内镜像) shell: | curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \ INSTALL_K3S_MIRRORcn \ K3S_URL{{ master_url }} \ K3S_TOKEN{{ node_token }} \ sh -s - agent # 注意这里去掉了 creates 参数强制它运行安装脚本 - name: 3. 启动并激活 k3s-agent 服务 systemd: name: k3s-agent state: started enabled: yes执行剧本ansible-playbook /root/deploy_k3s_agents.yml③验证集群状态安装完成后回到Cloud-Hub验收# 查看所有节点 kubectl get nodes -o wide④在 Cloud-Hub 执行标签赋予LB节点打标签-入口# 标记 lb1 和 lb2 承担七层负载均衡 (Ingress) 职责 kubectl label node lb1-m lb2-b node-role.kubernetes.io/ingresstrueweb节点打标签-计算# 标记 web1 和 web2 为核心业务计算节点 kubectl label node web1 web2 node-role.kubernetes.io/computetrue验证执行以下命令看看节点是否已经带上了对应的身份kubectl get nodes --show-labels
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2429009.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!