news 2026/7/24 20:35:37

阿里云ECS上搭建生产级Kubernetes集群实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
阿里云ECS上搭建生产级Kubernetes集群实战指南

1. 项目背景与核心价值

在云计算时代,容器编排技术已经成为现代应用部署的标准方案。作为一名长期在云计算领域实践的工程师,我最近在阿里云ECS上成功搭建了一套生产可用的Kubernetes集群。整个过程踩过不少坑,也积累了一些实战经验,今天就把这个完整方案分享给大家。

阿里云ECS作为国内领先的云服务器产品,提供了稳定可靠的IaaS层资源。而Kubernetes作为容器编排领域的事实标准,两者结合可以快速构建企业级容器化平台。这种方案特别适合中小型企业快速搭建自己的DevOps基础设施,也适合开发者学习云原生技术栈。

2. 环境准备与资源规划

2.1 服务器选型建议

在阿里云上搭建Kubernetes集群,首先需要考虑ECS实例的选型。根据我的经验:

  • 控制节点(Master):建议至少2核4G配置,生产环境推荐4核8G
  • 工作节点(Node):根据业务负载选择,开发环境2核4G起步
  • 系统盘:建议40GB以上,选择高效云盘或SSD云盘
  • 操作系统:推荐使用Aliyun Linux 2或CentOS 7.9

重要提示:阿里云部分ECS实例规格(如t5突发性能实例)不适合运行Kubernetes,建议选择计算型c6或通用型g6系列实例。

2.2 网络规划要点

  • VPC规划:建议为Kubernetes集群创建独立的VPC
  • 交换机配置:至少配置2个不同可用区的交换机
  • 安全组设置:需要开放6443(API Server)、2379-2380(etcd)等端口
  • 弹性公网IP:建议仅为Master节点配置EIP

3. Kubernetes集群部署实战

3.1 基础环境配置

在所有节点上执行以下基础配置:

# 关闭swap swapoff -a sed -i '/ swap / s/^/#/' /etc/fstab # 关闭SELinux setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 配置内核参数 cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system

3.2 容器运行时安装

推荐使用containerd作为容器运行时:

# 安装containerd yum install -y containerd.io # 配置containerd mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml # 修改sandbox镜像为阿里云镜像 sed -i 's|k8s.gcr.io/pause|registry.aliyuncs.com/google_containers/pause|g' /etc/containerd/config.toml # 启动containerd systemctl enable --now containerd

3.3 Kubernetes组件安装

配置阿里云Kubernetes镜像源:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF

安装kubeadm、kubelet和kubectl:

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes systemctl enable --now kubelet

3.4 集群初始化

在Master节点执行初始化:

kubeadm init \ --image-repository registry.aliyuncs.com/google_containers \ --pod-network-cidr=10.244.0.0/16 \ --service-cidr=10.96.0.0/12 \ --apiserver-advertise-address=<Master节点内网IP>

初始化完成后,按照提示配置kubectl:

mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.5 网络插件安装

推荐使用Flannel作为网络插件:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

4. 工作节点加入集群

在每个工作节点执行Master节点初始化后提供的join命令:

kubeadm join <Master节点IP>:6443 --token <token> \ --discovery-token-ca-cert-hash sha256:<hash>

加入完成后,在Master节点验证节点状态:

kubectl get nodes

5. 集群验证与基础组件部署

5.1 集群状态检查

# 查看组件状态 kubectl get componentstatuses # 查看pod状态 kubectl get pods --all-namespaces # 查看节点资源使用情况 kubectl top nodes

5.2 部署Dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

创建访问令牌:

kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

6. 生产环境优化建议

6.1 Master节点高可用

生产环境建议部署3个Master节点实现高可用:

  1. 部署负载均衡器(如阿里云SLB)
  2. 使用keepalived+haproxy实现本地负载均衡
  3. 修改kubeadm配置使用VIP地址

6.2 持久化存储方案

推荐使用阿里云CSI插件对接云盘/NAS:

# 安装CSI插件 kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/alibaba-cloud-csi-driver/master/deploy/ack/csi-plugin.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/alibaba-cloud-csi-driver/master/deploy/ack/csi-provisioner.yaml

