欢迎光临
我们一直在努力

如何在Linux云服务器上安装Kubernetes?

彻底掌握Linux云服务器Kubernetes安装指南

在云计算时代,Kubernetes已成为容器编排领域的事实标准。本文将手把手教你如何在Linux云服务器上完成Kubernetes集群的完整安装部署,包含主节点和工作节点的配置,以及常见问题的解决方案。

一、准备工作

1.1 服务器要求

  • 至少2台Linux云服务器(推荐Ubuntu 20.04/CentOS 8)
  • 每台服务器2GB以上内存
  • 2个以上CPU核心
  • 30GB以上磁盘空间
  • 服务器间网络互通

1.2 环境配置

# 关闭swap
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

# 设置主机名
sudo hostnamectl set-hostname k8s-master  # 主节点
sudo hostnamectl set-hostname k8s-node1   # 工作节点

# 添加hosts解析
sudo vi /etc/hosts
# 添加服务器IP和主机名映射

二、安装Docker容器运行时

# Ubuntu系统
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker

# CentOS系统
sudo yum install -y docker
sudo systemctl enable docker
sudo systemctl start docker

# 验证安装
docker --version

三、安装Kubernetes组件

3.1 添加Kubernetes源

# Ubuntu
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <

3.2 安装kubeadm、kubelet和kubectl

# Ubuntu
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

# CentOS
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet

四、初始化Kubernetes集群

# 在主节点执行
sudo kubeadm init --pod-network-cidr=10.244.0.0/16

# 成功后会显示加入集群的命令,类似:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

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

五、安装网络插件

# 安装Flannel网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 验证节点状态
kubectl get nodes

六、加入工作节点

在每个工作节点上运行主节点初始化时生成的kubeadm join命令:

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

七、验证集群状态

# 在主节点执行
kubectl get nodes  # 所有节点状态应为Ready
kubectl get pods --all-namespaces  # 检查所有pod状态

# 部署测试应用
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get services  # 获取访问地址

八、常见问题解决

8.1 kubelet无法启动

检查docker是否正常运行,尝试重启docker和kubelet服务

8.2 节点NotReady

通常是因为网络插件未正确安装,重新安装网络插件

8.3 拉取镜像失败

# 可以预先拉取镜像
kubeadm config images pull

九、最佳实践建议

  • 使用固定IP地址的云服务器
  • 考虑使用containerd替代Docker作为容器运行时
  • 为生产环境配置etcd数据备份
  • 设置合理的资源配额和限制
  • 定期更新Kubernetes版本

通过本文详细的步骤指导,您应该已经成功在Linux云服务器上部署了一个可用的Kubernetes集群。Kubernetes的学习曲线虽然较陡峭,但掌握它将为您的云原生应用部署带来极大便利。建议后续进一步学习Helm、Ingress控制器等高级功能,构建更完善的应用部署方案。

赞(0)
未经允许不得转载:莱卡云 » 如何在Linux云服务器上安装Kubernetes?