cube-studio icon indicating copy to clipboard operation
cube-studio copied to clipboard

服务发布之后ExternalIP为master ip导致集群故障

Open drepig opened this issue 2 years ago • 10 comments

将模型管理界面中的mnist模型发布后,在服务上线步骤选择部署测试,通过ip无法访问该服务,而且会导致集群故障。 请问可能是什么原因造成的

drepig avatar Oct 31 '22 14:10 drepig

内部服务或者推理服务 ExternalIP 的ip是配置的代理ip,没有配置,默认就是当前网址ip。但是端口是20000+ 30000+。rancher server 只占用 443端口,istio ingressgateway service 只占用 80 8080端口。

可以看看部署的mnist的服务端口是多少

data-infra avatar Nov 01 '22 02:11 data-infra

@data-infra 部署的服务的端口是从20010开始,每增加一个服务端口号加10,所有服务的ip:端口都无法访问,部署的mnist的服务端口是20060。ExternalIP默认是当前节点ip的话,在ipvs模式下就会出现集群故障。如果通过项目组的扩展去修改代理ip,仍然无法访问。或者说配置代理ip有什么讲究和方法吗

drepig avatar Nov 01 '22 02:11 drepig

我如果任何端口都无法访问,我怀疑是防火墙之类的网络限制。

data-infra avatar Nov 01 '22 03:11 data-infra

在k8s的kube-proxy设置为ipvs模式时,如果发布的k8s service的externalIPs设置为集群节点的ip,就会导致集群网络问题。(参考:https://github.com/kubernetes/kubernetes/issues/104679)。 在尝试cube-studio的服务发布功能时,我发现创建的k8s服务(service namespace下)会将externalIP设置为节点ip;即使是我在项目管理中加入拓展参数SERVICE_EXTERNAL_IP,并设置为其他的ip,且在前端页面也显示为修改后的ip,但是在部署了该服务之后设置没有生效,仍然将externalIP设置为节点ip。 请问这可能是什么原因,或者是cube-studio的bug?

hanpanda avatar Nov 01 '22 14:11 hanpanda

@data-infra 麻烦您看看上面的问题。

另外想顺便问问一些其他小bug。 登录 可以输入任意用户名以及任意密码访问平台

  • 当输入已存在用户名后会核对密码是否正确
  • 会自动创建对应的角色,造成不必要的角色过多的情况

pipeline运行 点击运行后会出现莫名的白框遮挡住页面,且无法关闭。 image image

请问这些是已经知晓的问题还是说我们遇到的偶然情况?

drepig avatar Nov 02 '22 02:11 drepig

我测试似乎配置代理ip后 部署服务是代理ip,你是不是先清理,再部署。直接在原有已部署服务上再部署可能只是更新。你试一下

data-infra avatar Nov 02 '22 02:11 data-infra

1、登录是自动注册的。同名确实会验证密码。目前是这样的机制。 2、白框遮挡住页面问题,你试一下谷歌浏览器。目前测试没有发现这个问题。运行后会跳转到pipeline的运行状况跟踪界面

data-infra avatar Nov 02 '22 02:11 data-infra

@data-infra,我详细描述一下问题出现的过程。 我先是在项目组修改了SERVICE_EXTERNAL_IP: image 之后在 服务化 页面可以看到:(这些是部署cube-studio之后就看到的demo) image 然后我尝试部署其中的服务,例如:第4个服务人脸检测:(该服务之前并未部署过) image 然后就会出现之前提到的集群网络问题。 修复之后查看service namespace下的新创建的服务: image 发现设置没有生效,服务face-external仍然将externalIP设置为节点ip而不是修改之后的1.2.3.4。

hanpanda avatar Nov 02 '22 07:11 hanpanda

@data-infra 你好,关于服务发布导致集群失败的这个问题,我们定位到了问题在这里/myapp/views)/view_serving.pySERVICE_EXTERNAL_IP的类型是list,因此并没有成功进入if判断语句。将该问题解决后可以成功部署服务。 image 我们刚好是在10.23号部署的cube-studio,巧合的是刚好你们在10.24已经修改了该bug, 巧妙地避开了正确的版本。我们是在读的学生,对MLOPs也有着浓厚的兴趣,希望能共同建设好cube-studio项目,看到cube-studio项目还在快速迭代,不知道能否提供一个公开的交流的企业微信群,或者说提供一个bug list或者todo list,让我们在实践该项目的时候有所注意或者能参与到该项目的建设中。谢谢!

drepig avatar Nov 03 '22 13:11 drepig

微信群里面私聊一下我。欢迎共建

data-infra avatar Nov 03 '22 13:11 data-infra

应该是使用了ipvs网络模式。需要在配置文件中,修改网络模式从iptable改为ipvs

data-infra avatar Mar 22 '24 12:03 data-infra