尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Kubernetes高可用集群部署实战与优化指南
1. Kubernetes集群搭建实战复盘上周终于把生产环境的K8s集群部署上线了整个过程踩了不少坑也积累了一些实战经验。这次部署的是v1.25版本的Kubernetes采用3个master节点5个worker节点的高可用架构网络插件选的Calico存储方案用的Ceph RBD。下面就把这次部署的核心流程和关键注意事项做个完整记录。重要提示生产环境部署前务必做好备份方案我在第一次部署时就因为ETCD配置错误导致需要全部重装1.1 基础环境准备所有节点统一使用Ubuntu 22.04 LTS系统内核升级到5.15版本。硬件配置方面Master节点8核CPU/32GB内存/200GB SSD需要运行ETCDWorker节点16核CPU/64GB内存/500GB SSD运行业务容器先在所有节点执行基础环境配置# 关闭swap sudo swapoff -a sudo sed -i / swap / s/^/#/ /etc/fstab # 设置内核参数 cat EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF sudo sysctl --system1.2 关键组件安装使用官方推荐的kubeadm工具进行安装版本锁定为1.25.6# 安装dockercontainerd也可 sudo apt-get install -y docker.io sudo systemctl enable docker # 安装kubeadm/kubelet/kubectl sudo apt-get install -y apt-transport-https ca-certificates curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.25/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo deb [signed-by/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.25/deb/ / | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet1.25.6-1.1 kubeadm1.25.6-1.1 kubectl1.25.6-1.1 sudo apt-mark hold kubelet kubeadm kubectl2. 集群初始化与高可用配置2.1 首个Master节点初始化创建kubeadm配置文件kubeadm-config.yamlapiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration localAPIEndpoint: advertiseAddress: 192.168.1.101 bindPort: 6443 --- apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration kubernetesVersion: v1.25.6 controlPlaneEndpoint: k8s-api.example.com:6443 networking: podSubnet: 10.244.0.0/16 serviceSubnet: 10.96.0.0/12 apiServer: certSANs: - k8s-api.example.com - 192.168.1.101 - 192.168.1.102 - 192.168.1.103 --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration cgroupDriver: systemd执行初始化sudo kubeadm init --configkubeadm-config.yaml --upload-certs初始化完成后会输出加入集群的命令务必保存好这些命令。配置kubectlmkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config2.2 安装网络插件选择Calico作为CNI插件kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigera-operator.yaml kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/custom-resources.yaml验证网络状态watch kubectl get pods -n calico-system2.3 加入其他Master节点使用初始化时生成的命令在其他两个Master节点执行sudo kubeadm join k8s-api.example.com:6443 --token xxxx \ --discovery-token-ca-cert-hash sha256:xxxx \ --control-plane --certificate-key xxxx验证高可用kubectl get nodes kubectl -n kube-system get pods3. Worker节点加入与配置3.1 节点加入集群在每个Worker节点执行初始化时生成的join命令sudo kubeadm join k8s-api.example.com:6443 --token xxxx \ --discovery-token-ca-cert-hash sha256:xxxx3.2 节点标签与污点设置根据业务需求设置节点标签kubectl label nodes node1 disktypessd kubectl label nodes node2 gputrue对于特殊节点设置污点kubectl taint nodes node3 dedicatedspecial:NoSchedule4. 存储与网络高级配置4.1 Ceph RBD存储配置先在所有节点安装ceph-commonsudo apt-get install -y ceph-common创建StorageClassapiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ceph-rbd provisioner: kubernetes.io/rbd parameters: monitors: 10.0.0.1:6789,10.0.0.2:6789,10.0.0.3:6789 adminId: admin adminSecretName: ceph-secret adminSecretNamespace: kube-system pool: kube userId: kube userSecretName: ceph-secret-user fsType: ext4 imageFormat: 2 imageFeatures: layering4.2 网络策略配置示例网络策略限制命名空间间通信apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-all namespace: production spec: podSelector: {} policyTypes: - Ingress - Egress5. 监控与日志方案5.1 Prometheus监控部署使用kube-prometheus-stackhelm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace \ --values values.yaml5.2 EFK日志收集部署ElasticsearchFluentdKibanahelm install elasticsearch elastic/elasticsearch --namespace logging helm install fluentd fluent/fluentd --namespace logging helm install kibana elastic/kibana --namespace logging6. 常见问题排查记录6.1 节点NotReady问题可能原因及解决方案网络插件未正常运行 → 检查Calico Pod状态kubelet服务异常 →journalctl -u kubelet查看日志节点资源不足 → 检查内存/磁盘空间6.2 Pod一直Pending排查步骤kubectl describe pod pod-name kubectl get events --sort-by.metadata.creationTimestamp常见原因资源不足不满足节点选择器/亲和性规则PV/PVC问题6.3 网络连通性问题诊断工具# 检查DNS解析 kubectl run -it --rm --imagebusybox:1.28 test -- nslookup kubernetes.default # 检查服务连通性 kubectl run -it --rm --imagenicolaka/netshoot test -- curl http://service-name7. 生产环境优化建议7.1 关键参数调优kubelet配置优化apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration maxPods: 150 kubeReserved: cpu: 1 memory: 2Gi systemReserved: cpu: 1 memory: 2Gi evictionHard: memory.available: 500Mi nodefs.available: 10%7.2 安全加固措施启用Pod安全准入控制定期轮换证书限制Dashboard访问启用审计日志# 检查安全配置 kubectl get --raw/metrics | grep apiserver_audit这次部署最大的教训是一定要先在测试环境充分验证所有配置特别是ETCD和网络插件的参数设置。我们因为Calico的IP池配置错误导致第一次部署后全部重来耽误了整整一天时间。另外建议使用Terraform等IaC工具管理节点配置可以大大减少人为操作失误。
RELATED

