-
Notifications
You must be signed in to change notification settings - Fork 740
Problem with etcd in hostNetwork #115
Comments
@caseydavenport |
Fixed in #116 |
Hm, I think I'm still seeing this even with #116. |
@caseydavenport |
I've been using the provided examples, though I've modified Here are the steps I'm running and the output from each:
This appears to create successfully. Then, I create the desired cluster. The manifest looks like this:
I see this occur:
And I can get the logs:
"kubectl describe etcd-cluster-0000" shows me the container image and command:
|
I have reproduced and verified it. @caseydavenport Can you try to figure out how to make it work? |
Yeah. Looks like we're hitting up against this: kubernetes/kubernetes#17406 Essentially, Kubernetes doesn't expose cluster DNS to host networked pods :( The issue points out some potential workarounds, but none seem that great. I'll have to dig a little deeper to see what we can do here. |
So, I don't think we can rely on DNS for this use case. It's not supported for Kubernetes host networked pods, and even if it were it wouldn't meet the Calico / Canal use-case since we need etcd to come up before any other pods (including DNS), and we don't want etcd being subject to DNS pod failures. I think the solution is to rely on service clusterIPs rather than DNS names (for host networked clusters). I'm going to prototype this and see if it can get us what we need. |
@caseydavenport |
A requirement for self-hosting clusters (#128) is that we will not be able to depend on any Kubernetes capabilities for client or peer networking. @hongchaodeng @xiang90 what would be required to enable true host networking for clusters managed by the controller? |
Can you explain why? |
Etcd is a requirement for Kubernetes networking to be functional so in recovery scenarios we are unable to rely on it. |
@ethernetdan What is the recovery scenarios? |
@ethernetdan resolved the issue offline. recovery from a disaster case (majority of etcd cluster used by k8s is down) should work similarly as bring up a new cluster except that the seed etcd member is recovered from a backup. |
I really think we need to have etcd support host networking and node IPs here. I am going to propose upstream this logical thinking for self-hosted cluster bring-up:
With this thing I really don't want a circular dependency between level 1 and level 3 as we start to make it really difficult for administrators to recover from cluster failure. And it makes it harder to reason about the system overall. |
@ethernetdan @philips I am fine with adding host network support. It def can help with decoupling the dependency mess. Just wanted to make sure we understand everything, since in theory everything should still work even without host network if we are careful about ordering. |
Anyway I can do to help speed up this work? |
Fixed by #366 |
Hi, Is there a fix or workaround for the hostNetwork=true? I'm running etcd 3.1.6. What workaround I can apply from Kubernetes? Is this issue fix from etcd side and still need a fix from Kubernetes to support host networked pod? Thanks in Advance. |
@bamb00 |
The issue is reference in @caseydavenport with the link from kubernetes (kubernetes/kubernetes#17406). I'm just wondering is there a workaround for this issue. |
Ran into this today while trying to test the changes from #112
Looks like it's failing to resolve etcd-cluster-0000. I'll investigate.
The text was updated successfully, but these errors were encountered: