欠费之后操作设计 #2289
Replies: 4 comments 7 replies
-
|
Beta Was this translation helpful? Give feedback.
-
具体实现逻辑:把所有pod的scale全部改成0? |
Beta Was this translation helpful? Give feedback.
-
@zzjin @fanux 异步对一下吧 stateDiagram-v2
[*] --> 正常
正常 --> 即将欠费: 使用资源
note right of 即将欠费
发送即将欠费通知
end note
即将欠费 --> 重度欠费: 继续使用
note right of 重度欠费
发送欠费通知
end note
重度欠费 --> 正常: 充值
重度欠费 --> [*]:超过N天,删除所有资源
通知系统 stateDiagram-v2
[*] --> 通知controller:欠费消息
通知controller --> 前端消息通知接口: 欠费信息和后果
通知controller --> 用户手机短信: 欠费信息和后果
之后期望做成的样子 stateDiagram-v2
[*] --> 正常
正常 --> 即将欠费: 使用资源
轻度欠费 --> 重度欠费: 继续使用
轻度欠费 --> 正常: 充值
重度欠费 --> 正常: 充值
轻度欠费 --> [*]: 超过2*N天,删除所有资源
note right of 即将欠费
发送即将欠费通知
end note
即将欠费 --> 轻度欠费: 继续使用
note right of 轻度欠费
发送欠费通知
end note
note right of 轻度欠费
更新RBAC,只能get和list
end note
note right of 轻度欠费
暂停Namespace,pod,ingress的scale改为0
end note
重度欠费 --> [*]: 超过N天,删除所有资源
note left of 重度欠费
发送欠费通知
end note
|
Beta Was this translation helpful? Give feedback.
-
通知那个玩意不管是否已读了,每个用户有一个通知数据CR,有一个欠费controller,欠费会去监听account金额变化,如果是欠费了就把状态变为欠费然后在通知数据CR中更新通知信息,前端就去看这个通知数据CR吧,然后按时间顺序从最新的开始列出来通知,暂时没有用户确认通知的功能。 |
Beta Was this translation helpful? Give feedback.
-
1、背景:
用户会出现欠费情况,要做到提前提醒用户欠费情况和欠费到一定程度自动停止用户使用,重度欠费清除用户资源的作用。
2、用户使用cloud场景
2.1、使用service和deployment部署了自己的服务,使用ingress暴露服务供前端调用。
接近欠费应提醒用户
轻度欠费应停止ingress暴露服务无法外部访问,pod,deployment等资源应该只能get不能update,(是否停止计费待商榷),持续超过7天释放资源
重度欠费清除namespace资源
2.2、使用了cloud provider起了一个集群。
接近欠费提醒用户
轻度欠费让他无法连接自己的infra,并且可以使aws的服务器关机,停止计费,持续超过7天释放资源
重度欠费清除用户的infra资源
3、具体实现逻辑
一个controller,监听Account,Account余额计算出如果轻度欠费,关闭ingress暴露服务(暂时不知道如何实现),通过webhook禁止用户create/update pod、deployment、service,不能apply yaml(不知道如何实现)。
如果出现重度欠费,删除用户ns所有资源。
4、提醒模块逻辑
controller 里面调用一个前端接口,在前端的通知栏里面显示
并且使用短信/邮件/电话等方式联系用户
5、定义欠费程度与金额的对应关系
接近欠费- 20
轻度欠费- 0
重度欠费- -100
Beta Was this translation helpful? Give feedback.
All reactions