第22章:openEuler 与云计算集成

随着企业数字化转型的深入,云计算已成为 IT 基础设施的核心平台 。openEuler 作为面向数字基础设施的开源操作系统,深度适配主流云平台,支持在公有云、私有云和混合云环境中高效运行。本章将带你掌握如何在云上部署 openEuler,利用 cloud-init 实现自动化初始化,并了解其与 OpenStack、Kubernetes 等云原生生态的集成能力。

🌟 本章目标

  • 了解 openEuler 在主流云平台(华为云、阿里云等)的支持情况
  • 学会在云平台创建 openEuler 云服务器实例
  • 掌握 cloud-init 的基本原理与配置方法
  • 理解 openEuler 与 OpenStack、Kubernetes 的集成优势
  • 实战:在华为云创建 openEuler 实例并自动部署 Web 服务

22.1 openEuler 与云平台支持

openEuler 已被多家主流云厂商官方支持,提供预装镜像,开箱即用。

✅ 主流云平台支持

云厂商 支持情况 镜像获取方式
华为云 ✅ 官方镜像,深度优化 控制台直接选择
阿里云 ✅ Alibaba Cloud Linux 基于 openEuler 通过 Alibaba Cloud Linux 选择
腾讯云 ✅ 提供社区镜像 自定义镜像或市场镜像
AWS ✅ 社区支持 通过 AWS Marketplace
OpenStack ✅ 完全兼容 上传 qcow2 镜像

🔗 openEuler 云镜像下载:https://www.openeuler.org/zh/download/cloud/


22.2 在华为云创建 openEuler 云服务器

我们以 华为云(Huawei Cloud) 为例,演示完整创建流程。

步骤1:登录华为云控制台

https://www.huaweicloud.com

步骤2:进入"弹性云服务器 ECS"

  • 点击【服务】→【计算】→【弹性云服务器】

