一键部署方案
需求背景
客户能够一键安装整个集群
前提条件
- 客户所用业务单元全为Docker容器
- 客户所用关系数据库: Mysql
- 其他数据存储单元?
Nfs/Nas/Redis?
大范围隐患
K8s Node节点池隔离?
Master 宕机影响全客户更新及容器飘逸
其他不隔离的情景下产生的问题梳理?
- ……
- ……
跨云厂商需求?
是否有阿里云/华为云不同厂商通讯
已购买资源?
决定复用?复用的逻辑要评估资源可用性?
小维度隐患
Rds
备份恢复?
- 备份是否做?
- 自动备份失败的容错
资源评估类?
- 多大的Cpu/内存配额及磁盘
- maxconnection 最大数据库连接数?
- Rds慢的卡点?buffer内存设定?细粒度Config配置
参数指标类?
- 监控指标?
- 不可用宕机通知?
- 过期提醒
安全访问类?
- 安全组配置
- SSL/Tls证书有效期
- 访问数据库来源Ip名单设定
- 机器访问密钥对/密码?
- sql初始化的审查机制?
Ecs&容器云
节点池加入?
- 是否划分资源倾向类型(计算报表类/内存业务类)
- 资源阈值(Master所在地及调度能力统一化的弊端)
资源评估类?
- 划分多大多小节点资源参考案例
- 用户以往使用情况评估?
- 挂多大的数据盘?
安全访问类
- NAT(DNAT\SNAT)设定
- 安全组
CloudService服务
模块简介
总体流程
部署配置单流程
RdsService
Rds实现流程时序图
实现方式
华为云
- SDK: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/README_CN.md
- WebApi: https://console.huaweicloud.com/apiexplorer/#/openapi/RDS/doc?api=CreateInstance
- Terraform
华为云SDK-Rds-操作点
- 华为云SDK-Rds模块: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/services/rds/v3/rds_client.go
初始化操作
- CreateConfiguration: 创建参数配置模板
- ApplyConfigurationAsync: 应用参数模板
- CreateInstance: 创建数据库实例
- CreateDbUserInvoker: 创建数据库用户
验证弥补操作
- ListConfigurations: 列举参数模板
- ListDbUsers: 列举数据库用户列表
- ListAuthorizedDatabases: 用户已授权数据库
- ListDatabases: 查询数据库列表
- ListInstances: 查询实例列表
阿里云
微软云
EcsService
Ecs流程时序图
实现方式
华为云
- SDK: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/README_CN.md
- WebApi: https://console.huaweicloud.com/apiexplorer/#/openapi/RDS/doc?api=CreateInstance
- Terraform
华为云SDK-Ecs-操作点
- 华为云SDK-Rds模块: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/services/ecs/v2/ecs_client.go
初始化操作
- CreateServers: 创建服务器
- AttachServerVolume: 弹性云服务器挂载
验证弥补操作
- NovaListServersDetailsInvoker: 查询云服务器详情列表
- NovaShowServerInvoker: 查询云服务器详情
- ListServerBlockDevices: 查询弹性云服务器磁盘信息
- ShowServerBlockDevice: 查询弹性云服务器单个磁盘信息
阿里云
微软云
K8sService
K8s流程时序图
实现方式
华为云
- SDK: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/README_CN.md
- WebApi: https://console.huaweicloud.com/apiexplorer/#/openapi/RDS/doc?api=CreateInstance
- Terraform
华为云SDK-K8s-操作点
- 华为云SDK-CCE(华为k8s-Cloud Container Engine)模块: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/services/cce/v3/cce_client.go
操作类Api
- AddNode: 纳管节点
- CreateNodePool: 节点池
查询类Api
- ListClusters: 获取指定项目下的集群
- ShowCluster: 获取指定集群
- ListNodePools: 获取集群下的节点池
- ListNodes: 获取集群下所有节点
- ShowNodePool: 获取指定的节点池
- ShowQuotas: 查询CCE服务下的资源配额
问题
- 华为云不支持纳管节点加入到节点池,会形成孤立节点
阿里云
微软云
问题
- 微软云不支持virtual-machines加入到Aks(k8s云容器集群)
CustomerService
CustomerService流程时序图
实现方式
华为云
- SDK: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/README_CN.md
- WebApi: https://console.huaweicloud.com/apiexplorer/#/openapi/RDS/doc?api=CreateInstance
- Terraform
华为云SDK-Ecs-操作点
- 华为云SDK-Rds模块: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/master/services/ecs/v2/ecs_client.go
初始化操作
- AddNode: 纳管节点
- CreateNodePool: 节点池
阿里云
微软云
bizDeployService
bizDeploy实现流程时序图
物料准备
华为云
终端节点
- 从地区和终端节点查询服务的终端节点,请您根据业务需要选择对应区域的终端节点
https://developer.huaweicloud.com/endpoint - 集群管理、节点管理、节点池管理、插件管理、配额管理的URL格式为:https://Endpoint/uri。其中uri为资源路径,也即API访问的路径。
- Kubernetes API、存储管理的URL格式为:https://{clusterid}.Endpoint/uri。其中{clusterid}为集群ID,uri为资源路径,也即API访问的路径。
认证鉴权
调用接口有如下两种认证方式
- Token认证:通过Token认证调用请求。Token的有效期为24小时。
- AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。推荐使用AK/SK认证,其安全性比Token认证要高。
- AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。
- https://support.huaweicloud.com/devg-apisign/api-sign-provide-start.html
国内查看评论需要代理~