6.3 监控与日志方案

  • 监控:Prometheus + Grafana
  • 日志:EFK(Elasticsearch + Fluentd + Kibana)
  • 告警:Alertmanager

7. 常见问题排查

7.1 节点NotReady状态排查

  1. 检查kubelet服务状态:systemctl status kubelet
  2. 查看kubelet日志:journalctl -u kubelet -f
  3. 检查网络插件pod状态:kubectl get pods -n kube-system

7.2 Pod一直处于Pending状态

  1. 查看事件详情:kubectl describe pod <pod-name>
  2. 检查资源配额:kubectl describe nodes
  3. 检查存储卷声明:kubectl get pvc

7.3 镜像拉取失败

  1. 配置阿里云镜像加速器
  2. 检查镜像地址是否正确
  3. 检查网络连通性

8. 运维管理技巧

  1. 使用kubectl自动补全:
echo 'source <(kubectl completion bash)' >> ~/.bashrc
  1. 快速查看资源使用:
watch -n 1 kubectl get pods -A
  1. 批量删除异常pod:
kubectl delete pods --field-selector=status.phase=Failed -A
  1. 使用kubectl插件:
# 安装krew插件管理器 ( set -x; cd "$(mktemp -d)" && curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/krew.tar.gz" && tar zxvf krew.tar.gz && KREW=./krew-"$(uname | tr '[:upper:]' '[:lower:]')_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/arm.*$/arm/')" && "$KREW" install krew )

在实际运维过程中,我发现阿里云ECS的自动恢复功能对Kubernetes节点异常恢复很有帮助。建议为生产环境节点开启"实例自动恢复"功能,当节点底层硬件故障时,系统会自动迁移实例到健康物理机。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 20:35:36

5大核心功能揭秘:如何用daily_stock_analysis实现零成本AI股票分析

5大核心功能揭秘&#xff1a;如何用daily_stock_analysis实现零成本AI股票分析 在信息爆炸的股市中&#xff0c;个人投资者往往面临专业分析工具门槛高、数据获取成本高的双重困境。daily_stock_analysis作为一款LLM驱动的A/H/美股智能分析系统&#xff0c;通过整合多数据源行…

作者头像 李华
网站建设 2026/7/24 20:35:01

React 组件库的 Tree Shaking:按需加载与副作用的工程化治理

React 组件库的 Tree Shaking&#xff1a;按需加载与副作用的工程化治理 一、组件库体积膨胀&#xff1a;打包产物里的沉默重量 业务方接入一个组件库&#xff0c;常常只用了三五个组件&#xff0c;构建产物里却躺着一整套库。打开 bundle 分析&#xff0c;没引用的 DatePick…

作者头像 李华
网站建设 2026/7/24 20:34:48

如何从视频中提取PPT:面向新手的完整智能提取指南

如何从视频中提取PPT&#xff1a;面向新手的完整智能提取指南 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 你是否曾经需要从会议录像、在线课程或演示视频中提取PPT内容&#xff…

作者头像 李华
网站建设 2026/7/24 20:34:42

终极Windows实时语音转文字工具:TMSpeech让你的会议内容一目了然

终极Windows实时语音转文字工具&#xff1a;TMSpeech让你的会议内容一目了然 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 你是否曾在视频会议中因分心错过关键信息&#xff1f;面对外语课程时&#xff0c;是否因…

作者头像 李华
网站建设 2026/7/24 20:34:38

5大核心技术构建高效抢票自动化系统:从原理到实战的完整指南

5大核心技术构建高效抢票自动化系统&#xff1a;从原理到实战的完整指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 在票务市场竞争激烈的今天&#xff0c;手动抢票成功率…

作者头像 李华
网站建设 2026/7/24 20:32:23

华为昇腾系列——使用vllm

背景 华为昇腾有推出自己的推理引擎——MindIE&#xff08;Mind Inference Engine&#xff09;。同时也在持续维护“vllm-ascend”项目&#xff0c;用于在昇腾NPU上运行vllm。详见&#xff1a;欢迎使用 vLLM Ascend 插件 — vllm-ascend 本文主要记录对“vllm-ascend”的一个…

作者头像 李华