Closed annProg closed 5 years ago
考虑以下情况:
需要处理这种冲突情况
同一个业务,是否有可能既有外部服务,又有内部服务?是否合理,是否应该禁用这种情况? 这种情况将导致Service的维护变的复杂
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确认框)
比如, Deployment adeploy 拥有2个ingress
-ingress-for-external
的Servicemanage_svc
为clean
,清理-ingress-for-external
后缀的Service,当ingress 再次更新时,aChange不包含type切type为internal,manage_svc改为 no
,放弃管理Service对比以上,感觉清晰一些,也更安全一些,2套Service命名,不会存在谁覆盖谁的问题,看监控也能清晰的知道这是一个外部服务
唯一需要处理的是发报警时app
名称中删除-ingress-for-external
通过没有
selector
的Service
及ingress来做外部服务的负载均衡设计
Ingress新增属性
type
{intra
,external
},endpoints
(加提示仅external类型时有效)