在AWS环境中使用kubeadm部署Kubernetes集群,需遵循以下核心步骤:
-
基础设施准备
- 创建EC2实例作为Master/Worker节点(建议t3.medium以上规格)
- 配置VPC网络确保节点间互通,安全组开放6443、2379-2380、10250-10255等关键端口
- 分配弹性IP或配置Route53域名绑定Master节点
-
依赖安装
- 所有节点安装Docker/containerd、kubeadm、kubectl、kubelet
- 禁用swap并设置内核参数(net.bridge.bridge-nf-call-iptables=1)
- 配置CRI和kubelet systemd服务
-
集群初始化
- Master节点执行:
kubeadm init --control-plane-endpoint=<弹性IP或DNS> \ --pod-network-cidr=10.244.0.0/16
- 配置kubectl访问权限
- 部署Calico/Flannel等CNI插件
- Master节点执行:
-
节点加入
- Worker节点使用kubeadm join命令加入集群
- 验证节点状态:
kubectl get nodes -o wide
-
AWS集成优化
- 部署AWS Load Balancer Controller
- 配置StorageClass使用EBS CSI驱动
- 启用IAM Roles for Service Accounts (IRSA)
注意事项:
- 建议使用Amazon Linux 2或Ubuntu 20.04+系统
- 生产环境应部署至少3个Master节点实现高可用
- 通过Terraform/CloudFormation自动化基础设施部署
- 定期备份etcd数据并启用CloudWatch监控
- 安全建议:启用Kubernetes RBAC,限制EC2实例IAM权限