一、高可用集群架构设计
- 控制平面高可用
- 部署 3 个以上控制节点(Master),通过
kubeadm初始化集群 - 使用
kubeadm init --control-plane-endpoint "lb.example.com:6443"指定负载均衡器地址 - 配置
kubeconfig文件指向负载均衡器
Kubernetes实战:高可用集群搭建,配置,运维与应用|完结无密_超星it
-
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
进行诊断。