kubernetes吧 关注:237贴子:749
  • 0回复贴,共1

Kubernetes实战:高可用集群搭建,配置,运维与应用

只看楼主收藏回复

获课: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)
网络层配置
收起bashkubectl 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 模式负载均衡:
二、实战部署步骤
准备工作
收起bashswapoff -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
初始化控制平面收起bashkubeadm init --config=kubeadm-config.yaml \--upload-certs \--apiserver-advertise-address=192.168.1.100 \--control-plane-endpoint "lb.example.com:6443"
加入 Worker 节点收起bashkubeadm join lb.example.com:6443 --token <token> --discovery-token-ca-cert-hash <hash>
三、运维最佳实践
自动伸缩配置
收起bashhelm install autoscaler autoscaler/cluster-autoscaler \--set cloudProvider=aws \--set autoDiscovery.clusterName=my-cluster
启用 Cluster Autoscaler:
监控与日志
收起bashkubectl 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
网络策略配置收起yamlapiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: allow-webspec: podSelector: matchLabels: app: web ingress: - from: - podSelector: matchLabels: app: api
六、安全增强措施
RBAC 配置收起bashkubectl create rolebinding dev-admin-binding \--role=admin \--user=dev-user
镜像安全扫描收起bashtrivy image --exit-code 1 --severity HIGH myapp:latest
注意事项
确保负载均衡器(如 HAProxy)配置健康检查
定期轮换 kubeconfig 证书(使用kubeadm certs renew)
生产环境建议使用云厂商托管 Kubernetes 服务(如阿里云 ACK)
建议结合具体场景选择网络插件(如 Cilium 增强安全)和存储方案(如 Longhorn 本地存储)。遇到问题时可通过kubectl describe和journalctl -u kubelet进行诊断。


IP属地:河北1楼2025-03-06 11:58回复