企业级 Kubernetes 运维实战全流程

集群搭建

选择基础设施
根据业务需求选择云厂商(如 AWS EKS、Azure AKS)或自建集群(如使用 kubeadm)。自建集群需考虑高可用架构,至少部署 3 个 Master 节点,并通过负载均衡器分发请求。

安装与配置
通过工具自动化部署集群核心组件:

kubeadm init --control-plane-endpoint "LOAD_BALANCER_IP:6443" --upload-certs
kubeadm join LOAD_BALANCER_IP:6443 --token <token> --discovery-token-ca-cert-hash <hash>

网络插件
选择 Calico 或 Flannel 实现 Pod 间通信,需配置 NetworkPolicy 强化安全:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-app
spec:
  podSelector:
    matchLabels:
      app: nginx
  ingress:
  - from:
    - podSelector:
        matchLabels:
          role: frontend
微服务暴露(Ingress)

Ingress Controller 部署
选择 Nginx Ingress 或 Traefik,通过 Helm 快速安装:

helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --set controller.service.type=LoadBalancer

配置路由规则
定义 Ingress 资源,实现域名路径路由和 TLS 加密:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-ingress
spec:
  tls:
  - hosts:
    - example.com
    secretName: tls-secret
  rules:
  - host: example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 80
监控告警(Prometheus + Grafana)

部署 Prometheus 栈
使用 Prometheus Operator 管理监控组件:

helm install prometheus-stack prometheus-community/kube-prometheus-stack

自定义监控指标
通过 ServiceMonitor 扩展监控目标:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
 name: custom-app
spec:
  selector:
    matchLabels:
      app: my-app
  endpoints:
  - port: web

告警规则配置
在 PrometheusRule 中定义阈值告警:

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
  name: cpu-alert
spec:
  groups:
  - name: general.rules
    rules:
    - alert: HighCPUUsage
      expr: sum(rate(container_cpu_usage_seconds_total[1m])) by (pod) > 0.9
      for: 5m
      labels:
        severity: critical

Grafana 可视化
导入官方仪表板(如 ID 315)或自定义面板,实时展示集群 CPU/内存、Pod 状态等关键指标。

关键优化点
  • 资源配额:通过 ResourceQuota 限制命名空间资源使用。
  • HPA 弹性伸缩:基于 CPU/内存或自定义指标自动扩缩容。
  • 日志收集:集成 EFK(Elasticsearch + Fluentd + Kibana)栈实现日志分析。

通过上述流程,可实现从集群部署到生产级运维的全链路覆盖,确保高可用、可观测性与安全性的平衡。

更多推荐