Geo*_*rré 7 kubernetes google-kubernetes-engine kubernetes-ingress
我们在 GKE(谷歌 kubernetes 引擎)上运行 API 服务器。我们使用 Google Cloud Endpoints 和 API 密钥处理我们的授权。我们将每个 API 密钥的某些 IP 地址列入白名单。为了完成这项工作,我们必须从负载均衡器转换为入口控制器,以暴露我们的 API 服务器。IP 白名单不适用于负载均衡器服务。现在我们有一个类似于这样的入口设置:
apiVersion: v1
kind: Service
metadata:
name: echo-app-nodeport
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: esp-echo
type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echo-app-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "RESERVED_IP"
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- secretName: SECRET_NAME
backend:
serviceName: echo-app-nodeport
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
此设置运行良好,IP 白名单工作正常。现在我关心的主要是 NodePort,它似乎需要让入口控制器工作。我阅读了多个来源[1] [2],强烈建议不要使用 NodePorts 来公开您的应用程序。然而,我发现的大多数示例都使用了这个 NodePort + Ingress 组合。我们可以安全地使用此设置还是应该迁移到其他入口控制器(NGINX、Traefik 等)?
您可以为所有工作负载 Pod 只使用 ClusterIP 类型的服务,并使用一个 LoadBalancer 服务将入口控制器本身暴露在集群之外。这样您就可以完全避免 NodePort 服务。
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |