企业级K8s运维全流程实战,从 “T+1” 到 “秒级”:MySQL+Flink+Doris 构建实时数据分析全链路。
·
企业级 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)栈实现日志分析。
通过上述流程,可实现从集群部署到生产级运维的全链路覆盖,确保高可用、可观测性与安全性的平衡。
更多推荐
所有评论(0)