sofastack / sofa-serverless

a framework to enabe app architecture evolve from monolithic to microservices smoothly by involving modular and macroservices architecture.
https://sofaserverless.gitee.io/home/
Apache License 2.0
115 stars 41 forks source link

【User 文档】弹性运维调度系统 module-controller 搭建部署文档 #3

Closed lylingzhen closed 1 year ago

lylingzhen commented 1 year ago

demo 应用准备

基座准备

dynamic-stock-mng https://github.com/sofastack-guides/sofa-ark-dynamic-guides

注:本地构建建议使用最新版本 arklet。

构建基座镜像

在本地使用 docker 构建镜像: docker buildx build --platform linux/amd64 -t dynamic-stock-mng . docker tag [ImageId] serverless-registry.cn-shanghai.cr.aliyuncs.com/opensource/test/dynamic-stock-mng:[镜像版本号] docker push serverless-registry.cn-shanghai.cr.aliyuncs.com/opensource/test/dynamic-stock-mng:[镜像版本号]

注意: 使用 docker buildx build --platform linux/amd64 , build for multiple architectures

模块准备 dynamic-provider 上传OSS: http://serverless-opensource.oss-cn-shanghai.aliyuncs.com/module-packages/stable/dynamic-provider-1.0.0-ark-biz.jar?Expires=1690827422&OSSAccessKeyId=TMP.3KkBner42hKhywrbHcxUSvaypwEqSV6P2nFhdxU6CFA3Z3FW9FNwWBLvBiNXMfwhLXEhSSiMLx6f25ynecTYD4fjVQXWys&Signature=FPMoPLiDZdYS6nE%2Fb8GG1Vw3Ik0%3D

Operator 准备

构建 Operator 镜像

在本地使用 docker 构建镜像: docker buildx build --platform linux/amd64 -t module-deployment . docker tag [ImageId] serverless-registry.cn-shanghai.cr.aliyuncs.com/opensource/test/module-deployment:[镜像版本号]

部署

本地使用 minikue kubectl 部署 CRD、RBAC、测试基座、Operator 等

部署CRD

kubectl apply -f <?>/module-deployment/config/crd/bases/module-deployment.serverless.alipay.com_moduledeployments.yaml kubectl apply -f <?>/module-deployment/config/crd/bases/module-deployment.serverless.alipay.com_modulereplicasets.yaml kubectl apply -f <?>/module-deployment/config/crd/bases/module-deployment.serverless.alipay.com_modules.yaml kubectl apply -f <?>/module-deployment/config/crd/bases/module-deployment.serverless.alipay.com_moduletemplates.yaml

部署RBAC

kubectl apply -f <?>/module-deployment/config/rbac/role.yaml kubectl apply -f <?>/module-deployment/config/rbac/role_binding.yaml kubectl apply -f <?>/module-deployment/config/rbac/service_account.yaml

部署 demo 应用

kubectl apply -f <?>/module-deployment/config/samples/dynamic-stock-deployment.yaml 为demo应用配置了slb,可访问: 139.224.111.169:8080

部署 operator

kubectl apply -f <?>/module-deployment/config/samples/dynamic-stock-deployment.yaml


演示

副本数为1 的ModuleDeployment kubectl apply -f <?>/module-deployment/config/samples/module-deployment_v1alpha1_moduledeployment.yaml 确认产生 ModuleDeployment ModuleReplicaSet 资源,确认长出一个 module。


kubectl get moduledeployment kubectl get modulereplicaset kubectl get module -oyaml 确认对应的pod上热部署了模块


资源 module 的ownereference 和其中的 label 都包含对应的pod信息。 登陆pod,确认 module 已安装。


扩容到 5 确认 module kubectl get module http://139.224.111.169:8080/ 已经可访问


缩容到 3 确认 module instance 只有 3 个,2 个模块已从机器上卸载

lylingzhen commented 1 year ago

https://github.com/sofastack/sofa-serverless/issues/26 中跟进。