openEuler CloudNative SIG的快速开始指南:从零搭建云原生环境
2026/7/15 18:25:56 网站建设 项目流程

openEuler CloudNative SIG的快速开始指南:从零搭建云原生环境

【免费下载链接】cloudnativeInformation summary and discussion platform for CloudNative SIG项目地址: https://gitcode.com/openeuler/cloudnative

前往项目官网免费下载:https://ar.openeuler.org/ar/

openEuler CloudNative SIG是一个专注于云原生技术的信息汇总与讨论平台,通过本文的完整指南,您将快速掌握在openEuler系统上从零搭建云原生环境的核心步骤,轻松开启云原生之旅。

📋 准备工作:环境与工具安装

在开始搭建云原生环境前,需要确保您的openEuler系统已安装必要的依赖工具。这些工具将帮助您创建和管理虚拟机,为后续的Kubernetes集群部署奠定基础。

安装基础依赖

使用以下命令安装虚拟化和容器相关工具:

dnf install -y virt-install virt-manager libvirt-daemon-qemu edk2-aarch64.noarch virt-viewer qemu-img docker conntrack-tools socat systemctl start libvirtd systemctl enable libvirtd

准备虚拟机存储

创建虚拟机存储池并分配磁盘空间:

virsh pool-define-as vmPool --type dir --target /mnt/vm/images/ virsh pool-build vmPool virsh pool-start vmPool virsh pool-autostart vmPool # 创建3个master节点和3个node节点的磁盘 virsh vol-create-as --pool vmPool --name master0.img --capacity 200G --allocation 1G --format qcow2 virsh vol-create-as --pool vmPool --name master1.img --capacity 200G --allocation 1G --format qcow2 virsh vol-create-as --pool vmPool --name master2.img --capacity 200G --allocation 1G --format qcow2 virsh vol-create-as --pool vmPool --name node1.img --capacity 300G --allocation 1G --format qcow2 virsh vol-create-as --pool vmPool --name node2.img --capacity 300G --allocation 1G --format qcow2 virsh vol-create-as --pool vmPool --name node3.img --capacity 300G --allocation 1G --format qcow2

🐳 第一步:获取openEuler容器镜像

openEuler提供了多种版本的基础容器镜像,您可以通过镜像仓库直接拉取,也可以下载tarball文件导入。

从镜像仓库拉取

openEuler容器镜像仓库(hub.oepkgs.net)提供了不同版本的镜像,通过tag区分:

版本tag镜像名称
openEuler 20.03 LTS20.03-ltshub.oepkgs.net/openeuler/openeuler:20.03-lts
openEuler 20.0920.09hub.oepkgs.net/openeuler/openeuler:20.09
openEuler-20.03-LTS-SP120.03-lts-sp1hub.oepkgs.net/openeuler/openeuler:20.03-lts-sp1

使用以下命令拉取所需版本的镜像:

# 使用docker拉取 docker pull hub.oepkgs.net/openeuler/openeuler:<tag> # 或使用isula拉取 isula pull hub.oepkgs.net/openeuler/openeuler:<tag>

Tarball方式导入

如果您已下载镜像tarball文件,可通过以下命令导入:

isula load -i openEuler-docker.aarch64.tar.xz # 或 docker load -i openEuler-docker.aarch64.tar.xz

详细的镜像使用说明可参考项目文档:openEuler容器镜像使用方法

☸️ 第二步:部署Kubernetes集群

Kubernetes是云原生环境的核心组件,下面将介绍如何在openEuler系统上通过二进制方式部署K8s集群。

环境说明

本文将部署一个包含3个master节点和3个node节点的集群,节点信息如下:

HostNameIP地址角色
k8smaster0192.168.122.154/24master节点
k8smaster1192.168.122.155/24master节点
k8smaster2192.168.122.156/24master节点
k8snode1192.168.122.157/24node节点
k8snode2192.168.122.158/24node节点
k8snode3192.168.122.159/24node节点

安装Kubernetes软件包

# 安装K8s相关rpm包 rpm -ivh kubernetes*.rpm

准备证书

Kubernetes集群各组件之间需要通过证书进行安全通信,我们使用CFSSL工具生成所需证书。

安装CFSSL
wget --no-check-certificate https://github.com/cloudflare/cfssl/archive/v1.5.0.tar.gz tar -zxf v1.5.0.tar.gz cd cfssl-1.5.0/ make -j6 cp bin/* /usr/local/bin/
生成根证书

创建CA配置文件ca-config.json

{ "signing": { "default": { "expiry": "8760h" }, "profiles": { "kubernetes": { "usages": ["signing", "key encipherment", "server auth", "client auth"], "expiry": "8760h" } } } }

创建CA CSR文件ca-csr.json

{ "CN": "Kubernetes", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "HangZhou", "O": "openEuler", "OU": "WWW", "ST": "BinJiang" } ] }

生成CA证书和密钥:

cfssl gencert -initca ca-csr.json | cfssljson -bare ca

部署etcd集群

etcd是Kubernetes的数据库,用于存储集群状态信息。

准备etcd环境
# 创建etcd目录 mkdir -p /etc/etcd /var/lib/etcd # 拷贝证书 cp ca.pem /etc/etcd/ cp kubernetes-key.pem /etc/etcd/ cp kubernetes.pem /etc/etcd/ # 关闭selinux setenforce 0
编写etcd.service文件

以master0节点为例:

[Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target [Service] Type=notify WorkingDirectory=/var/lib/etcd/ EnvironmentFile=-/etc/etcd/etcd.conf ExecStart=/bin/bash -c "ETCD_UNSUPPORTED_ARCH=arm64 /usr/bin/etcd --name=k8smaster0 --cert-file=/etc/etcd/kubernetes.pem --key-file=/etc/etcd/kubernetes-key.pem --peer-cert-file=/etc/etcd/kubernetes.pem --peer-key-file=/etc/etcd/kubernetes-key.pem --trusted-ca-file=/etc/etcd/ca.pem --peer-trusted-ca-file=/etc/etcd/ca.pem --peer-client-cert-auth --client-cert-auth --initial-advertise-peer-urls https://192.168.122.154:2380 --listen-peer-urls https://192.168.122.154:2380 --listen-client-urls https://192.168.122.154:2379,https://127.0.0.1:2379 --advertise-client-urls https://192.168.122.154:2379 --initial-cluster-token etcd-cluster-0 --initial-cluster k8smaster0=https://192.168.122.154:2380,k8smaster1=https://192.168.122.155:2380,k8smaster2=https://192.168.122.156:2380 --initial-cluster-state new --data-dir /var/lib/etcd" Restart=always RestartSec=10s LimitNOFILE=65536 [Install] WantedBy=multi-user.target

启动etcd服务:

systemctl enable etcd systemctl start etcd

完整的K8s部署步骤可参考项目文档:openEuler二进制部署K8S

✅ 验证集群状态

部署完成后,使用以下命令验证集群状态:

# 查看节点状态 kubectl get nodes # 查看控制面组件状态 kubectl get pods -n kube-system

如果所有节点都显示为Ready状态,且控制面组件正常运行,则说明云原生环境搭建成功!

📚 进一步学习资源

  • 官方文档:docs/
  • K8s集群本地测试调试:docs/1-开发指南/k8s集群本地测试调试方法.md
  • 镜像构建指南:docs/3-特性指南/imagebuild/

通过本指南,您已成功搭建了基于openEuler的云原生环境。接下来,您可以开始部署容器应用,探索云原生技术的更多可能性!

【免费下载链接】cloudnativeInformation summary and discussion platform for CloudNative SIG项目地址: https://gitcode.com/openeuler/cloudnative

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询