获课:weiranit.fun/2865/
获取ZY↑↑方打开链接↑↑
一、高可用集群架构设计
-
控制平面高可用
-
部署 3 个以上控制节点(Master),通过
kubeadm
初始化集群 -
使用
kubeadm init --control-plane-endpoint "lb.example.com:6443"
指定负载均衡器地址 -
配置
kubeconfig
文件指向负载均衡器
-
etcd 集群部署
收起
bash
# 示例:3节点etcd集群配置kubeadm init phase etcd local --config=etcd-config.yaml
-
启用 TLS 加密通信
-
定期备份 etcd 数据(建议使用
etcdctl snapshot save
)
-
网络层配置
收起
bash
kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yamlkubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
-
推荐使用 Calico + MetalLB(裸金属环境)
-
配置 IPVS 模式负载均衡:
二、实战部署步骤
-
准备工作
收起
bash
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstabsetenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
-
所有节点安装 Docker/kubelet/kubeadm
-
关闭 Swap 和 SELinux
-
初始化控制平面
收起
bash
kubeadm init --config=kubeadm-config.yaml \--upload-certs \--apiserver-advertise-address=192.168.1.100 \--control-plane-endpoint "lb.example.com:6443"
-
加入 Worker 节点
收起
bash
kubeadm join lb.example.com:6443 --token <token> --discovery-token-ca-cert-hash <hash>
三、运维最佳实践
-
自动伸缩配置
收起
bash
helm install autoscaler autoscaler/cluster-autoscaler \--set cloudProvider=aws \--set autoDiscovery.clusterName=my-cluster
-
启用 Cluster Autoscaler:
-
监控与日志
收起
bash
kubectl apply -f https://prometheus-operator.dev/operator.yamlkubectl apply -f https://prometheus-operator.dev/prometheus.yaml
-
部署 Prometheus+Grafana:
-
滚动更新策略
收起
yaml
# 示例Deployment配置spec: strategy: rollingUpdate: maxUnavailable: 25% maxSurge: 25%
四、故障处理与升级
-
节点故障恢复
收起
bash
# 驱逐节点Podkubectl drain node01 --ignore-daemonsets# 维护完成后恢复kubectl uncordon node01
-
版本升级流程
收起
bash
# 控制平面升级kubeadm upgrade plankubeadm upgrade apply v1.27.3# Worker节点升级kubeadm upgrade node
五、应用部署优化
-
资源配额管理
收起
yaml
# 示例ResourceQuotaapiVersion: v1kind: ResourceQuotametadata: name: dev-quotaspec: hard: cpu: "10" memory: 20Gi
-
网络策略配置
收起
yaml
apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: allow-webspec: podSelector: matchLabels: app: web ingress: - from: - podSelector: matchLabels: app: api
六、安全增强措施
-
RBAC 配置
收起
bash
kubectl create rolebinding dev-admin-binding \--role=admin \--user=dev-user
-
镜像安全扫描
收起
bash
trivy image --exit-code 1 --severity HIGH myapp:latest
注意事项
-
确保负载均衡器(如 HAProxy)配置健康检查
-
定期轮换 kubeconfig 证书(使用
kubeadm certs renew
) -
生产环境建议使用云厂商托管 Kubernetes 服务(如阿里云 ACK)
建议结合具体场景选择网络插件(如 Cilium 增强安全)和存储方案(如 Longhorn 本地存储)。遇到问题时可通过
kubectl describe
和
journalctl -u kubelet
进行诊断。