ops-itop / itop-extensions

my extensions of itop
29 stars 12 forks source link

给外部服务做负载均衡 #90

Closed annProg closed 5 years ago

annProg commented 5 years ago

通过没有selectorService及ingress来做外部服务的负载均衡

设计

Ingress新增属性type{intra, external}, endpoints(加提示仅external类型时有效)

annProg commented 5 years ago

endpoint管理

annProg commented 5 years ago

考虑以下情况:

需要处理这种冲突情况

annProg commented 5 years ago

同一个业务,是否有可能既有外部服务,又有内部服务?是否合理,是否应该禁用这种情况? 这种情况将导致Service的维护变的复杂

annProg commented 5 years ago

Deployment,Ingress新增属性 manage_svc,标识是否由本对象管理Service对象

外部服务迁入内部

前提:外部服务以及使用此负载均衡服务 测试环境新增Deployment -> 使用测试域名测试是否正常 -> 迁入正式环境,此时由于存在external类型,Deployment不管理Service -> 修改Ingress type为internal,此时Deployment未管理Service,因此在监听到aChange包含type且type被设置为internal时,此时仍然由ingress来管理Service -> Deployment更新时,检测无external类型ingress,由Deployment接管Service

内部服务迁出

在外部部署服务 -> 测试正常后修改Ingress type为external,ingress接管Service。给用户加警示框(可能需要打patch来支持confirm确认框)

多ingress(域名)的内部服务部分迁移到外部

比如, Deployment adeploy 拥有2个ingress

annProg commented 5 years ago

增加后缀方案

对比以上,感觉清晰一些,也更安全一些,2套Service命名,不会存在谁覆盖谁的问题,看监控也能清晰的知道这是一个外部服务 唯一需要处理的是发报警时app名称中删除-ingress-for-external