Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。

news2025/1/24 11:30:00

Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。Cloudpods不仅可以管理本地的虚拟机和物理机资源,还可以管理多个云平台和云账号。Cloudpods隐藏了这些异构基础设施资源的数据模型和API的差异,对外暴露了一套统一的API,允许用户就像用一个云一样地访问多云。从而大大降低了访问多云的复杂度,提升了管理多云的效率。

谁需要Cloudpods?

  • 将几台物理服务器虚拟化成一个私有云平台
  • 需要一个紧凑而且功能相对完整的物理机全生命周期管理工具
  • 将VMware vSphere虚拟化集群转换为一个可以自服务的私有云平台
  • 在混合云的场景,能够在一个界面访问私有云和公有云
  • 通过一个集中的入口访问分布在多个公有云平台上的多个账号
  • 当前只使用一个云公有云账号但希望将来使用多云的用户

功能

请访问产品介绍页面了解详细信息。

支持的云平台

  • 公有云:
    • AWS
    • Azure
    • Google Cloud Platform
    • 阿里云
    • 华为云
    • 腾讯云
    • UCloud
    • 天翼云
    • 移动云
    • 京东云
  • 私有云:
    • OpenStack
    • ZStack
    • Alibaba Cloud Aspara (阿里飞天)
    • Huawei HCSO (华为HCSO)
    • Nutanix
  • 本地基础设施资源:
    • 基于 KVM 实现的轻量级私有云
    • VMWare vSphere vCenter/ESXi
    • Baremetals (IPMI, Redfish API)
    • Object storages (Minio, Ceph, XSky)
    • NAS (Ceph)

支持的云资源

  • Servers: instances, disks, network interfaces, networks, vpcs, storages, hosts, wires, snapshots, snapshot policies, security groups, elastic IPs, SSH keypairs, images
  • Load Balancers: instances, listeners, backend groups, backends, TLS certificates, ACLs
  • Object Storage: buckets, objects
  • NAS: file_systems, access_groups, mount_targets
  • RDS: instances, accounts, backups, databases, parameters, privileges
  • Elastic Cache: instances, accounts, backups, parameters
  • DNS: DNS zones, DNS records
  • VPC: VPCs, VPC peering, inter-VPC network, NAT gateway, DNAT/SNAT rules, route tables, route entries

安装部署

请参考文档安装部署选择合适的场景部署。

文档

  • Cloudpods文档

  • Swagger API文档

谁在使用Cloudpods?

请在这里查看Cloudpods用户列表。如果你正在使用Cloudpods,欢迎回复留下你的信息。谢谢对Cloudpods的支持!

cloudpods/README-CN.md at master · yunionio/cloudpods

yunionio/ocboot: Installation and setup tool of Cloudpods

ocboot 能够快速的在 CentOS 7 、Kylin V10、Debian 10等机器上搭建部署 Cloudpods 服务。

ocboot 依赖 ansible-playbook 部署 cloudpods 服务,可以在单节点使用 local 的方式部署,也可以在多个节点使用 ssh 的方式同时部署。

依赖说明

  • 操作系统: Centos 7.x 、Kylin V10、Debian 10
  • 最低配置要求: 4 核 8G
  • 软件: ansible 4.0 ~ 9.0 (ansible-core: 2.11 ~ 2.16)
  • 能够 ssh 免密登录待部署机器

使用方法

安装 ansible

ocboot 使用 buildash 运行容器来部署服务,容器镜像里面包含了 python3 和 ansible 等运行环境。

所以请先在自己的系统上安装 buildah ,请先参考 buildah installation instructions 安装 buildah。

clone 代码

$ git clone https://github.com/yunionio/ocboot.git
$ cd ./ocboot
git clone https://github.com/yunionio/ocboot.git
cd ./ocboot
./ocboot.sh run.py virt 10.8.8.253

部署服务

ocboot 的运行方式很简单,只需要按自己机器的规划写好 yaml 配置文件,然后执行 ./ocboot.sh run.py full 脚本,便会使用 buildah 启动容器,然后在容器里面运行 ansible-playbook 在对应的机器上部署服务。

快速开始

  • All in One 安装:在 CentOS 7 或 Debian 10 等发行版里搭建全功能 Cloudpods 服务,可以快速体验内置私有云多云管理的功能。
  • 多节点高可用安装:在生产环境中使用高可用的方式部署 Cloudpods 服务,包括内置私有云多云管理的功能。

添加节点

添加节点使用 add-node 子命令把节点加入到已有集群。

# 比如把节点 192.168.121.61 加入到已有集群 192.168.121.21
$ ./ocboot.sh add-node 192.168.121.21 192.168.121.61

# 可以一次添加多个节点,格式如下
$ ./ocboot.sh add-node $PRIMARY_IP $node1_ip $node2_ip ... $nodeN_ip

# 把 $node_ip ssh 端口 2222 的节点加入到 $PRIMARY_IP ssh 端口 4567 的集群
$ ./ocboot.sh add-node --port 4567 --node-port 2222 $PRIMARY_IP $node_ip

# 查看 add-node 命令帮助信息
$ ./ocboot.sh add-node --help

具体操作可参考文档:添加节点。

添加 lbagent 节点

添加节点使用 add-lbagent 子命令把运行 lb agent 服务的节点加入到已有集群。

# 比如把节点 192.168.121.62 加入到已有集群 192.168.121.21
$ ./ocboot.sh add-lbagent 192.168.121.21 192.168.121.62

# 可以一次添加多个节点,格式如下
$ ./ocboot.sh add-lbagent $PRIMARY_IP $node1_ip $node2_ip ... $nodeN_ip

# 把 $node_ip ssh 端口 2222 的节点加入到 $PRIMARY_IP ssh 端口 4567 的集群
$ ./ocboot.sh add-lbagent --port 4567 --node-port 2222 $PRIMARY_IP $node_ip

具体操作可参考文档:部署Lbagent。

升级节点

升级节点参考文档:升级服务。

备份节点

原理

备份流程会备份当前系统的配置文件(config.yml) 以及使用 mysqldump 来备份数据库。

命令行参数

usage: ocboot.py backup [-h] [--backup-path BACKUP_PATH] [--light] config

positional arguments:
  config                config yaml file

optional arguments:
  -h, --help            show this help message and exit
  --backup-path BACKUP_PATH
                        backup path, default: /opt/backup
  --light               ignore yunionmeter and yunionlogger database; ignore
                        tables start with 'opslog' and 'task'.
注意事项

下面详细介绍各个参数的作用和注意事项。

  • config是必选参数,即,需要备份的配置文件名称,例如 config-allinone.yml, config-nodes.yml, config-k8s-ha.yml, 以及使用快速安装时会生成的 config-allinone-current.yml,因此备份命令不对配置文件名称作假设,需由使用者自行输入配置文件名称
  • --backup-path 这个参数记录备份的目标目录。备份的内容包括配置文件(几 k 级别),以及 mysqldump 命令备份的数据库文件临时文件:onecloud.sql,然后会将该文件压缩为 onecloud.sql.tgz,并删除临时文件。用户需确保 /opt/backup 目录存在且可写且磁盘空间足够。
  • --light 这个选项用来做精简备份,原理是在备份过程中,忽略掉一些尺寸较大的特定文件,主要是账单、操作日志等相关的文件。默认保留。
  • 备份后的配置文件名称为 config.yml
  • 备份的流程全部采用命令行参数接受输入,备份过程中无交互。因此支持 crontab方式自动备份。但备份程序本身不支持版本 rotate,用户可以使用 logrotate 之类的工具来做备份管理。
FAQ

  • Q: 备份时提示缺 MySQLdb 包怎么办?

  • A:在centos上,可以执行如下命令来安装(其他os发行版请酌情修改,或联系客服):

    sudo yum install -y mariadb-devel python3-devel
    sudo yum groupinstall -y "Development Tools"
    sudo pip3 install mysqlclient
  • Q: 怎样查看、手工解压备份文件?

  • A:备份文件默认用户名为: /opt/backup/onecloud.sql.gz, 预览、手工解压的方式如下:

    # 预览该文件:
    gunzip --stdout /opt/backup/onecloud.sql.gz | less
    
    # 解压,同时保留源文件:
    gunzip --stdout /opt/backup/onecloud.sql.gz > /opt/backup/onecloud.sql
    
    # 有些高版本的gunzip 提供 -k/--keep 选项,来保存源文件。可以直接执行:
    gunzip -k /opt/backup/onecloud.sql.gz

恢复节点

原理

恢复是备份的逆操作,流程包括:

  • 解压备份好的数据库文件;
  • 依照用户输入,或者在本机安装 mariadb-server,并导入数据库;或者将备份的数据库 source 到指定的数据库中。
  • 根据之前备份好的 config.yml,结合用户输入(当前机器 ipworker node ipsmaster node ips),来重新生成 config.yml,然后提示用户重新安装云管系统。
命令行参数

usage: ocboot.py restore [-h] [--backup-path BACKUP_PATH]
                         [--install-db-to-localhost]
                         [--master-node-ips MASTER_NODE_IPS]
                         [--master-node-as-host]
                         [--worker-node-ips WORKER_NODE_IPS]
                         [--worker-node-as-host] [--mysql-host MYSQL_HOST]
                         [--mysql-user MYSQL_USER]
                         [--mysql-password MYSQL_PASSWORD]
                         [--mysql-port MYSQL_PORT]
                         primary_ip

positional arguments:
  primary_ip            primary node ip

optional arguments:
  -h, --help            show this help message and exit
  --backup-path BACKUP_PATH
                        backup path, default=/opt/backup
  --install-db-to-localhost
                        use this option when install local db
  --master-node-ips MASTER_NODE_IPS
                        master nodes ips, seperated by comma ','
  --master-node-as-host
                        use this option when use master nodes as host
  --worker-node-ips WORKER_NODE_IPS
                        worker nodes ips, seperated by comma ','
  --worker-node-as-host
                        use this option when use worker nodes as host
  --mysql-host MYSQL_HOST
                        mysql host; not needed if set --install-db-to-
                        localhost
  --mysql-user MYSQL_USER
                        mysql user, default: root; not needed if set
                        --install-db-to-localhost
  --mysql-password MYSQL_PASSWORD
                        mysql password; not needed if set --install-db-to-
                        localhost
  --mysql-port MYSQL_PORT
                        mysql port, default: 3306; not needed if set
                        --install-db-to-localhost
注意事项

  • primary_ip 为必填项,作为位置参数传入。

  • --backup-path,默认值为/opt/backup

  • --install-db-to-localhost,是否在本机(primary节点) 安装数据库。默认为否。如果选择了--install-db-to-localhost,则会在本机安装数据(mariadb-server 的稳定版),并自动赋予下列参数以默认值:

    • --mysql-host=127.0.0.1
      --mysql-user=root
      --mysql-password=<继承备份文件里 mysql 的密码>
      --mysql-port=3306
  • --mysql-host 以及其他同类选项:不安装数据库,直接复用给定数据库。注意:--install-db-to-localhost参数与--mysql-*系列参数互斥,只能选择其中一种,要么本机安装数据库,要么给定具体参数。

  • --master-node-ips同时安装 master 节点。该参数是以半角逗号分隔的 ip 列表。适用于多节点模式。

  • --master-node-as-host安装master节点时,将其作为host 节点。

  • --worker-node-ips--worker-node-as-host,作用同上,如其名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】--- MySQL刷题集合

1.组合两个表&#xff08;外连接&#xff09; select p.firstName,p.lastName,a.city,a.state from Person p left join Address a on p.personId a.personId; 以左边表为基准&#xff0c;去连接右边的表。取两表的交集和左表的全集 2.第二高的薪水 &#xff08;子查询、if…

JavaScript学习笔记(3)

一.BOM对象 BOM的全称是Browser Object Model,翻译过来是浏览器对象模型。也就 是JavaScript将浏览器的各个组成部分封装成了对象。我们要操作浏览器的部分功能&#xff0c;可以通过操作 BOM对象的相关属性或者函数来完成。例如&#xff1a;我们想要将浏览器的地址改为 http:/…

DRG/DIP 2.0时代下基于PostgreSQL的成本管理实践与探索(下)

五、数据处理与 ETL 流程编程实现 5.1 数据抽取与转换(ETL) 在 DRG/DIP 2.0 时代的医院成本管理中,数据抽取与转换(ETL)是将医院各个业务系统中的原始数据转化为可供成本管理分析使用的关键环节。这一过程涉及从医院 HIS 系统中抽取患者诊疗数据,并对其进行格式转换、字…

【玩转全栈】----YOLO8训练自己的模型并应用

继上篇&#xff1a; 【玩转全栈】---基于YOLO8的图片、视频目标检测-CSDN博客 相信大家已经可以训练一些图片和视频了&#xff0c;接下来我将为大家介绍如何训练自己的特定模型&#xff0c;并用其进行检测 目录 准备数据 图片数据 标识数据 配置文件 运行 测试训练结果 存在的问…

简洁实用的wordpress外贸模板

简洁、实用、大气的wordpress外贸模板&#xff0c;适合跨境电商搭建外贸B2B产品展示型网站。 简洁实用的wordpress外贸模板 - 简站WordPress主题简洁、实用、大气的wordpress外贸模板&#xff0c;适合跨境电商搭建外贸B2B产品展示型网站。https://www.jianzhanpress.com/?p828…

Caesar

Caesar 打开.txt: oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} 根据题目判断是凯撒密码&#xff0c;flag前头是cyberpeace{}&#xff0c;可以得到偏移量是12. 所以&#xff1a; cyberpeace{you_have_learned_caesar_encryption} 下面是我找的关于凯撒密码的解密脚本 c…

OpenEuler学习笔记(四):OpenEuler与CentOS的区别在那里?

OpenEuler与CentOS的对比 一、基本信息 起源与背景&#xff1a; OpenEuler&#xff1a;由华为发起&#xff0c;后捐赠给开放原子开源基金会&#xff0c;旨在构建一个开放、多元化的云计算和边缘计算平台&#xff0c;以满足华为及其他企业的硬件和软件需求。CentOS&#xff1a;…

纯css实现div宽度可调整

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>纯css实现div尺寸可调整</title><style…

Cesium特效——城市白模的科技动效的各种效果

最终效果图如下&#xff1a; 实现方法&#xff1a; 步骤一&#xff1a;使用cesiumlib生产白模&#xff0c;格式为3dtiles 注意事项&#xff1a;采用其他方式可能导致白模贴地&#xff0c;从而导致不能实现该效果&#xff0c;例如把步骤二的服务地址改为Cesium Sandcastle 里的…

JavaWeb 学习笔记 XML 和 Json 篇 | 020

今日推荐语 愿你遇见好天气,愿你的征途铺满了星星——圣埃克苏佩里 日期 学习内容 打卡编号2025年01月23日JavaWeb笔记 XML 和 Json 篇020 前言 哈喽&#xff0c;我是菜鸟阿康。 以下是我的学习笔记&#xff0c;既做打卡也做分享&#xff0c;希望对你也有所帮助…

【力扣:新动计划,编程入门 —— 题解 ②】

—— 25.1.23 1512. 好数对的数目 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] nums[j] 且 i < j &#xff0c;就可以认为这是一组 好数对 。 返回好数对的数目。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1,1,3] 输出&#xff1a;4 解释&#xff…

如何在data.table中处理缺失值

&#x1f4ca;&#x1f4bb;【R语言进阶】轻松搞定缺失值&#xff0c;让数据清洗更高效&#xff01; &#x1f44b; 大家好呀&#xff01;今天我要和大家分享一个超实用的R语言技巧——如何在data.table中处理缺失值&#xff0c;并且提供了一个自定义函数calculate_missing_va…

《RWA全球产业白皮书》发布:向凌云教授解析全球经济转型与RWA的未来

2025年1月16日&#xff0c;旅美经济学家、全球新兴产业金融专家向凌云教授在美国发布了引人注目的《RWA全球产业白皮书》。该白皮书通过深入分析全球产业结构变化&#xff0c;尤其强调了“真实世界资产”&#xff08;Real-World Assets&#xff0c;简称RWA&#xff09;在当前及…

TOGAF之架构标准规范-信息系统架构 | 数据架构

TOGAF是工业级的企业架构标准规范&#xff0c;信息系统架构阶段是由数据架构阶段以及应用架构阶段构成&#xff0c;本文主要描述信息系统架构阶段中的数据架构阶段。 如上所示&#xff0c;信息系统架构&#xff08;Information Systems Architectures&#xff09;在TOGAF标准规…

安宝特方案 | AR在供应链管理中的应用:提升效率与透明度

随着全球化的不断深入和市场需求的快速变化&#xff0c;企业对供应链管理的要求也日益提高。如何在复杂的供应链环境中提升效率、降低成本&#xff0c;并确保信息的透明度&#xff0c;成为了各大行业亟待解决的问题。而增强现实&#xff08;AR&#xff09;技术&#xff0c;特别…

C语言数组详解:从基础到进阶的全面解析

在C语言中&#xff0c;数组是一种基本的数据结构&#xff0c;用于存储多个相同类型的数据。数组的引入使得C语言能够高效地存储和操作大量数据。在任何一个C语言程序中&#xff0c;数组都发挥着极其重要的作用。无论是在算法实现、数据存储、还是在复杂程序的设计中&#xff0c…

阴沟翻船题——Longest Substring Without Repeating Characters

一、事件概述 今天接到一个面试&#xff0c;让线上做题。面试官出了个leetcode的题。题目如图所示&#xff1a; 我没有刷过leetcode&#xff0c;上学时候我们做的hdu-acm和codeforces。咋一接到题目&#xff0c;看到是个字符串题&#xff0c;并且找最长字串&#xff0c;第一反…

ssm基于HTML5的红酒信息分享系统

SSM基于HTML5的红酒信息分享系统是一个专注于红酒领域的综合性信息平台&#xff0c;旨在为红酒爱好者、从业者以及普通消费者提供一个便捷的交流与获取红酒相关信息的空间。 一、系统背景与意义 随着人们生活水平的提高和消费观念的转变&#xff0c;红酒作为一种高雅的饮品&a…

【FFmpeg】FLV 格式分析 ③ ( Tag Body 数据块体结构 - Vedio Data 视频数据 )

文章目录 一、Tag Body 数据块体结构 - Video Data 视频数据1、Vedio Data 视频数据 类型标识2、Vedio Data 视频数据 结构分析3、Composition Time Offset 字段涉及的时间计算4、AVC Packet Type 字段说明① AVC Sequence Header 类型② AVC NALU 类型③ AVC End of Sequence …

解决docker: ‘buildx‘ is not a docker command.

简介 buildx 是 Docker 官方提供的一个构建工具&#xff0c;它可以帮助用户快速、高效地构建 Docker 镜像&#xff0c;并支持多种平台的构建。使用 buildx&#xff0c;用户可以在单个命令中构建多种架构的镜像&#xff0c;例如 x86 和 ARM 架构&#xff0c;而无需手动操作多个…