文档首页> 常见问题> Linux下如何配置Kubernetes?

Linux下如何配置Kubernetes?

发布时间:2025-05-10 06:36       

Linux环境下Kubernetes集群配置完全指南

作为容器编排领域的领导者,Kubernetes已成为云原生应用部署的事实标准。本文将详细介绍在Linux系统上配置Kubernetes集群的完整流程,涵盖从环境准备到集群部署的关键步骤。

一、环境准备

在开始配置Kubernetes前,需要确保满足以下基础条件:

  • 操作系统要求:Ubuntu 18.04+/CentOS 7+等主流Linux发行版
  • 硬件配置:每个节点至少2GB RAM和2个CPU核心
  • 网络环境:节点间网络互通,建议关闭防火墙或配置适当规则

二、安装必备组件

1. 安装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

2. 安装kubeadm、kubelet和kubectl

# 添加Kubernetes仓库
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 -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 安装组件
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

三、初始化Kubernetes集群

在主节点上执行以下命令初始化集群:

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

四、安装网络插件

推荐使用Flannel作为网络插件:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

五、加入工作节点

在其他Linux服务器上执行初始化时输出的join命令:

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

六、验证集群状态

使用以下命令检查集群节点状态:

kubectl get nodes

所有节点应显示为Ready状态:

NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   10m   v1.20.5
node1    Ready       5m    v1.20.5
node2    Ready       5m    v1.20.5

七、常见问题解决

1. 节点NotReady问题

可能原因:网络插件未正确安装

解决方案:重新安装网络插件并检查日志

2. 镜像拉取失败

可能原因:网络连接问题

解决方案:配置国内镜像源或手动拉取镜像

通过以上步骤,您已成功在Linux环境下部署了一个功能完整的Kubernetes集群。接下来可以开始部署应用程序,探索Kubernetes强大的容器编排能力。建议进一步学习持久化存储、服务暴露等高级功能,以充分发挥Kubernetes的全部潜力。