如何在Linux上配置容器管理平台如Kubernetes

来源:Python编程网作者:孙悟空头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux上配置容器管理平台如Kubernetes》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上配置容器管理平台如Kubernetes》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统上配置Kubernetes容器管理平台,需要先完成基础环境准备,再逐步安装依赖组件、初始化集群并验证功能,以下是详细的实操步骤。

如何在Linux上配置容器管理平台如Kubernetes

前置环境准备

首先确保Linux系统满足Kubernetes的运行要求,推荐使用Ubuntu 20.04及以上版本或者CentOS 7及以上版本,配置至少2核CPU、2G内存、20G磁盘空间。同时需要关闭系统的交换分区,因为Kubernetes默认要求禁用交换分区来保证调度稳定性。

执行以下命令临时关闭交换分区:

sudo swapoff -a

如果要永久关闭交换分区,需要编辑/etc/fstab文件,注释掉包含swap的行,避免系统重启后交换分区重新启用。

还需要配置主机名和hosts文件,确保集群内各节点可以通过主机名互相访问,例如设置主节点主机名为k8s-master,工作节点主机名为k8s-node1,在/etc/hosts中添加对应IP和主机名的映射。

安装容器运行时

Kubernetes支持多种容器运行时,这里选择containerd作为示例,它是目前Kubernetes官方推荐的容器运行时。首先安装containerd的依赖包:

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

接下来添加containerd的官方GPG密钥和软件源:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.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的默认配置文件,并修改配置让containerd支持Kubernetes的容器运行时接口:

sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
# 修改配置中的SystemdCgroup为true
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerd

安装Kubernetes组件

添加Kubernetes的官方软件源,然后安装kubelet、kubeadm、kubectl三个核心组件:

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

安装完成后,设置kubelet开机自启动:

sudo systemctl enable kubelet

初始化Kubernetes主节点

在主节点上执行kubeadm init命令初始化集群,需要指定容器运行时的端点地址和Pod网络的CIDR段:

sudo kubeadm init --cri-socket unix:///run/containerd/containerd.sock --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

接下来安装Pod网络插件,这里选择Flannel作为示例,执行以下命令部署:

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

加入工作节点到集群

在工作节点上执行主节点初始化完成后输出的kubeadm join命令,即可将工作节点加入集群,命令格式类似如下:

sudo kubeadm join 192.168.1.100:6443 --token xxxx --discovery-token-ca-cert-hash sha256:xxxx --cri-socket unix:///run/containerd/containerd.sock

如果忘记加入命令,可以在主节点上执行以下命令重新生成:

kubeadm token create --print-join-command

验证集群配置

在主节点上执行以下命令查看集群节点状态,所有节点状态显示为Ready即表示集群配置成功:

kubectl get nodes

还可以部署一个测试应用验证集群功能是否正常:

kubectl create deployment nginx-test --image=nginx
kubectl expose deployment nginx-test --port=80 --type=NodePort
kubectl get svc nginx-test

通过节点的IP地址和输出的NodePort端口访问Nginx服务,能够正常返回页面说明集群配置完全正常。

KubernetesLinux容器管理containerd修改时间:2026-07-02 20:33:16

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。