-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[ws-daemon] Offer services not just on a nodePort #2956
Comments
That's what I call a timely issue. I just had the issue 2 hours ago. :) Correct me if I'm wrong but service topologies currently don't allow you to select by labels or such. You can just ensure that you end up on the same host. So the workspace pod would have to call the |
I'm in favor of both option 1 and 3. I would caution against option 2 since K8s distros such as Rancher strip alpha features to avoid them being used in production settings. OpenShift is the same way, by default you get only GA features and have to explicitly enable alpha/beta features through specific Red Hat channels. |
Good point, even with option 2 when using |
I don't know the internals but you can just watch
to get notified of node placements. |
Would you also pls consider the registry-facade daemon @csweichel ? Since |
@yyexplore Is there a reported issue or can you provide steps to reproduce a problem with |
@jgallucci32 , I didn't report a separate issue, but it should be similar with ws-daemon for registry-facade, the
|
For registry facade there's no way around the hostPort. Registry-facade is consumed by the container runtime of the cluster, hence by a service outside of Kubernetes. AFAIK the only way to make something like that work is using a hostPort. |
The premise behind this was under certain conditions Digging further I see a difference in the two which might be triggering this registry-facade securityContext:
privileged: false
runAsUser: 1000
...
hostPID: false ws-daemon securityContext:
privileged: true
procMount: Default
...
hostPID: true Another thing which confuses me is you state "far we've been using a |
I think we haven't done a particularly good job communicating what those components do, hence what they require:
|
I'm experiencing a related issue I believe in trying to create a workspace in a managed Kubernetes cluster. From my ws-manager logs:
|
My issue may be unrelated, and just a case of a misleading error message. I see this in one of the ws-daemon pods:
This might be related to an issue I ran into with my install of the DaemonSet (on Linode Kubernetes) with |
I'm not sure the above is the issue. I changed the following line to read
|
Btw., I wouldn't call this a feature request unless you specify Calico as a requirement. This will keep gitpod from working at all on e.g. weave unless you nail ws-manager and ws-daemon to a single node. |
Hey @csweichel
|
@stefanfritsch How do I restrict ws-manager and ws-daemon to a single node? |
@jawabuu: the workspace pod logs wouldn't show this particular issue. The "connection refused" you're seeing can be a regular part of a workspace starting up. If you looked at your ws-manager logs, there you'd be seeing failed connection attempts towards ws-daemon. |
@csweichel You are correct. I did see that. |
Is it possible to disable |
@csweichel Alternatively, is the port that ws-manager uses to connect to ws-daemon configurable? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Is there a reason the rl-gitpod merge request is not getting merged? Apart from lack of time :) |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
We're having an issue with the ws-daemon on our RKE cluster - one of our worker nodes successfully schedules the pod and starts the container, but the other one is met with the error "1 node(s) didn't have free ports for the requested pod ports". I'm assuming this is due to |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
ws-manager talks to specific ws-daemon instances, depending on the workspace in question. So far we've been using a
nodePort
to make that happen. It turns out that we simply "got lucky" and Calico just happens to allow pod/nodePort talk. But, that's non-standard and other CNI's don't support it, hence we must look for alternatives. Potential solutions are:kubectl port-forward service/ws-daemon
would do. This would straight forward to implement, but somewhat re-implement Kubernetes services.We'll go with option 1.
The text was updated successfully, but these errors were encountered: