-
Notifications
You must be signed in to change notification settings - Fork 361
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
Add support deployment on bare metal or VM #1035
Comments
+1 this can be supported using a File based Provider or a Docker/Container Provider |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. |
+1 |
I'm looking into using envoy-gateway for running on VPS without external LB. Just bootstrapping a node or two. Being able to set Has anyone used MetalLB (or similar) with the gateway? Is there anything else that goes into "supporting deployment" that I don't understand? Edit #360 seems related to the |
@tommie would running EnvoyProxy as a docker container satisfy your use case ? |
Preferably not. I'm using docker-compose and a cron'd update now, but my (wet) dream is to have a proper orchestrator where I can stop treating my two servers as precious. Trying to build a bottlerocket+kubeadm+flannel+envoyproxy(?)+... solution that can go from bootstrapping on a single cheap node, while also being easy to scale. I could do something special for ingress, but since K8s is supposed to abstract that, I'd love to avoid it. And since I'm just starting to play with K8s, using Gateway seems preferable over Ingress, muddying the waters with LBs, IIUC. When I tried patching in Since Hetzner's cheap servers don't give me a controllable SDN, I don't think MetalLB will work for me (based on a casual investation.) I would basically just move the |
Relates to envoyproxy#1001 & envoyproxy#1035 Signed-off-by: Arko Dasgupta <[email protected]>
* design: Run Envoy Gateway locally on host Relates to #1001 & #1035 Signed-off-by: Arko Dasgupta <[email protected]> * lint Signed-off-by: Arko Dasgupta <[email protected]> * lint Signed-off-by: Arko Dasgupta <[email protected]> --------- Signed-off-by: Arko Dasgupta <[email protected]>
This issue has been automatically marked as stale because it has not had activity in the last 30 days. |
Follow-up on #1322, and looking for input on next steps. The generated gateway services set
on nodes that don't have such a pod running. Probably from here: https://github.com/kubernetes/kubernetes/blob/52353a2e4ac121ccbfc0fc243e5738888286cc96/pkg/proxy/iptables/proxier.go#L1070 Since I'm trying to run Envoy without an external LB, I think I need a way for Gateway to run a pod on (at least) each node that is referenced in I wonder if the Envoy I've built a controller to update Gateway addresses based on labelled nodes, which does the first part, but I don't think the Envoy configmap is generic enough right now to switch to a |
Some references about DaemonSet: The nginx-ingress Helm chart allows you to specify the controller kind: https://github.com/kubernetes/ingress-nginx/blob/24cd56d27c60b550ee103bff1ccbef980f614c7e/charts/ingress-nginx/templates/controller-daemonset.yaml#L1 They discuss it as a way to avoid unschedulable pods, rather than as ingress using node IP addresses: https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#via-the-host-network Seems there is some precedent for |
Here's a PoC: https://github.com/envoyproxy/gateway/compare/main...tommie:envoyproxy-gateway:daemonset?expand=1 By setting # https://github.com/envoyproxy/gateway/blob/main/docs/latest/user/customize-envoyproxy.md
apiVersion: config.gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: envoy-config
namespace: envoy-gateway-system
spec:
provider:
type: Kubernetes
kubernetes:
envoyDeployment:
replicas: -1 # DaemonSet
pod:
nodeSelector:
somelabel: "" |
@tommie if you're running without any LB support, then you should be using a different service type such as |
Thanks, yes, good point. I think |
yes, |
Yes, though I didn't realize you are suggesting it's enough to solve the problem. Thinking out loud: Let's say I set replicas to 2. EG Controller schedules Proxy pods on some random nodes. I will at least want a Am I getting that right? Edit: ... before ExternalDNS I just noted that I couldn't control where the |
yah it looks like this can work
|
@arkodg Thank you! Closed the PR. I'll play around with this some more. |
cool, please feel free to raise GH issues, if you notice anything missing |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. |
closed in favor of #1393 |
How does running out of cluster solve in-cluster deployment issue? For bare metal providers L2 load balancers may not be available (Hetzner). Such providers provide failover IP machinery (using BGP or proprietary API) and is up to the user how to ingest traffic. External DNS is slow compared to switching failover IP. In addition, BGP routing may balance traffic with the same IP to many nodes at the same time. |
Description:
I hope gateway support deployment on bare metal or VM
The text was updated successfully, but these errors were encountered: