Kubernetes Google容器引擎中保留IP的负载平衡

Kubernetes Google容器引擎中保留IP的负载平衡,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我想在谷歌容器引擎上托管一个网站(简单的nginx+phpfpm)。我构建了一个复制控制器来控制nginx和phpfpmpod。我还构建了一个可以公开站点的服务 如何将我的服务链接到公共(和保留)IP地址,以便Web服务器看到客户端IP地址 我尝试创建一个入口。它通过一个额外的http头提供客户端IP。不幸的是,ingress还不支持保留IP: kind: Ingress metadata: name: example-ingress spec: rules: - host: exa

我想在谷歌容器引擎上托管一个网站(简单的nginx+phpfpm)。我构建了一个复制控制器来控制nginx和phpfpmpod。我还构建了一个可以公开站点的服务

如何将我的服务链接到公共(和保留)IP地址,以便Web服务器看到客户端IP地址

我尝试创建一个入口。它通过一个额外的http头提供客户端IP。不幸的是,ingress还不支持保留IP:

kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: example.org
    http:
      paths:
      - backend:
          serviceName: example-web
         servicePort: 80
        path: /
我还尝试使用保留的IP创建服务。这给了我一个公共IP地址,但我认为客户端IP丢失了:

apiVersion: v1
kind: Service
metadata:
  name: 'example-web'
spec:
  selector:
    app: example-web
  ports:
    - port: 80
      targetPort: 80
  loadBalancerIP: "10.10.10.10"
  type: LoadBalancer
我会手动设置HTTP Loadbalancer,但我没有找到将集群IP配置为Loadbalancer后端的方法


对我来说,这似乎是一个非常基本的用例,并且阻碍了在生产中使用容器引擎。我错过了什么?我错在哪里?

当您在google容器引擎中运行时,您可以为静态IP设置一个。将为您添加
X-Forwarded-
标题

使用类型设置kubernetes服务,并添加一个
nodePort
字段。这样无论pod在何处运行,都可以通过每个节点IP地址上的kubernetes代理访问
nodePort

apiVersion: v1
kind: Service
metadata:
 name: 'example-web'
spec:
 selector:
   app: example-web
 ports:
   - nodePort: 30080
     port: 80
     targetPort: 80
 type: NodePort

在端口30080上为您的实例组(节点)创建一个HTTP运行状况检查。

刚刚被告知入口控制器将在离开测试版之前分配静态IP。