当前位置: 首页 > 知识库问答 >
问题:

NGINX入口上的全局静态IP名称

陆畅
2023-03-14

我在Google Container Engine上运行我的入口控制器时遇到了困难。我想使用带有Basic Auth的NGINX入口控制器并使用保留的全局静态ip名称(这可以在Google Cloud Admin界面的外部IP地址部分中进行)。当我使用gce类时,除了Basic Auth(我认为gce类不支持它)之外,一切都正常,当我尝试使用入口控制器启动的nginx类时,会听到一个输入代码,但我在Google Cloud Admin界面中保留的IP地址不会附加到入口控制器。有人知道如何让它工作吗?这是我的配置文件:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: webserver
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "myreservedipname"
    kubernetes.io/ingress.class: "nginx"
    ingress.kubernetes.io/auth-type: basic
    ingress.kubernetes.io/auth-realm: "Auth required"
    ingress.kubernetes.io/auth-secret: htpasswd
spec:
  tls:
    - secretName: tls
  backend:
    serviceName: webserver
    servicePort: 80

共有3个答案

能文华
2023-03-14

这是一个我知道有效的示例,可能是您的语法问题:

kind: Ingress
metadata:
name: nginx
spec:
rules:
- host: nginx.192.168.99.100.nip.io
http:
paths:
- backend:
serviceName: nginx
servicePort: 80
周飞语
2023-03-14

外部IP地址可以连接到负载平衡器,您可以将其指向入口控制器。

一个主要注意事项是,外部IP地址应保留在与Kubernetes集群相同的区域中。

为此,只需使用LoadBalancer类型部署Nginx入口服务,并设置ExternalIP值,如下所示:

kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app: ingress-nginx
spec:
  loadBalancerIP: <YOUR_EXTERNAL_IP>
  type: LoadBalancer
  selector:
    app: ingress-nginx
  ports:
  - name: http
    port: 80
    targetPort: http
  - name: https
    port: 443
    targetPort: https

部署后,库伯内特斯将创建一个新的负载均衡器,其中包含所需的静态IP,这将是您的入口点。

@西贡,正如我所见,你已经试过了,但没有积极的结果。但是,它应该会起作用。如果没有-请再次检查IP地址和配置的区域。

牛昱
2023-03-14

我用helm找到了一个解决方案

helm install --name nginx-ingress stable/nginx-ingress \
      --set controller.service.loadBalancerIP=<YOUR_EXTERNAL_IP>

您应该使用外部ip,而不是您在gcloud中提供的名称。

此外,在本例中,我还添加了set rbac。创建=true以获取权限。

 类似资料:
  • 我正在尝试将入口连接到静态ip。我似乎在遵循所有教程,但我似乎仍然无法将静态ip连接到入口。我的入口文件如下(参考静态ip“测试ip”) 然而,当我跑步时 它返回 没有给出地址。在VPC网络[外部IP地址]中,静态ip是存在的,它是全局的,但它一直说:In use by无 给予 我错过了什么?

  • 设置默认的gce入口控制器,使用设置为响应主机名的入口资源 拥有静态ip的好处(在我目前的观点中)是,你永远不会想知道在哪里配置你的域,它将始终保持相同的ip;另一方面,你可以尽可能多地提供服务 我是使用这个gce负载均衡器的新手,我可以像使用静态ip一样依赖它吗(意味着它永远不会改变)?或者是否有一个层要添加以将静态ip指向负载均衡器? 我这么问是因为您可以设置服务资源的ip。但我还不知道如何使

  • 遵循Kubernetes的教程(在我的GKE案例中)https://docs.traefik.io/v2.0/user-guides/crd-acme/我一直在研究如何分配全局静态IP(GKE需要一个转发规则)。我是否遗漏了什么(例如,添加另一个入口)?我知道IngressRoute中不可能有注释。那么,如何分配全局保留IP? 关于这个问题的问题3的答案

  • 有没有办法在Java中创建一个可以从其他类访问的方法,而不必使该方法成为静态的?正如我在网上看到的所有解决方案所说,使方法成为静态的方法对我不起作用,因为我试图从方法中引用一个非静态变量。我引用的变量是(指它所在的类)。

  • 我正试图在GKE集群上添加一个NGINX入口控制器,使用现有的HAProxy入口控制器(它在重写规则方面有一些问题) 首先,我尝试将控制器的服务公开给LoadBalancer类型。流量可以到达入口和后端,但它不适用于托管证书。 因此,我尝试使用L7负载平衡器(URL映射)将流量转发到GKE群集IP,并为入口控制器本身创建入口对象。 问题是,这个入口对象似乎不绑定到外部IP。路由到域会产生“默认后端