K8s 常见的部署方式

Kubernetes 部署方式全攻略:从零到生产级的终极选择指南

血泪教训:某初创公司直接使用 Minikube 部署生产环境,导致服务全面崩溃!本文为你揭示不同场景下的正确部署姿势。


一、本地开发环境部署——开发者的"试验田"

1.1 Minikube:极速单机体验

# 快速启动集群(Mac 示例)
minikube start --driver=docker --cpus=4 --memory=8g
minikube dashboard  # 开启可视化面板
  • 适用场景
    • 功能验证:测试 Deployment 配置
    • 学习练习:熟悉 kubectl 基础命令
  • 生产禁区:绝对禁止用于正式环境

1.2 Kind:多节点模拟器

# 创建 3 节点集群
kind create cluster --name dev-cluster --config kind-multi-node.yaml
  • 优势
    • 轻量级容器化集群
    • 支持多控制平面节点
    • 适合 CI/CD 流水线测试

二、生产环境部署方案——企业级选择

2.1 自建集群三剑客

工具 特点 适用规模 生产案例
kubeadm 官方推荐,灵活可控 50节点以下 中型电商后端
Kubespray Ansible驱动,自动化程度高 100+节点 金融行业私有云
K3s 轻量级,适合边缘计算 IoT设备集群 智慧工厂传感器网

kubeadm 部署示例

# 控制平面初始化
kubeadm init --control-plane-endpoint "HA-VIP:6443" \
--upload-certs --pod-network-cidr=10.244.0.0/16

# 工作节点加入
kubeadm join HA-VIP:6443 --token xxxx --discovery-token-ca-cert-hash sha256:xxxx

2.2 云厂商托管服务对比

平台 服务名称 核心优势 典型客户
AWS EKS 深度集成AWS生态 出海电商
Google GKE 原生K8s技术支持 大数据分析公司
阿里云 ACK 国内访问速度快 政务云项目
腾讯云 TKE 游戏行业优化 手游开发商

生产建议

  • 跨国业务选择多云部署(EKS + GKE)
  • 国内业务优先考虑网络延迟(ACK/TKE)

三、特殊场景部署方案——打破常规

3.1 边缘计算场景

  • 方案选择
    • K3s:<100MB 内存占用
    • MicroK8s:原子更新能力
  • 部署特点
    # K3s 边缘节点配置
    k3s server --disable servicelb --disable traefik
    

3.2 混合云部署

  • 架构示例
    本地数据中心(kubeadm) ↔ 云上托管集群(EKS)
    ↑
    边缘节点(K3s)
    
  • 关键技术
    • 集群联邦(Kubefed)
    • 统一网络方案(Calico Overlay)

四、生产环境部署检查清单

4.1 安全加固项

4.2 高可用配置

graph TD A[外部负载均衡] --> B[Master1] A --> C[Master2] A --> D[Master3] B --> E[ETCD集群] C --> E D --> E

4.3 监控告警体系

层级 工具组合 监控重点
基础设施 Node Exporter + Prometheus CPU/内存/磁盘使用率
集群组件 kube-state-metrics 控制平面健康状态
应用层 Grafana + Loki 业务日志与性能指标

五、部署方式决策树

  1. 是否需要完全控制

    • 是 → 自建集群(kubeadm/Kubespray)
    • 否 → 云托管服务(EKS/GKE)
  2. 集群规模

    • <10节点 → kubeadm
    • 10-100节点 → Kubespray
    • 100节点 → 云托管 + 自建混合

  3. 是否有边缘节点

    • 是 → K3s/MicroK8s
    • 否 → 标准方案

生产环境黄金法则

  1. 预生产环境必须与生产环境部署方式一致
  2. 使用 Infrastructure as Code(Terraform + Ansible)
  3. 定期进行灾难恢复演练
  4. 控制平面与工作节点硬件隔离
posted on 2025-03-09 10:38  Leo-Yide  阅读(248)  评论(0)    收藏  举报