分享在首尔服务器上从零搭建生产级 Kubernetes 集群的完整流程,包括网络、存储、监控等核心组件。
Kubernetes 已成为容器编排的事实标准。本文分享在首尔服务器搭建生产级 K8s 集群的实战经验。
集群规划 1) 节点数量:至少 3 个 master + 3 个 worker,保证高可用 2) 节点规格:master 4C/8G,worker 8C/16G 起步 3) 网络:Calico 或 Cilium,支持 NetworkPolicy 4) 存储:本地 SSD + Ceph 分布式存储 5) 域名:规划好集群内域名和外部域名
操作系统准备 1) Ubuntu 22.04 LTS 或 CentOS 7/8 2) 关闭 swap:swapoff -a,并注释 /etc/fstab 3) 关闭防火墙或放行 K8s 端口 4) 设置主机名和 hosts 解析 5) 开启内核转发:net.ipv4.ip_forward=1
容器运行时 1) 推荐 containerd,轻量稳定 2) 配置 cgroup 驱动为 systemd 3) 设置镜像加速(首尔本地镜像源) 4) 配置 registry 私有仓库
安装 Kubernetes 1) 添加 Kubernetes apt 源 2) 安装 kubeadm、kubelet、kubectl 3) kubeadm init 初始化 master 4) 安装网络插件 Calico 5) worker 节点 join 集群
核心组件 1) Ingress Controller:Nginx Ingress 或 Traefik 2) 证书管理:cert-manager 自动签发 Let's Encrypt 3) 监控:Prometheus + Grafana 4) 日志:ELK 或 Loki 5) 存储:Rook + Ceph 或 Longhorn
生产环境加固 1) RBAC:最小权限原则 2) NetworkPolicy:默认拒绝,按需放行 3) Pod Security:限制特权容器 4) 镜像安全:只允许可信镜像 5) Secret 加密:etcd 加密存储
高可用配置 1) Master 节点:3 个,etcd 集群 2) 负载均衡:VIP 或外部 LB 3) 存储:分布式存储,多副本 4) 跨可用区:master 分布在不同 AZ 5) 自动恢复:节点故障自动迁移 Pod
监控告警 1) Node 监控:CPU、内存、磁盘、网络 2) Pod 监控:状态、资源使用、重启次数 3) 应用监控:业务指标、错误率、延迟 4) 告警:Prometheus AlertManager 5) 仪表盘:Grafana 统一展示
常见问题 1) Pod 无法调度:检查资源、亲和性、污点 2) 服务不通:检查 Service、Ingress、网络策略 3) 存储挂载失败:检查 StorageClass、PV 4) 证书过期:cert-manager 自动续期 5) 集群升级:按版本逐步升级
总结:生产级 K8s 集群需要规划好网络、存储、监控、安全。一步一步搭建,充分测试,才能稳定运行。