在 Google 容器引擎中使用保留 IP 进行负载平衡
Loadbalancing with reserved IPs in Google Container Engine
我想在 Google 容器引擎上托管一个网站(简单的 nginx+php-fpm)。我构建了一个复制控制器来控制 nginx 和 php-fpm pod。我还建立了一个可以公开网站的服务。
我如何link 我的服务到 public(和保留的)IP 地址,以便网络服务器看到客户端 IP 地址?
我尝试创建一个入口。它通过额外的 http header 提供客户端 IP。不幸的是,入口尚不支持保留 IP:
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.org
http:
paths:
- backend:
serviceName: example-web
servicePort: 80
path: /
我也尝试过使用保留 IP 创建服务。这给了我一个 public 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 负载均衡器,但我没有找到将集群 IP 配置为负载均衡器后端的方法。
这对我来说似乎是一个非常基本的用例,阻碍了在生产中使用容器引擎。我错过了什么?我哪里错了?
因为你是 运行 在 google-container-engine 你可以设置一个 Compute Engine HTTP Load Balancer for your static IP. The Target proxy 将为你添加 X-Forwarded-
headers。
使用 NodePort 类型设置您的 kubernetes 服务并添加 nodePort
字段。这样 nodePort
可以通过每个节点 IP 地址上的 kubernetes-proxy 访问,无论 pod 在哪里 运行:
apiVersion: v1
kind: Service
metadata:
name: 'example-web'
spec:
selector:
app: example-web
ports:
- nodePort: 30080
port: 80
targetPort: 80
type: NodePort
为您的实例组(节点)在端口 30080 上创建一个带有 HTTP 运行状况检查的 backend service。
我想在 Google 容器引擎上托管一个网站(简单的 nginx+php-fpm)。我构建了一个复制控制器来控制 nginx 和 php-fpm pod。我还建立了一个可以公开网站的服务。
我如何link 我的服务到 public(和保留的)IP 地址,以便网络服务器看到客户端 IP 地址?
我尝试创建一个入口。它通过额外的 http header 提供客户端 IP。不幸的是,入口尚不支持保留 IP:
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.org
http:
paths:
- backend:
serviceName: example-web
servicePort: 80
path: /
我也尝试过使用保留 IP 创建服务。这给了我一个 public 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 负载均衡器,但我没有找到将集群 IP 配置为负载均衡器后端的方法。
这对我来说似乎是一个非常基本的用例,阻碍了在生产中使用容器引擎。我错过了什么?我哪里错了?
因为你是 运行 在 google-container-engine 你可以设置一个 Compute Engine HTTP Load Balancer for your static IP. The Target proxy 将为你添加 X-Forwarded-
headers。
使用 NodePort 类型设置您的 kubernetes 服务并添加 nodePort
字段。这样 nodePort
可以通过每个节点 IP 地址上的 kubernetes-proxy 访问,无论 pod 在哪里 运行:
apiVersion: v1
kind: Service
metadata:
name: 'example-web'
spec:
selector:
app: example-web
ports:
- nodePort: 30080
port: 80
targetPort: 80
type: NodePort
为您的实例组(节点)在端口 30080 上创建一个带有 HTTP 运行状况检查的 backend service。