在 Ubuntu 上落地 Kubernetes 自动化运维

一 架构与工具选型
二 自动化落地步骤
三 关键示例
- hosts: allbecome: truetasks:- name: 关闭 Swapcommand: swapoff -a- name: 加载内核模块shell: |modprobe overlaymodprobe br_netfilter- name: 配置 sysctlcopy:dest: /etc/sysctl.d/k8s.confcontent: |net.bridge.bridge-nf-call-iptables= 1net.bridge.bridge-nf-call-ip6tables = 1net.ipv4.ip_forward = 1- name: 安装 kubeadm/kubelet/kubectlapt:name:- kubelet- kubeadm- kubectlstate: presentupdate_cache: yes- name: 锁定版本command: apt-mark hold kubelet kubeadm kubectl#!/usr/bin/env bashset -eMANIFEST=$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 做渐进式交付与自动回滚。