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

Allow setting enableServiceLinks to false in etcd and syncer #1708

Closed
cezar-guimaraes opened this issue Apr 19, 2024 · 1 comment · Fixed by #1789
Closed

Allow setting enableServiceLinks to false in etcd and syncer #1708

cezar-guimaraes opened this issue Apr 19, 2024 · 1 comment · Fixed by #1789
Assignees

Comments

@cezar-guimaraes
Copy link

cezar-guimaraes commented Apr 19, 2024

What happened?

We are experimenting using vcluster to shard a cluster with 10K+ services between multiple vclusters.

It has been working perfectly for 2 weeks but we hit the first issue today: the etcd statefulset and the syncer deployment died and failed to start up due to there being too many environment variables. This is a known issue in clusters with too many services, and the workaround we usually employ is to disable pod's service links, as each service ends up as another environment variable to a pod.

Currently, however, there is no way to disable service links in the k8s chart
https://github.com/loft-sh/vcluster/blob/v0.19/charts/k8s/templates/etcd-statefulset.yaml

Edit to add: we have disabled service links manually in the etcd statefulset and syncer deployment and everything seems to be working.

What did you expect to happen?

Either:

  • for enableServiceLinks to be set to false (if vcluster does not work without DNS service discovery in the host cluster, I don't think there is a reason to leave that to the default true value)
  • a chart value allowing service links to be disabled

How can we reproduce it (as minimally and precisely as possible)?

Create 10K+ services in a cluster.

k get svc -A | wc -l
15405

Anything else we need to know?

I could open a PR for this (or for the related #1622 which would also fix this issue for us). I just see the charts on the v0.19 branch, is that the branch a potential PR should target?

Host cluster Kubernetes version

$ kubectl version
Client Version: v1.28.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.25.16-eks-b9c9ed7
WARNING: version difference between client (1.28) and server (1.25) exceeds the supported minor version skew of +/-1

Host cluster Kubernetes distribution

# Write here

vlcuster version

$ vcluster --version
vcluster version 0.19.5

Vcluster Kubernetes distribution(k3s(default)), k8s, k0s)

k8s

OS and Arch

OS: linux
Arch: amd64
@FabianKramm
Copy link
Member

@cezar-guimaraes thanks for creating this issue! Yes I think we can add that option

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment