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 个模块已从机器上卸载