手把手教你用Linux服务器搭建Kubernete集群
在云原生时代,Kubernetes已成为容器编排的事实标准。本文将详细介绍如何在Linux服务器上从零开始搭建一个高可用的Kubernetes集群,包含详细的操作步骤和常见问题解决方案。
一、环境准备
在开始搭建Kubernetes集群前,需要准备以下环境:
- 至少3台Linux服务器(推荐Ubuntu 20.04或CentOS 7+)
- 每台服务器2GB以上内存
- 2个以上CPU核心
- 稳定的网络连接
- 所有节点时间同步(建议安装chrony)
二、基础环境配置
1. 关闭防火墙和SELinux
# 临时关闭
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2. 关闭swap分区
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
3. 配置内核参数
cat > /etc/sysctl.d/k8s.conf <
三、安装Docker和Kubernetes组件
1. 安装Docker
# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
yum install -y docker-ce docker-ce-cli containerd.io
# 启动Docker
systemctl enable docker && systemctl start docker
2. 安装kubeadm、kubelet和kubectl
cat > /etc/yum.repos.d/kubernetes.repo <
四、初始化Master节点
kubeadm init \
--apiserver-advertise-address=192.168.1.100 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.5 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
初始化完成后,按照提示配置kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
五、安装网络插件
以Calico为例:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
六、加入Worker节点
在Master节点上获取加入命令:
kubeadm token create --print-join-command
在Worker节点上执行输出的命令即可加入集群。
七、验证集群状态
kubectl get nodes
kubectl get pods -n kube-system
常见问题解决
1. kubelet无法启动
检查cgroup驱动是否一致:
# 修改Docker配置
cat > /etc/docker/daemon.json <
2. 镜像拉取失败
可以手动拉取镜像:
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.5
通过以上步骤,您已经成功搭建了一个Kubernetes集群。接下来可以部署应用或进一步配置集群。Kubernetes的学习曲线较陡,建议多实践并参考官方文档。
