k8s集群3主5从高可用架构(kubeadm方式安装k8s)

关键步骤说明

  1. 环境准备阶段

    • 系统更新:所有节点执行yum/apt update确保软件包最新
    • 时间同步:通过ntpdate time.windows.com或部署NTP服务器
    • 网络规划:明确划分Service网段(默认10.96.0.0/12)和Pod网段(如Flannel使用10.244.0.0/16)
  2. 节点初始化细节

    • 关闭Swap分区:临时swapoff -a并永久注释/etc/fstab中的swap条目
    • 主机名配置:主节点命名为k8s-master{1,2,3},从节点命名为k8s-node{1-5}
    • sysctl配置:启用网桥过滤功能,执行sysctl --system生效
  3. 组件安装优化

    • Docker配置:使用阿里云镜像加速,修改/etc/docker/daemon.json
    • kubeadm版本控制:指定安装v1.18.0等稳定版本,避免使用edge版本
    • 启动kubelet:systemctl enable --now kubelet确保开机启动
  4. 控制平面初始化

    • 主节点1执行:

      bash 复制代码
      kubeadm init \
      --apiserver-advertise-address=192.168.72.131 \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.18.0 \
      --service-cidr=10.96.0.0/12 \
      --pod-network-cidr=10.244.0.0/16
    • 主节点2/3加入命令:

      bash 复制代码
      kubeadm join 192.168.72.131:6443 \
      --token n0nyws.8j0mkjbfwk16adai \
      --discovery-token-ca-cert-hash sha256:xxx
  5. 网络插件部署

    • Calico安装:

      bash 复制代码
      kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    • 负载均衡配置示例(HAProxy):

      conf 复制代码
      frontend k8s-api
        bind *:6443
        default_backend k8s-master-nodes
      
      backend k8s-master-nodes
        balance roundrobin
        server master1 192.168.72.131:6443 check
        server master2 192.168.72.132:6443 check
        server master3 192.168.72.133:6443 check
  6. 安全与监控增强

    • RBAC配置:创建ServiceAccount并绑定ClusterRole
    • Pod安全策略:通过kubectl apply -f psp.yaml启用
    • 监控部署:使用kube-prometheus-stack Helm Chart安装

验证检查清单

  1. 节点状态检查:kubectl get nodes -o wide
  2. 组件状态检查:kubectl get pods -n kube-system
  3. 网络连通性测试:部署busybox Pod执行跨节点ping
  4. 高可用验证:模拟主节点故障,检查VIP漂移和服务连续性

该流程图在保持原有架构基础上,细化了环境准备、版本控制、网络配置、安全加固等生产环境关键要素,建议在实际部署时根据具体硬件配置和网络环境进行参数调整。

相关推荐
Decay__3 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
java_logo4 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
Dawson Zhu5 小时前
【分布式训练④】张量并行与序列并行:把单层参数切碎分到多张卡
人工智能·语言模型·架构·aigc·agi
xbzb5 小时前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
码客-ygluu8 小时前
一个通用游戏数据服务器
c++·架构
打工仔折腾 AI9 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
fengkai454510 小时前
Prometheus+K8s弹性伸缩综合项目
运维·kubernetes·k8s·prometheus·hpa·vpa
炫酷的大高个10 小时前
98% 连跑 20 次只剩 67%,我算了大模型重试账
人工智能·架构·开源
用户66026761187910 小时前
AI 代码上线前的第 24 道门禁:上线失败时,怎样在 10 分钟内退回?
后端·架构
humcomm11 小时前
设计与架构 · 01 sidecar 会消失吗:从 Istio ambient GA 到 AWS App Mesh 关停,一次服务网格数据面的重新洗牌
架构·istio·aws