相关推荐

Linux内存管理:Overcommit机制与OOM Killer深度解析

Linux内存管理:Overcommit机制与OOM Killer深度解析

1. Linux内存管理基础与Overcommit机制在Linux系统中,内存管理是一个复杂而精密的子系统。不同于传统操作系统严格按物理内存分配的策略,Linux采用了一种称为Overcommit(过度分配)的内存分配机制。这种设计理念源于早期Unix系统的…

📅 2026/11/7 13:43:06
Linux文件权限管理:从原理到实战应用

Linux文件权限管理:从原理到实战应用

1. 权限管理的底层逻辑在Linux系统中,每个文件和目录都附带着一套完整的权限控制系统,这套机制直接决定了"谁可以对文件做什么"。理解权限管理需要从三个维度入手:权限主体(用户身份)、权限类型(…

📅 2026/10/22 23:55:34
模型蒸馏与微调融合:工业级AI部署的轻量化实践

模型蒸馏与微调融合:工业级AI部署的轻量化实践

1. 模型蒸馏与微调的技术融合背景在工业级AI部署场景中,我们常常面临这样的矛盾:大模型虽然效果出众但推理成本高昂,小模型虽然轻量但精度难以达标。过去三年我在多个计算机视觉项目中反复验证了一个解决方案——将知识蒸馏(Knowl…

📅 2026/10/9 5:01:13
MORE NEWS

更多资讯

📰

工地太忙根本没时间复习考试?电工作业证办理时间及通过率揭秘

工地太忙根本没时间复习考试?电工作业证办理时间及通过率揭秘 工地太忙根本没时间复习考试,这几乎是每个一线电工的共同困扰。特别是刚到安阳的新人,面对复杂的电工作业证报考流程,不仅担心 电工作业证办理时间 ,更担心考试能不能通过,毕竟…

📰

广州电工证级别值不值得考?怕考不过白交培训费的你一定要看完

广州电工证级别值不值得考?怕考不过白交培训费的你一定要看完 怕考不过白交培训费?广州电工证级别值不值得考?如果你是第一次接触特种作业操作证,尤其是低压电工证或高压电工证,这可能是你最关心的问题。别急,这篇文章从报考流程、考试难度、行业前景、…

📰

电工证证件网上的上岗必备证书,实操考试心里没底怕挂科?别慌,看这篇就够了

电工证证件网上的上岗必备证书,实操考试心里没底怕挂科?别慌,看这篇就够了 实操考试心里没底怕挂科?很多人在准备电工证考试时,总会担心自己能不能顺利通过,尤其是实操部分,总觉得“上手难”,甚至觉得“这证是不是上岗必备的,真的有那么重要?”今天…

📰

电工作业人员配置标准全国通用吗?别再被坑了

电工作业人员配置标准全国通用吗?别再被坑了 现在找工作处处都要特种作业证,特别是电工作业证,没有它连门槛都进不去,这事儿太真实了。尤其是像你这样的刚入行或者准备转行的兄弟,最怕的就是花了钱办了证,结果发现不通用或者不认可。别急,下面这几点干…

📰

电工证考试成绩合格千万别踩坑,实操考试心里没底怕挂科

电工证考试成绩合格千万别踩坑,实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。每年有数百万的特种作业从业者在为电工证考试发愁,尤其是像你这样从其他岗位转岗过来的驻马店朋友,对考试内容、流程和标准都不太清楚。电工证考试成绩合格是…

📰

电工证都多少级别内部消息:实操考试心里没底怕挂科?这几点必须知道

电工证都多少级别内部消息:实操考试心里没底怕挂科?这几点必须知道 实操考试心里没底怕挂科,这是很多准备考电工证的朋友最真实的感受。尤其是像我这样从其他行业转岗过来的,面对复杂的操作流程和严格的考核标准,心里难免打鼓。其实,很多人对电工证的等…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