步骤3:创建实例

  1. 选择区域与可用区(如 华东-上海一)
  2. 选择镜像
    • 公共镜像 → 操作系统:openEuler
    • 选择版本(如 openEuler 22.03-LTS
  3. 选择规格
    • 推荐:euler.c1.large(2核4G)
  4. 配置网络
    • VPC、子网、安全组(开放 22、80 端口)
  5. 设置登录方式
    • 推荐:SSH 密钥对(更安全)
  6. 确认并创建

✅ 实例创建成功,获取公网 IP。


22.3 使用 cloud-init 自动初始化

cloud-init 是云实例的"第一段代码",在首次启动时自动执行初始化任务。

✅ cloud-init 能做什么?

  • 设置主机名
  • 配置网络
  • 添加用户与 SSH 公钥
  • 安装软件包
  • 执行自定义脚本

在华为云配置 cloud-init

创建实例时,在"高级配置"中选择"自定义脚本":

bash 复制代码
#cloud-config
hostname: web-server-01
users:
  - name: zhangsan
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    groups: users,wheel
    shell: /bin/bash
    ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2E... zhangsan@company.com

runcmd:
  - dnf update -y
  - dnf install -y nginx
  - systemctl start nginx
  - systemctl enable nginx
  - echo "Cloud-init setup complete" > /var/log/cloud-init.log

💡 说明:

  • #cloud-config 表示 YAML 配置格式
  • runcmd 中的命令以 root 身份执行

验证 cloud-init 执行结果

登录云服务器后检查:

bash 复制代码
# 查看主机名
hostname

# 查看用户
id zhangsan

# 查看 Nginx 是否运行
systemctl status nginx

# 查看 cloud-init 日志
cat /var/log/cloud-init-output.log

✅ 若无错误,说明自动化部署成功!


22.4 openEuler 与 OpenStack 集成

OpenStack 是主流的私有云平台,openEuler 可作为其理想的计算节点操作系统。

✅ 优势

  • 多架构支持:x86、ARM 云平台统一管理
  • 高性能内核:优化虚拟化性能
  • 安全可信:SELinux、国密算法支持
  • 容器友好:iSulad 轻量容器引擎

部署方式

  1. 将 openEuler 镜像转换为 qcow2 格式
  2. 上传到 OpenStack Glance 镜像服务
  3. 在 Nova 中创建实例

🔧 镜像制作工具:virt-builderimage-builder


22.5 openEuler 与 Kubernetes 集成

Kubernetes 是容器编排的事实标准,openEuler 是理想的 Kubernetes 节点操作系统。

✅ 为什么选择 openEuler?

  • 轻量高效:iSulad 容器引擎资源占用低
  • 稳定可靠:LTS 版本支持 5 年
  • 云原生优化:支持 CRI、CSI、CNI
  • 安全加固:SELinux、AppArmor 支持

部署 Kubernetes 节点

  1. 在 openEuler 上安装 kubeadmkubeletkubectl
  2. 初始化控制平面或加入集群
  3. 配置 CNI 网络插件(如 Calico、Flannel)

💡 openEuler 提供 kubelet 等组件的 RPM 包,简化安装。


22.6 云监控与运维实践

🔍 云平台监控

  • 华为云 CES(云监控服务):监控 CPU、内存、磁盘、网络
  • 设置告警规则(如 CPU > 80% 持续 5 分钟)

🛠️ 远程运维

  • 使用 SSH 密钥登录
  • 配置 Ansible 自动化管理多台云主机
  • 使用 tmuxscreen 保持长连接

🔐 安全建议

  • 禁用密码登录,使用密钥
  • 配置安全组,最小化开放端口
  • 定期更新系统:sudo dnf update -y

22.7 实战:在华为云自动部署 Web 服务

需求

创建一台 openEuler 云服务器,自动完成:

  1. 更新系统
  2. 安装 Nginx
  3. 启动服务
  4. 写入欢迎页面

cloud-init 脚本

bash 复制代码
#cloud-config
hostname: openeuler-web
manage_etc_hosts: true

runcmd:
  - dnf makecache
  - dnf update -y
  - dnf install -y nginx
  - systemctl start nginx
  - systemctl enable nginx
  - echo "<h1>Deployed on openEuler @ $(date)</h1>" > /usr/share/nginx/html/index.html
  - firewall-cmd --permanent --add-service=http
  - firewall-cmd --reload
  - echo "Web server setup complete" > /var/log/web-setup.log
final_message: "openEuler Web Server is ready! Visit http://{{public_ipv4}}"

{``{public_ipv4}} 会被云平台自动替换为公网 IP。

操作步骤

  1. 在华为云创建 ECS 实例
  2. 选择 openEuler 镜像
  3. 在"自定义脚本"中粘贴上述内容
  4. 创建并等待启动

验证

  • 查看控制台输出或 cloud-init-output.log
  • 浏览器访问 http://<公网IP>,应看到欢迎页面

✅ 云上自动化部署成功!


✅ 本章小结

技术 用途 工具/平台
公有云 快速部署应用 华为云、阿里云、AWS
cloud-init 实例初始化 YAML 脚本,自动配置
OpenStack 私有云平台 Glance + Nova + openEuler
Kubernetes 容器编排 kubelet + iSulad
云监控 性能与告警 CES、Prometheus

📝 课后练习

  1. 在华为云或阿里云创建一台 openEuler 云服务器。
  2. 使用 cloud-init 自动创建一个用户 dev 并配置 SSH 公钥。
  3. 在 cloud-init 中安装 htop 并设置开机自启。
  4. 配置安全组,仅允许你的 IP 访问 SSH(22 端口)。
  5. 使用 curl 或浏览器访问云服务器的 80 端口(可先安装 Nginx)。
  6. (挑战)编写一个 cloud-init 脚本,自动部署一个 Python Flask 应用并使用 gunicorn 启动。

🔜 下一章预告:第23章《备份与灾难恢复策略》

我们将学习:

  • 数据备份的重要性与 RTO/RPO 概念
  • 使用 tarrsync 进行本地与远程备份
  • 利用 cron 实现自动化备份
  • 使用 LVM 快照进行应用一致性备份
  • 制定灾难恢复计划并演练
  • 实战:搭建 rsync 备份服务器

准备好为系统"上保险"了吗?

相关推荐
AI周红伟12 小时前
周红伟:《OpenClaw安全防控:OpenClaw++Skills智能体安全部署、实操和企业应用实操》
人工智能·阿里云·云计算·腾讯云·openclaw
电商API&Tina15 小时前
【电商API接口】开发者一站式电商API接入说明
大数据·数据库·人工智能·云计算·json
mzhan01720 小时前
Linux:intel:Cache Allocation tech
linux·cpu
kyle~1 天前
云端数据存储---阿里云OSS
阿里云·云计算
云算计1 天前
给太空云计算提出10个问题
云计算
※※冰馨※※1 天前
【C++】通过 Git 访问阿里云 Codeup 仓库
git·阿里云·云计算
摇滚侠1 天前
JAVA 项目教程《苍穹外卖-番外篇-阿里云对象存储》,微信小程序项目,前后端分离,从开发到部署
阿里云·云计算
小仓桑2 天前
【Agent智能体项目实战一】阿里云通义千问兼容 OpenAI 接口实现 AI 对话
人工智能·阿里云·云计算·agent
AI周红伟2 天前
周红伟:豆包大模型的尽头是直播间,豆包开启AI购物内测 电商平台加码“一句话购物”
人工智能·阿里云·云计算·腾讯云·openclaw