首页 > 解决方案 > 将 GKE 与 HTTP 代理一起使用

问题描述

是否可以在 HTTP 代理后面运行私有 GKE 集群(私有端点和节点)?

GKE 节点需要互联网连接才能从公共存储库中提取 docker 映像。问题是,我们不想登录每个 GKE 节点并配置http_proxy环境变量并在每次集群升级后重复此操作。

是否可以为每个节点自动设置http_proxy环境变量,或者是否有更好的方法http_proxy在私有 GKE 集群上进行配置?

标签: kubernetesgoogle-cloud-platformgoogle-kubernetes-enginegke-networking

解决方案


您可以使用DaemonSet部署需要在所有或某些节点上运行的正在进行的后台任务(自动设置 http_proxy)。例子:

kind: DaemonSet
apiVersion: extensions/v1beta1
metadata:
  name: startup-script
  labels:
    app: startup-script
spec:
  template:
    metadata:
      labels:
        app: startup-script
    spec:
      hostPID: true
      containers:
        - name: startup-script
          image: gcr.io/basic-app-with-example/startup-script:v1
          imagePullPolicy: Always
          securityContext:
            privileged: true
          env:
          - name: STARTUP_SCRIPT
            value: |
              #! /bin/bash
              list of the command that you need to execute in node
              export http_proxy='http://<host>:<port>'

您可以在 GCP 中使用 Cloud NAT 来允许您的私有 GKE 集群访问公共存储库。


推荐阅读