从零开始:在Linux系统上搭建Kubernetes集群完整指南
随着云原生技术的普及,Kubernetes已成为容器编排的事实标准。本文将手把手教你在Linux环境下配置生产级Kubernetes集群,涵盖从系统准备到集群部署的全过程。
一、准备工作
在开始安装前,请确保满足以下条件:
- 硬件要求:至少2台Linux服务器(推荐Ubuntu 20.04+或CentOS 7+)
- 系统配置:每台机器2GB+内存,2vCPU+,30GB+磁盘空间
- 网络环境:节点间网络互通,禁用swap分区
二、详细安装步骤
1. 系统基础配置
在所有节点执行以下命令:
# 关闭防火墙(生产环境需配置规则) sudo systemctl disable firewalld sudo systemctl stop firewalld # 禁用SELinux sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 关闭swap sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
2. 安装容器运行时
我们推荐使用containerd:
# 安装依赖 sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl gnupg # 添加Docker源 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装containerd sudo apt-get update && sudo apt-get install -y containerd.io # 配置containerd sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo systemctl restart containerd
3. 安装Kubernetes组件
# 添加Kubernetes源 sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list # 安装kubelet、kubeadm和kubectl sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
4. 初始化Master节点
# 在主节点执行 sudo kubeadm init --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
5. 安装网络插件
我们使用Flannel网络插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
6. 加入Worker节点
在初始化Master时输出的join命令,在所有Worker节点执行:
sudo kubeadm join: --token --discovery-token-ca-cert-hash sha256:
三、集群验证
在Master节点执行以下命令验证集群状态:
# 查看节点状态 kubectl get nodes # 查看所有pod状态 kubectl get pods --all-namespaces # 测试集群功能 kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get svc
四、常见问题解决
- 节点NotReady:检查网络插件是否安装正确,节点间网络是否通畅
- 镜像拉取失败:配置国内镜像源或手动拉取镜像
- 证书过期:使用kubeadm alpha certs renew all更新证书
五、后续优化建议
生产环境还需考虑:
- 配置高可用架构(多个Master节点)
- 设置资源配额和限制
- 部署监控系统(Prometheus+Grafana)
- 配置日志收集方案
通过本指南,您已成功搭建了一个功能完备的Kubernetes集群,可以开始部署您的容器化应用了!
