【问题标题】:Is it possible to point a GKE K8 ingress point to a LB backend是否可以将 GKE K8 入口点指向 LB 后端
【发布时间】:2019-05-22 18:22:33
【问题描述】:

我的服务设置方式如下:

部署(2 个 pod)-> 负载均衡器路由到此部署 -> 入口点终止 https,指向作为后端的负载均衡器。

到目前为止,它提供了正确的证书,但由于某些原因,它指向了“错误”的后端。在 GKE wbeconsole 上,它只是说我的后端服务不健康,一旦我点击它们,它们就不存在了。我在这里做错了什么?

[stupifatcatslaptop poc (dev)]$  kubectl get pods -o wide | grep my_project
my_project-flask-poc-696f7b57c5-54n6r         1/1       Running            0          13d       10.236.1.228   gke-qus1-shared-1-prod-default-pool-44da43de-vq4c
my_project-flask-poc-696f7b57c5-m57h7         1/1       Running            0          13d       10.236.0.16    gke-qus1-shared-1-prod-default-pool-b27de1c2-2h63
[stupifatcatslaptop poc (dev)]$ kubectl get services | grep my_project
my_project-flask-poc-lb                     LoadBalancer   {internal_ip_0}   {internal_ip_1}   8080:32133/TCP               33d
[stupifatcatslaptop poc (dev)]$ kubectl get ingress
NAME                       HOSTS                          ADDRESS          PORTS     AGE
my_project-flask-poc-ingress   my_project-flask-poc.mydomain.com   {external_ip}   80, 443   1d

这是我的入口 yaml 文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my_project-flask-poc-ingress
spec:
  tls:
  - secretName: my_project-poc-tls
  rules:
  - host: my_project-flask-poc.mydomain.com
    http:
      paths:
      - backend:
          serviceName: my_project-flask-poc-lb
          servicePort: 8080

部署yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my_project-flask-poc
  labels:
    app: my_project-flask-poc
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: my_project-flask-poc
    spec:
      containers:
        - name: my_project-flask-poc
          image: gcr.io/myprojectid/my_project-flask-poc
          ports:
            - containerPort: 8080
          volumeMounts:
          - name: secrets
            mountPath: "/etc/secrets"
            readOnly: true
      volumes:
      - name: secrets
        secret:
          secretName: my_project-secret-poc

lb 服务 yaml

apiVersion: v1
kind: Service
metadata:
  name: my_project-flask-poc-lb
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
spec:
  type: LoadBalancer
  loadBalancerIP: {someinternalip} 
  selector:
    app: my_project-flask-poc
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080

【问题讨论】:

  • 可以展示部署和服务yaml吗?
  • @chriscross 刚刚添加了配置 yamls
  • 现在我明白你的问题了。我不确定这是否可能。入口自动配置 GCLB 负载均衡器 (L7)。使用 Google Cloud Console,您可以在手动设置 L7 负载平衡器时选择您的后端服务(无需 yaml)
  • 所以也许我采取了错误的方法,我只想终止 SSL 并指向我的 LB,是否可以在不使用入口点的情况下终止 SSL?
  • 我不这么认为。另见stackoverflow.com/questions/50950590/…

标签: kubernetes google-kubernetes-engine


【解决方案1】:

对于 GKE,only GCE ingress type manages your SSL certificates 因此是唯一具有 LB 级 SSL 终止的选项。

对于 Kubernetes 的service type load balancer,您会发现网络负载均衡器已附加到集群。对于这种类型的负载均衡器,SSL termination must be handled in the backend

这是因为 SSL 证书由第 7 层应用程序管理,而网络负载均衡器在第 4 层工作,如pointed in a previously shared answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 2021-03-18
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多