背景
计算巢介绍:计算巢是阿里云开放给ISV与其客户的服务管理PaaS平台,旨在解决ISV云上交付、部署、运维问题,建立ISV与客户之间的通道。针对ISV的实际场景,计算巢提供了私有化部署、托管版部署、代运维服务三种模式。托管版和私有化部署的区别是针对于部署在ISV的账号下还是部署在用户账号下。
线下部署功能介绍:目前计算巢已支持线下部署功能,用户可以基于该功能实现物理机或者容器(k8s)的线下部署。基于物理机的方式可以将服务商提供的软件直接安装到用户线下集群中;基于k8s的方式可以将服务商的软件与k8s基础镜像打包,并给用户部署指引,用户只需要执行对应的很简单的几条命令就可以在自己的线下集群构建出一整套k8s集群。下面主要对计算巢线下部署k8s功能进行介绍和演示。
整体架构
计算巢线下部署目前支持离线和联网场景。离线场景指的是,服务商将部署配置信息填写好后生成离线部署包,用户可以在集群的Master节点用该离线部署包创建出一套k8s环境,离线场景的用户集群未接入公网,所有节点都在用户私网内。在线场景则是用户指定某台联网的节点,计算巢直接在指定的节点上执行安装k8s集群。下图所示为计算巢离线部署线下k8s集群的整体流程。
使用演示
服务商创建服务
- 1. 点击创建服务
- 2. 服务类型勾选“线下部署服务”
- 3. 目前k8s集群部署,服务商集成软件的方式有两种:helm或者yaml方式。对于yaml方式,服务商只需要编辑好yaml即可。而对于helm方式,服务商可以将软件构建为helm chart,并将该chart提前上传到计算巢部署物中,在创建服务时就选择对应的helm chart即可。对于yaml方式:部署方式选择k8s打包部署,应用配置选择YAML,yaml名称即为创建的应用的名称,yaml内容为具体的k8s部署yaml,部署参数为服务商指定的用户自定义参数。
- 4. 对于helm方式,首先简单说明一下如何创建helm chart部署物,计算巢部署物功能详情请查看:https://help.aliyun.com/zh/computing-nest/deployment-object-management/?spm=a2c4g.11174283.0.i3
- 5. 部署物创建好后,就可以在下面的应用配置中选择Helm,然后选择对应的部署物和版本。计算巢目前支持多helm chart。
- 6. 填写部署参数,如上图所示,选择了mysql与nginx部署物,所以在填写部署参数时需要如下:其中组件名称为helm chart包没有版本号的部分。该部署参数最后会覆盖原chart的values.yaml。
components: # 组件1名称 nginx nginx: # 以下参数仅为示例,可以根据实际情况填写 controller: name: controller service: externalIPs: - 192.168.37.101 rbac: create: true # 组件2名称 mysql mysql: mysqlRootPassword: test123. mysqlUser: test mysqlPassword: abcd123.
- 7. 保存服务后可以在“出包管理”页签中看到包状态为“生成中”。
- 8. 当部署包生成完成后会如下:
- 9. 点击“管理”可以看到部署指引,服务商可以根据该部署指引做一些测试。
用户部署
离线部署
该场景下用户集群未接入公网,需要用户手动将离线安装包存储到某个节点,在该节点执行安装。下面演示如何使用该功能。
- 1. 用户部署需要填写部署参数,其中部署包内容此处示例选择软件+k8s集群,部署网络环境选择离线环境,
- 2. 填写要部署的节点的内网ip,ssh配置此处采用密钥方式,所以需要在部署前将集群中的节点都配置好ssh免密登录。
- 3. 部署参数可以根据实际使用情况填写,如果填写了那该部署参数将会覆盖原value.yaml作为chart的部署参数。
- 4. 点击“开始离线部署”
- 5. 此时会得到具体的部署指引,根据引导执行部署。
联网部署
联网部署与离线不同的是,计算巢会通过将托管实例作为跳板机帮助用户在指定的master节点上执行部署。
参数配置方面基本保持一致,只是多了一项选择托管实例,如果没有则可以创建一个。
填写好配置后点击“下一步”,然后点击“确认订单”即可。
总结
通过线下部署功能,计算巢便覆盖了线上与线下的多种部署模式,提供给服务商一站式体验。本文只是介绍了线下部署k8s的部分,还有线下部署物理机的功能后期也会详细说明。不过目前线下部署模式也还有一些需要改进的地方,例如yaml方式部署支持不完善、部署日志、运维相关等,后期也会针对这些不足持续优化。下一篇文章将会介绍线下部署k8s的实现。