nginx入口没有控制器服务

时间:2021-02-09 09:52:34

标签: nginx kubernetes rancher

嘿,伙计们,我想在一个问题上寻求帮助: 我使用的是 Rancher 提供给我的 kubernetes 集群(所以我没有配置它)

但它有一个 nginx 入口控制器:

 kubectl -n ingress-nginx get all -o wide
NAME                                        READY   STATUS    RESTARTS   AGE   IP               NODE                           NOMINATED NODE   READINESS GATES
pod/default-http-backend-598b7d7dbd-fgpns   1/1     Running   3          48d   192.168.121.64   pr-k8s-fe-fastdata-worker-02   <none>           <none>
pod/nginx-ingress-controller-72d8s          1/1     Running   0          6d    172.34.10.123    pr-k8s-fe-fastdata-worker-03   <none>           <none>
pod/nginx-ingress-controller-rn4fw          1/1     Running   0          6d    172.34.10.192    pr-k8s-fe-fastdata-worker-01   <none>           <none>
pod/nginx-ingress-controller-v2m8b          1/1     Running   0          6d    172.34.10.173    pr-k8s-fe-fastdata-worker-02   <none>           <none>

NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE   SELECTOR
service/default-http-backend   ClusterIP   192.168.33.89   <none>        80/TCP    48d   app=default-http-backend

NAME                                      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS                 IMAGES                                                   SELECTOR
daemonset.apps/nginx-ingress-controller   3         3         3       3            3           <none>          48d   nginx-ingress-controller   rancher/nginx-ingress-controller:nginx-0.35.0-rancher1   app=ingress-nginx

NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS             IMAGES                                                         SELECTOR
deployment.apps/default-http-backend   1/1     1            1           48d   default-http-backend   rancher/nginx-ingress-controller-defaultbackend:1.5-rancher1   app=default-http-backend

NAME                                              DESIRED   CURRENT   READY   AGE   CONTAINERS             IMAGES                                                         SELECTOR
replicaset.apps/default-http-backend-598b7d7dbd   1         1         1       48d   default-http-backend   rancher/nginx-ingress-controller-defaultbackend:1.5-rancher1   app=default-http-backend,pod-template-hash=598b7d7dbd

当我正在观看视频教程 ([ Kube 59.1 ] Nginx Ingress in Kubernetes Revisited) 我注意到,当他在 ingress 命名空间中的默认 backen svc 旁边显示所有像我一样的内容时,他也有一个“ingress-controller svc负载平衡器类型”,而我没有,那么我该如何纠正? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

Nginx Ingress in Kubernetes Revisited 3:25 --> 他说 nginx-ingress-controller 类型的 LoadBalancer 来自 Metallb。这意味着他运行本地集群,而不是在云中。您可以使用 kubeadm

安装相同的

MetalLB 制作 LoadBalancer 服务: https://metallb.universe.tf/

<块引用>

Kubernetes 不提供网络负载均衡器的实现 (LoadBalancer 类型的服务)用于裸机集群。这 Kubernetes 附带的 Network LB 的实现都是 调用各种 IaaS 平台(GCP、AWS、Azure...)的粘合代码。 如果您没有在受支持的 IaaS 平台(GCP、AWS、Azure...)上运行, LoadBalancers 将无限期地保持在“pending”状态 已创建。

裸机集群运营商只剩下两个较小的工具可以带来 用户流量进入他们的集群,“NodePort”和“externalIPs” 服务。这两种选择都有明显的缺点 生产使用,这使得裸机集群成为二等公民 在 Kubernetes 生态系统中。

MetalLB 旨在通过提供网络 LB 来纠正这种不平衡 与标准网络设备集成的实现,因此 裸机集群上的外部服务也同样“正常工作” 尽可能。

答案 1 :(得分:1)

所以我设法让它工作,我的牧场主上的 nginx 是从牧场主应用程序目录中部署的,并且“部署服务”字段被设置为 false,所以我升级了它并将该字段设置为 true 和它为我部署了负载平衡服务,所以现在它工作正常。 谢谢