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 LTS | 20.03-lts | hub.oepkgs.net/openeuler/openeuler:20.03-lts |
| openEuler 20.09 | 20.09 | hub.oepkgs.net/openeuler/openeuler:20.09 |
| openEuler-20.03-LTS-SP1 | 20.03-lts-sp1 | hub.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节点的集群,节点信息如下:
| HostName | IP地址 | 角色 |
|---|---|---|
| k8smaster0 | 192.168.122.154/24 | master节点 |
| k8smaster1 | 192.168.122.155/24 | master节点 |
| k8smaster2 | 192.168.122.156/24 | master节点 |
| k8snode1 | 192.168.122.157/24 | node节点 |
| k8snode2 | 192.168.122.158/24 | node节点 |
| k8snode3 | 192.168.122.159/24 | node节点 |
安装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),仅供参考