README
Cloudpods

Cloudpods是什么?

Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。Cloudpods不仅可以管理本地的虚拟机和物理机资源,还可以管理多个云平台和云账号。Cloudpods隐藏了这些异构基础设施资源的数据模型和API的差异,对外暴露了一套统一的API,允许用户就像用一个云一样地访问多云。从而大大降低了访问多云的复杂度,提升了管理多云的效率。
谁需要Cloudpods?
- 将几台物理服务器虚拟化成一个私有云平台
- 需要一个紧凑而且功能相对完整的物理机全生命周期管理工具
- 将VMware vSphere虚拟化集群转换为一个可以自服务的私有云平台
- 在混合云的场景,能够在一个界面访问私有云和公有云
- 通过一个集中的入口访问分布在多个公有云平台上的多个账号
- 当前只使用一个云公有云账号但希望将来使用多云的用户
功能
概览 & UI 展示
管理多云资源的功能,可以管理大多数的主流云,包括私有云,例如OpenStack,以及公有云,例如AWS,Azure,GCP,阿里云,华为云和腾讯云等
一个可以管理海量KVM虚拟机的轻量级私有云
-
虚拟机列表
-
虚拟机创建页面
-
虚拟机可通过 VNC 或者 SSH 登录
-
宿主机列表
-
镜像模板列表
-
VPC列表
-
二层网络列表(经典网络)
-
IP子网列表
-
弹性公网IP列表(VPC网络)
-
LB列表
一个能进行物理机全生命周期管理的裸机云
-
物理机列表
-
物理机纳管
-
安装操作系统
- 支持 ARM64 的物理机服务器
一套完整的多租户认证和访问控制体系
-
支持本地sql、LDAP 等认证源
-
多租户系统,包括域,项目,组,用户,角色和权限等
实现了VMware vSphere虚拟化集群的自助服务和自动化
-
添加VMware云账号
-
VMware云账号列表
-
自动创建二层网络
-
自动创建IP子网
-
新建VMware虚拟机
允许以统一的联邦身份访问各个云平台的原生控制台的SSO
-
为云账号开启免密登录(以阿里云为例)
-
将Cloudpods平台用户添加为免密登录用户
-
多云统一登录入口
-
多云统一登录-免密登录用户列表
-
Cloudpods平台用户免密登录阿里云
一套功能丰富、统一一致的RESTAPI和模型访问以上的云资源和功能
自动将镜像转换为不同云平台需要的格式的多云镜像服务
支持的云平台
- 公有云:
- 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, TSL 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
安装部署
- All in One 安装:在 CentOS 7 或 Debian 10 等发行版里搭建全功能 Cloudpods 服务,可以快速体验内置私有云和多云管理的功能。
- Kubernetes Helm 安装:在已有 Kubernetes 集群上通过 Helm 部署一套 Cloudpods CMP 服务,可以体验多云管理的功能。
- Docker Compose 安装:通过 Docker Compose 部署 Cloudpods CMP 服务,可以迅速体验多云管理的功能。
- 高可用安装:在生产环境中使用高可用的方式部署 Cloudpods 服务,包括内置私有云和多云管理的功能。
文档
谁在使用Cloudpods?
请在这里查看Cloudpods用户列表。如果你正在使用Cloudpods,欢迎回复留下你的信息。谢谢对Cloudpods的支持!
联系我们
您可以通过如下方式联系我们:

版本历史
请访问Cloudpods Changelog.
开发规划
请访问Cloudpods Roadmap.
贡献
欢迎和感谢任何形式的贡献,不局限于贡献代码,流程细节请查看 CONTRIBUTING。
License
Apache license 2.0,详情请看 LICENSE。
Extension points exported contracts — how you extend this code
IIdentityProvider (Interface)
interface for owner [6 implementers]
pkg/mcclient/token.go
Service (Interface)
Service interface is the lowest common shape that services are expected to forfill to be started within monitor. [10 implementers]
pkg/monitor/registry/registry.go
IRaidDriver (Interface)
(no doc) [6 implementers]
pkg/baremetal/utils/raid/interface.go
FitPredicate (Interface)
(no doc) [16 implementers]
pkg/scheduler/core/types.go
IWorkerTask (Interface)
(no doc) [30 implementers]
pkg/appsrv/workers.go
ICloudSAMLLoginDriver (Interface)
(no doc) [7 implementers]
pkg/cloudid/models/samldriver.go
IWorker (Interface)
(no doc) [53 implementers]
pkg/vpcagent/worker/worker.go
IHandler (Interface)
(no doc) [9 implementers]
pkg/apigateway/handler/dispatcher.go
Core symbols most depended-on inside this repo
Wrap
called by 5988
pkg/scheduler/cache/candidate/hosts.go
Query
called by 2717
pkg/cloudcommon/db/interface.go
Equals
called by 2649
pkg/compute/models/snapshotpolicy.go
Add
called by 2117
pkg/scheduler/cache/interface.go
GetString
called by 1334
pkg/monitor/influxdbsubscribe/point.go
Set
called by 1139
pkg/monitor/notifydrivers/feishu/cache.go
Error
called by 1124
pkg/cloudcommon/validators/errors.go
Marshal
called by 1045
pkg/util/dhcp/packet.go
Shape
Method
23,489
Struct
6,969
Function
6,477
Interface
367
TypeAlias
249
FuncType
102
Class
7
Modules by API surface
pkg/compute/models/hosts.go284 symbols
pkg/compute/models/guests.go256 symbols
pkg/hostman/hostdeployer/apis/deploy.pb.go253 symbols
pkg/compute/models/guest_actions.go227 symbols
pkg/apis/compute/zz_generated.model.go214 symbols
pkg/hostman/guestman/guesttasks.go212 symbols
pkg/baremetal/manager.go205 symbols
pkg/mcclient/options/cloudaccounts.go199 symbols
pkg/hostman/guestman/qemu-kvm.go185 symbols
pkg/compute/models/regiondrivers.go176 symbols
pkg/hostman/guestfs/fsdriver/linux.go170 symbols
pkg/mcclient/options/compute/servers.go165 symbols
Dependencies from manifests, versioned
cloud.google.com/gov0.65.0 · 1×
cloud.google.com/go/storagev1.10.0 · 1×
github.com/360EntSecGroup-Skylar/excelizev1.4.0 · 1×
github.com/Azure/azure-sdk-for-gov36.1.0+incompatible · 1×
github.com/Azure/go-autorestv14.2.0+incompatible · 1×
github.com/Azure/go-autorest/autorestv0.9.6 · 1×
github.com/Azure/go-autorest/autorest/adalv0.8.2 · 1×
github.com/Azure/go-autorest/autorest/azure/authv0.4.2 · 1×
github.com/Azure/go-autorest/autorest/azure/cliv0.3.1 · 1×
github.com/Azure/go-autorest/autorest/datev0.2.0 · 1×
github.com/Azure/go-autorest/loggerv0.1.0 · 1×