k8s openEuler 24.03 LTS SP3 初始环境配置流程
一、背景认知
1.1 核心概念通俗解读
初学者无需死记硬背专业定义,先理解核心作用,后续配置中逐步深化认知:
|
概念 |
通俗解释 |
核心作用 |
|
openEuler 24.03 LTS SP3 |
华为主导的开源Linux发行版,“24.03 LTS SP3”代表2024年3月发布的稳定版(LTS)第3次更新(SP3),适配x86、鲲鹏等架构 |
作为k8s的运行载体(操作系统),比其他Linux发行版更适配国内硬件,稳定性强,适合企业级和学习级部署 |
|
k8s(Kubernetes) |
容器编排工具,简单理解为“容器的管家”,可批量管理多个容器(比如部署的网站、服务) |
自动实现容器的启动、停止、扩容、故障恢复,避免手动管理多个容器的繁琐操作,是云计算、微服务的核心工具 |
|
容器(Container) |
独立的“软件沙箱”,把应用程序和它需要的依赖(比如环境变量、配置文件)打包在一起,可在任何Linux系统中运行 |
解决“开发环境能跑、生产环境跑不了”的问题,k8s就是管理这些“沙箱”的工具 |
|
容器运行时(Containerd) |
k8s管理容器的“底层工具”,负责容器的创建、运行、销毁,是k8s和容器之间的桥梁 |
k8s本身不直接操作容器,必须通过容器运行时(本文用Containerd,k8s官方推荐)实现容器管理 |
1.2 配置前提(必满足,否则后续会报错)
硬件要求(最低配置,初学者推荐用虚拟机测试,比如VMware、VirtualBox):
CPU:2核及以上(推荐4核,否则k8s组件启动会卡顿)
内存:4GB及以上(推荐8GB,内存不足会导致k8s节点启动失败)
硬盘:20GB及以上(推荐40GB,需存储系统、k8s组件和容器镜像)
网络:虚拟机需配置静态IP,能访问互联网(用于下载k8s和系统依赖)
系统要求:已安装openEuler 24.03 LTS SP3系统(最小化安装或桌面版均可,初学者推荐桌面版,方便操作)
权限要求:全程使用root用户操作(初学者避免权限不足导致的报错,后续可学习普通用户授权)
1.3 配置目标
完成配置后,你将拥有一个可正常使用的k8s单节点集群(初学者优先掌握单节点,后续可扩展为多节点),能够部署简单的容器应用(比如Nginx),掌握k8s基础管理命令。
二、核心配置(环境准备,重中之重)
这一步是后续k8s安装成功的关键,所有步骤必须严格执行,每一步执行完成后,建议验证是否成功,避免后续排查问题困难。
2.1 系统基础配置(关闭干扰服务,统一环境)
步骤1:关闭防火墙(openEuler默认开启,会阻止k8s组件通信)
|
bash |
注意:初学者无需担心关闭防火墙的安全问题,测试环境可直接关闭;生产环境需配置防火墙规则,后续拓展建议会说明。
步骤2:关闭SELinux(安全增强组件,会限制k8s权限)
|
bash |
说明:修改配置文件后,需重启系统才能完全生效,后续步骤完成后统一重启。
步骤3:关闭Swap(交换分区,k8s要求必须关闭,否则会影响性能和稳定性)
|
bash |
补充:free -h命令中,Swap一行显示“0B”或“off”即为成功。
步骤4:设置主机名(方便后续k8s节点识别,自定义即可,比如k8s-master)
|
bash |
注意:IP地址需替换为自己的虚拟机静态IP,ping通无丢包即为成功。
2.2 网络配置(确保k8s组件通信正常)
步骤1:配置内核参数(开启k8s所需的网络转发功能)
|
bash |
说明:如果执行sysctl --system后报错,大概率是缺少bridge模块,执行modprobe br_netfilter后再重新执行即可。
步骤2:配置静态IP(已配置的可跳过,未配置的必须执行,否则重启后IP变化会导致k8s失效)
|
bash |
2.3 依赖配置(安装k8s所需的基础工具和镜像源)
步骤1:更新系统软件包(确保系统组件最新,避免依赖冲突)
|
bash |
说明:dnf是openEuler的包管理工具,类似CentOS的yum,执行后会自动更新所有软件包,耗时根据网络速度而定。
步骤2:安装必备工具(后续下载、解压、管理会用到)
|
bash |
步骤3:配置k8s和Containerd的yum源(openEuler默认源没有k8s组件,需添加国内源,加速下载)
|
bash |
步骤4:重启系统(使前面的永久配置生效,比如SELinux、Swap、静态IP)
|
bash |
注意:重启后需重新登录root用户,继续后续操作。重启后可再次验证防火墙、SELinux、Swap状态,确保均已关闭。
三、基础实操(安装介绍,步骤无省略)
本部分按“安装容器运行时(Containerd)→ 安装k8s组件 → 初始化k8s集群 → 配置网络插件 → 验证集群”的顺序操作,每一步都有详细命令和验证方法,初学者可直接复制命令执行。
3.1 安装容器运行时(Containerd)
k8s官方推荐使用Containerd作为容器运行时,替代传统的Docker(Docker需额外配置,初学者优先用Containerd,更简单)。
步骤1:安装Containerd
|
bash |
步骤2:配置Containerd(关键步骤,否则k8s无法识别)
|
bash |
补充:如果找不到配置文件中的参数,可按“/关键词”搜索(比如输入/SystemdCgroup,快速定位)。
3.2 安装k8s核心组件
k8s核心组件包括kubeadm(集群初始化工具)、kubelet(k8s节点代理,负责运行容器)、kubectl(k8s命令行工具,用于管理集群),三者版本必须一致,本文选择稳定版1.28.0(初学者推荐,兼容性好)。
步骤1:安装指定版本的k8s组件
|
bash |
注意:如果安装时提示“无可用软件包”,检查前面的k8s yum源是否配置正确,重新执行yum源配置命令即可。
步骤2:拉取k8s所需镜像(关键步骤,避免初始化时下载镜像失败)
k8s初始化时需要拉取多个镜像,默认从国外仓库下载,速度极慢,甚至失败,因此提前用国内镜像拉取。
|
bash |
说明:crictl是Containerd的命令行工具,用于管理容器镜像和容器,安装Containerd后自动自带。如果拉取失败,检查网络是否正常,或更换其他国内镜像源。
3.3 初始化k8s集群(单节点,初学者首选)
步骤1:执行集群初始化命令
|
bash |
初始化成功后,会出现一段提示信息,务必复制保存(后续添加节点会用到),类似如下内容:
|
bash |
步骤2:配置kubectl命令(让kubectl能正常使用,否则无法管理集群)
|
bash |
如果执行kubectl cluster-info提示“connection refused”,说明k8s集群未启动,执行systemctl restart kubelet后再尝试。
3.4 安装网络插件(必装,否则k8s节点会处于NotReady状态)
k8s集群需要网络插件实现Pod之间的通信,初学者推荐使用Calico(稳定、简单,适配1.28.0版本),避免使用其他复杂插件。
|
bash |
注意:如果Calico Pod启动失败,大概率是网络问题,检查静态IP、内核参数是否配置正确,或重新下载calico.yaml文件。
3.5 验证k8s集群(确认环境配置成功)
|
bash |
当执行kubectl get nodes显示“k8s-master Ready”,且所有Pod都处于Running状态时,说明k8s初始环境配置成功!
四、高阶用法
基础配置完成后,掌握以下高阶用法,可快速上手k8s集群管理,避免只会配置、不会使用的问题。
4.1 核心命令(日常管理必备,记熟这几个即可)
|
命令 |
作用 |
示例 |
|
kubectl get nodes |
查看k8s所有节点状态 |
kubectl get nodes -o wide(查看详细信息) |
|
kubectl get pods |
查看当前命名空间的Pod状态 |
kubectl get pods -n kube-system(查看系统Pod) |
|
kubectl describe pod <Pod名称> |
查看Pod详细信息(排查Pod启动失败原因) |
kubectl describe pod calico-node-xxxx -n kube-system |
|
kubectl logs <Pod名称> |
查看Pod日志(排查故障) |
kubectl logs kube-apiserver-k8s-master -n kube-system |
|
kubectl apply -f <配置文件> |
部署应用(通过配置文件) |
kubectl apply -f nginx.yaml(部署Nginx) |
|
kubectl delete pod <Pod名称> |
删除Pod |
kubectl delete pod nginx-xxxx |
4.2 部署第一个应用(Nginx,验证集群可用性)
|
bash |
4.3 集群故障排查基础(初学者必学,避免遇到问题无从下手)
问题1:kubectl get nodes显示节点NotReady
排查步骤:kubectl get pods -n kube-system(查看Calico等网络插件是否Running)→ 若Calico未Running,执行kubectl describe pod <Calico Pod名称> 查看原因 → 多数是网络或内核参数问题,重新配置内核参数或重启Calico服务。
问题2:初始化集群失败,提示“image pull failed”
排查步骤:检查镜像拉取命令是否正确 → 检查网络是否能访问阿里云镜像源 → 重新执行kubeadm config images pull命令。
问题3:kubectl命令提示“connection refused”
排查步骤:执行systemctl status kubelet(查看kubelet服务是否Running)→ 若未Running,执行systemctl restart kubelet → 若仍失败,执行kubeadm reset后重新初始化。
五、拓展建议(初学者进阶方向,避坑指南)
5.1 环境优化建议(提升集群稳定性,适合长期使用)
优化Containerd镜像加速:添加国内镜像加速器(比如阿里云加速器),加快后续容器镜像下载速度,具体配置可参考阿里云容器镜像服务文档。
调整kubelet资源限制:根据虚拟机硬件配置,调整kubelet的内存和CPU限制,避免k8s组件占用过多资源,导致系统卡顿。
开启日志轮转:k8s组件和容器会产生大量日志,配置日志轮转,避免日志占满硬盘,可修改/etc/logrotate.d/目录下的配置文件。
5.2 初学者学习路径建议(循序渐进,避免盲目学习)
基础阶段:熟练掌握本文的初始环境配置流程,能独立部署单节点集群,熟练使用4.1中的核心命令。
进阶阶段:学习多节点集群配置(添加从节点),了解k8s核心组件(kube-apiserver、kube-controller-manager等)的作用,学习Pod、Deployment、Service的核心概念。
提升阶段:学习k8s持久化存储(PV、PVC)、配置管理(ConfigMap、Secret)、故障排查进阶、安全配置等内容。
5.3 避坑指南(初学者常见错误,提前规避)
不要跳过核心配置步骤:尤其是关闭SELinux、Swap、防火墙,以及配置内核参数,这些步骤缺一不可,否则会导致后续安装失败。
不要随意修改k8s版本:本文选择的1.28.0版本兼容性好,初学者不要盲目追求最新版本,避免出现依赖冲突。
不要忘记保存集群初始化提示的join命令:后续添加从节点时需要用到,若忘记,可执行kubeadm token create --print-join-command重新生成。
不要用普通用户操作:初学者全程用root用户,避免权限不足导致的各种报错,后续可学习RBAC权限管理,给普通用户授权。
5.4 资源推荐(初学者免费学习资源)
官方文档:k8s官方文档(https://kubernetes.io/zh-cn/docs/home/)、openEuler官方文档(https://docs.openeuler.org/),权威且免费。
视频教程:B站搜索“k8s零基础教程”“openEuler部署k8s”,有大量免费实操教程,适合初学者跟着练习。
社区支持:openEuler社区、k8s中文社区,遇到问题可在社区提问,有很多开发者提供帮助。
结语:本文涵盖了k8s openEuler 24.03 LTS SP3初始环境配置的全流程,步骤详细、可直接执行,适合零基础初学者。建议初学者多练习几遍配置流程,熟悉每一步的作用,为后续k8s学习打下坚实基础。
更多推荐

所有评论(0)