Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Head entity from Deployments without shards #4503

Closed
7 tasks
JoanFM opened this issue Mar 17, 2022 · 4 comments · Fixed by #4517
Closed
7 tasks

Remove Head entity from Deployments without shards #4503

JoanFM opened this issue Mar 17, 2022 · 4 comments · Fixed by #4517
Assignees

Comments

@JoanFM
Copy link
Member

JoanFM commented Mar 17, 2022

Describe the feature
With the inclusion of linkerd as default service mesh we can go and remove head which would imply better QPS and no extra hops. This will be done for all Deployments without shards. For Deployments with shards, the head will be kept.

  • Remove RollingUpdate/Scale feature from Flow/Deployment/Pod/JinaD
  • Implement reducing after multiple needs in the Gateway
  • Set all worker Pods in the Gateway (Outside K8s)
  • Make the gateway send to worker Pods
  • Dont create heads for Deployments with no shards
  • Change plotting
  • Change Architecture Overview in the docs
@JoanFM
Copy link
Member Author

JoanFM commented Mar 17, 2022

Block by #443

@jacobowitz
Copy link
Contributor

Removing the head Pod for Deployments without shards will remove some functionality outside a K8s deployment and shift some responsibilities to the Gateway.

Features to be removed:

  1. RollingUpdate: Has to be removed, because the Head is handling the dynamic addition/removal of workers. This is not implemented in the Gateway and we are not planning to do so. In theory this could be rescued, but it does not seem to be worth it really. Within K8s it will still be possible with your regular K8s tools.
  2. Scale: Same reasoning as RollingUpdate

Gateway assumes these responsibilities:

  1. Reducing for an Executor with multiple needs (unless disabled by config). This means the Gateway will touch Documents and depend on DocArray.

Other necessary Changes:

  • The worker Pods need to be set in the Gateway on creation
  • The plotting needs to be updated

@jacobowitz jacobowitz changed the title Remove Head entity from Deployments Remove Head entity from Deployments without shards Mar 18, 2022
@jacobowitz
Copy link
Contributor

Completing this issue also means that External Deployment cant leverage multiple replicas without additional measures (Kubernetes/LoadBalancers/...)

@jacobowitz
Copy link
Contributor

I created a follow up ticket to get the external Executors right. We can close this issue before, but we should wait with a release until we have the follow up issue implemented. #4556
Also I think the Deployment as a first class citizen issue should be done before a release: #4502

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants