悠悠楠杉
CentOS环境下Kubernetes自动化部署实战指南
12/05
正文:
在云原生技术蓬勃发展的今天,Kubernetes已成为容器编排领域的事实标准。对于需要在CentOS系统上快速搭建生产级Kubernetes集群的运维人员而言,实现自动化部署不仅能提升效率,更能确保环境的一致性。本文将手把手带您完成从零开始的自动化部署实践。
环境准备阶段
首先需要准备至少两台运行CentOS 7/8的服务器(1个控制节点+1个工作节点),确保各节点满足2GB以上内存和双核CPU的基础配置。网络配置需注意关闭防火墙并禁用SELinux,这是保证集群通信顺畅的关键前提:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
容器运行时与工具安装
推荐使用Docker作为容器运行时环境。通过以下自动化脚本可完成Docker安装与配置:
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
接着配置kubeadm、kubelet等核心组件。需要先配置Kubernetes的yum源,然后通过yum命令批量安装:
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
EOF
yum install -y kubeadm kubelet kubectl
systemctl enable kubelet
集群初始化自动化
使用kubeadm init命令时,通过配置文件能实现参数定制化。创建kubeadm-config.yaml文件定义网络插件、API服务器地址等参数:
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: "控制节点IP"
bindPort: 6443
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: "v1.28.0"
networking:
serviceSubnet: "10.96.0.0/12"
podSubnet: "10.244.0.0/16"
controlPlaneEndpoint: "控制节点IP:6443"
执行初始化命令后,按提示完成工作节点加入操作。整个过程就像搭建积木般层层递进,每个环节的紧密衔接确保了集群构建的稳定性。
节点接入与验证
获取加入令牌后,在工作节点执行kubeadm join命令。集群组建完成后,通过部署测试应用验证集群状态:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pods,svc
当看到Pod状态显示为Running,服务正常暴露端口时,意味着您的自动化部署已成功完成。这种自动化方案不仅减少了手动操作的出错概率,更使得集群扩展变得像流水线作业般顺畅。
