kubernetes GKE是否支持nginx-engage带静态ip?

nzkunb0c  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(5)|浏览(111)

我一直在使用Google Cloud Load Balancer入口。但是,我试图在GKE中具有静态IP地址的节点中安装nginxinc/kubernetes-ingress控制器。
1.我可以在同一集群中使用Google的Cloud Load Balancer入口控制器吗?
1.如何使用nginxinc/kubernetes-ingress和静态IP?
谢啦,谢啦

yptwkmov

yptwkmov1#

如果你正在使用helm部署nginx-inge。
首先创建静态IP地址。在google中,Network Loadbalancers(NLB)仅支持区域静态IP:

gcloud compute addresses create my-static-ip-address --region us-east4

字符串
然后安装nginx-helm,ip地址作为loadBalancerIP参数

helm install --name nginx-ingress stable/nginx-ingress --namespace my-namespace --set controller.service.loadBalancerIP=35.186.172.1

pokxtpni

pokxtpni2#

第一个问题

正如Radek 'Goblin' Pieczonka已经指出的那样,这是可能的。我只是想把你链接到official documentation关于这个问题:
如果你在一个集群中有多个Ingress控制器,你可以通过指定ingress.class注解来选择一个,例如创建一个带有如下注解的Ingress

metadata:
  name: foo
  annotations:
    kubernetes.io/ingress.class: "gce"

字符串
将以GCE控制器为目标,强制nginx控制器忽略它,而像

metadata:
  name: foo
  annotations:
    kubernetes.io/ingress.class: "nginx"

第二个问题

由于您正在使用Google Cloud Platform,我可以向您提供有关Google中Kubernetes实现的更多细节。
考虑到:
默认情况下,Kubernetes Engine为通过Ingress暴露的HTTP应用程序分配临时外部IP地址。
当然,你也可以使用静态IP地址为你的入口资源,有一个官方的一步一步的指导,告诉你如何创建一个HTTP负载平衡与入口资源的使用,并链接到它的静态IP或如何促进一个“短暂的”已经在使用的IP是静态的。
尝试通过它,如果你面临一些问题,更新的问题,并要求!

xbp102n0

xbp102n03#

对于nginx-ingress控制器,您需要在服务上设置外部IP:

spec:
  loadBalancerIP: "42.42.42.42"
  externalTrafficPolicy: "Local"

字符串

o2g1uqev

o2g1uqev4#

在kubernetes中运行多个ingress控制器是完全可以的,但是它们需要知道它们应该示例化哪些Ingress对象。这是通过一个特殊的注解来完成的,如:

kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: "nginx"

字符串
这表明该入口预期由并且仅由Nginx入口控制器提供。
至于IP,Some cloud providers allow the loadBalancerIP to be specified.可以控制服务的公共IP。

ie3xauqp

ie3xauqp5#

仅适用于GCE,不适用于Ingress-Nginx
创建静态IP

gcloud compute addresses create my-ip --global

字符串
描述静态IP(这将帮助您了解静态IP)

gcloud compute addresses describe  ssl-ip --global


现在添加这些注解:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: "gce" # <----
    kubernetes.io/ingress.global-static-ip-name: my-ip # <----


应用入口

kubectl apply -f infress.yaml


(Now等待2分钟)运行此将反映新ip

kubectl get ingress

相关问题