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-ltsopenEuler 20.0920.09hub.oepkgs.net/openeuler/openeuler:20.09openEuler-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:tagTarball方式导入如果您已下载镜像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工具生成所需证书。安装CFSSLwget --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] DescriptionEtcd Server Afternetwork.target Afternetwork-online.target Wantsnetwork-online.target [Service] Typenotify WorkingDirectory/var/lib/etcd/ EnvironmentFile-/etc/etcd/etcd.conf ExecStart/bin/bash -c ETCD_UNSUPPORTED_ARCHarm64 /usr/bin/etcd --namek8smaster0 --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 k8smaster0https://192.168.122.154:2380,k8smaster1https://192.168.122.155:2380,k8smaster2https://192.168.122.156:2380 --initial-cluster-state new --data-dir /var/lib/etcd Restartalways RestartSec10s LimitNOFILE65536 [Install] WantedBymulti-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),仅供参考