Kubernetes(简称 K8s)是一种开源的容器编排平台,支持自动化部署、扩展和管理容器化应用程序。以下是 Kubernetes 常见的部署方式:
一、本地开发与测试环境部署
-
Minikube
- 特点:单节点快速启动,集成 Dashboard、Ingress 等核心组件,适合功能验证和基础学习。
- 示例命令:
minikube start --driver=docker --cpus=4 --memory=8g # 启动单节点集群 minikube dashboard # 启用可视化面板
- 适用场景:本地开发、K8s 功能验证(禁止用于生产环境)。
-
Kind (Kubernetes in Docker)
- 特点:基于 Docker 容器模拟多节点集群,轻量级且支持 CI/CD 流水线测试。
- 示例配置(创建 3 节点集群):
kind create cluster --name dev-cluster --config kind-multi-node.yaml
- 优势:快速构建多控制平面节点的测试环境。
-
k3s
- 特点:轻量级 Kubernetes(二进制文件仅 40MB),默认使用 SQLite 替代 etcd,适合边缘计算场景。
- 部署命令:
curl -sfL https://get.k3s.io | sh - # 主节点安装
- 适用场景:资源受限环境(如物联网设备)或快速原型验证。
二、生产级高可用部署
-
kubeadm 部署
- 特点:官方推荐工具,支持快速搭建高可用控制平面,可配置堆叠式 etcd 或独立 etcd 集群。
- 架构示例:
- 3 Master 节点(堆叠式 etcd) + N Worker 节点
- 核心步骤:
- 节点初始化(禁用 Swap、安装容器运行时)
- 控制平面部署:
kubeadm init --control-plane-endpoint "LOAD_BALANCER_IP:6443"
- 适用场景:企业级生产环境,需自主控制集群组件版本。
-
Kubespray (Ansible 驱动)
- 特点:基于 Ansible Playbook 自动化部署,支持多云环境(AWS、OpenStack 等),集成 Calico、Flannel 等网络插件。
- 优势:
- 可离线部署,适配严格的内网环境需求;
- 提供生产级参数调优模板(如证书配置、RBAC 规则)。
-
RKE (Rancher Kubernetes Engine)
- 特点:通过 Docker 容器化部署 K8s 组件,简化集群生命周期管理(升级、备份)。
- 适用场景:需与 Rancher 生态集成的混合云环境。
三、云原生托管服务
-
公有云托管方案
- 代表服务:
- AWS EKS
- Google GKE
- Azure AKS
- 特点:
- 全托管控制平面,自动处理节点扩缩容和安全补丁;
- 内置云厂商特有功能(如 AWS Load Balancer 集成)。
- 代表服务:
-
混合云部署
- 工具支持:
- OpenShift:支持跨本地机房与公有云的统一管理;
- KubeSphere:提供多集群联邦和可视化运维能力。
- 工具支持:
四、特殊场景部署方式
-
二进制手动部署
- 特点:逐一下载安装
kube-apiserver
、kube-controller-manager
等组件,完全自定义配置参数。 - 适用场景:研究 K8s 底层原理或需要深度定制组件行为的场景。
- 特点:逐一下载安装
-
Helm Charts 扩展部署
- 示例:通过 Helm 快速部署复杂应用(如 Prometheus 监控栈):
helm install prometheus-stack prometheus-community/kube-prometheus-stack
- 作用:简化有状态服务(如数据库)的依赖管理和配置模板化。
- 示例:通过 Helm 快速部署复杂应用(如 Prometheus 监控栈):
五、部署方式对比表
方式 | 复杂度 | 适用规模 | 维护成本 | 典型场景 |
---|---|---|---|---|
Minikube | 低 | 单节点 | 低 | 本地开发测试 |
kubeadm | 中 | 中小集群 | 中 | 企业生产环境 |
Kubespray | 高 | 大规模 | 高 | 混合云多数据中心 |
云托管服务 | 低 | 弹性扩展 | 低 | 公有云快速上线 |
验证建议
- 测试部署后,可通过以下命令验证集群状态:
kubectl get nodes # 查看节点状态 kubectl get pods -A # 检查核心组件运行情况
- 生产环境需额外配置监控(Prometheus)和日志收集(EFK)。