gpt4 book ai didi

nginx - K8S 裸机 nginx-ingress-controller

转载 作者:行者123 更新时间:2023-12-02 11:37:19 27 4
gpt4 key购买 nike

OS: RHEL7 | k8s version: 1.12/13 | kubespray | baremetal

我部署了一个标准的 kubespray 裸机集群,我试图了解部署 nginx-ingress-controller 的最简单的推荐方法是什么,这将使我能够部署简单的服务。没有提供负载平衡器。我希望我的 MASTER 公共(public) IP 作为我的服务的端点。

look-up

Github k8s ingress-nginx suggests NodePort 服务作为“强制”步骤,似乎不足以使其与 kubespray 的 ingress_controller 一起工作。

我能够通过 kubectl edit svc 强制 LoadBalancer 服务类型并将 externalIP 值设置为 MASTER 公共(public) IP 到 nginx-ingress-controller 中,但它似乎不是正确的解决方案,因为缺少负载均衡器本身。

使用 helm chart 的类似结果:

helm install -n ingress-nginx stable/nginx-ingress --set controller.service.externalIPs[0]="MASTER PUBLIC IP"

最佳答案

I was able to make it working forcing LoadBalancer service type and setting externalIP value as a MASTER public IP into nginx-ingress-controller via kubectl edit svc but it seems not to be a correct solution due to lack of a load balancer itself.

正确,那不是LoadBalancer用于。它旨在为云提供商(如 AWS、GCP 或 Azure)或具有某种 API 的负载均衡器配置负载均衡器,以便 kube-controller-manager 可以与之交互。如果您查看 kube-controller-manager 日志,您应该会看到一些错误。你让它工作的方式显然是一种 hack,但我想它是有效的。

实现这个的标准方法就是使用 NodePort服务并在您的主机上安装任何代理/负载均衡器(即 nginx 或 haproxy)以将流量发送到 NodePorts。请注意,我不建议使用 master 来处理您的服务,因为它已经处理了一些关键的 Kubernetes pod,例如 kube-controller-manager、kube-apiserver、kube-scheduler 等。

唯一的异常(exception)是 MetalLB您可以将其与 LoadBalancer 服务类型一起使用。请记住,在撰写本文时,该项目还处于早期阶段。

关于nginx - K8S 裸机 nginx-ingress-controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55052325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com