在 Ubuntu 上落地 Kubernetes 自动化运维
一 架构与工具选型
二 自动化落地步骤
三 关键示例
- hosts: all
become: true
tasks:
- name: 关闭 Swap
command: swapoff -a
- name: 加载内核模块
shell: |
modprobe overlay
modprobe br_netfilter
- name: 配置 sysctl
copy:
dest: /etc/sysctl.d/k8s.conf
content: |
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
- name: 安装 kubeadm/kubelet/kubectl
apt:
name:
- kubelet
- kubeadm
- kubectl
state: present
update_cache: yes
- name: 锁定版本
command: apt-mark hold kubelet kubeadm kubectl
#!/usr/bin/env bash
set -e
MANIFEST=$1
[[ -z "$MANIFEST" ]] && { echo "用法: $0 <manifest.yaml>"; exit 1; }
echo "[INFO] 应用清单 $MANIFEST"
kubectl apply -f "$MANIFEST"
echo "[INFO] 等待 Deployment 就绪"
kubectl rollout status deployment/$(basename "$MANIFEST" .yaml) || { echo "[ERROR] 部署失败"; exit 1; }
echo "[INFO] 当前 Pods"
kubectl get pods -l app=$(basename "$MANIFEST" .yaml)
四 高可用与运维要点
控制面高可用:使用 VIP/DNS + HAProxy/Keepalived 或云 LB,执行 kubeadm init --control-plane-endpoint=VIP:PORT --upload-certs 并在各控制面节点加入;验证 kubectl get nodes 均为 Ready。
安全与合规:开启 RBAC、最小权限与 Pod Security,镜像仓库使用可信源与镜像签名,Secret 使用 SealedSecrets/外部 Vault,定期审计与漏洞扫描。
可观测性体系:为节点、Pod、控制面与业务关键指标建立 Grafana 看板与 Prometheus 告警规则;日志集中到 EFK/ELK,结构化输出与链路追踪(如 Jaeger/OTel)。
备份与恢复:定期备份 etcd(快照与恢复演练),持久卷数据采用 Velero 或云厂商快照策略,验证恢复流程与 RPO/RTO。
升级与变更:遵循 kubeadm 升级流程,先在测试环境验证;应用变更使用 滚动更新 与 蓝绿/金丝雀,配合 Argo CD/Flux 做渐进式交付与自动回滚。