0

我有一个 GKE 集群,它在端口 80 上运行 java spring boot docker 映像。我已将其公开为具有多个端口映射的负载均衡器,例如 80 -> 80 和 443 -> 80。

我可以看到正在服务的 http 和 https URL,但我只能在 http 端口上访问我的服务,但无法在 https 上访问。我收到“此站点无法提供安全连接”。

我知道我需要在此负载均衡器上放置一个证书以在 https 上公开,并且我有一个谷歌管理的证书。

我的问题是我不知道如何在负载均衡器上安装此证书,以便我也可以在 https 上访问我的应用程序。

4

1 回答 1

0

由于您使用的是带有 google 托管证书的 GKE ingress,因此您无需在负载均衡器中手动配置它,它可以由 ingress 完成。

官方文档中,您可以验证使其工作的所有步骤。

有2个先决条件

  1. 您需要拥有一个域
  2. 您应该创建一个静态 IP 地址。

您可以使用以下 yaml 创建证书:

apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
  name: certificate-name
spec:
  domains:
    - domain-name1

并为您的应用程序创建一个服务作为 NodePort,例如:

apiVersion: v1
kind: Service
metadata:
  name: service-name
spec:
  selector:
    key: value
  type: NodePort
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

最后,您可以使用以下示例创建入口:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-name
  annotations:
    kubernetes.io/ingress.global-static-ip-name: address-name
    networking.gke.io/managed-certificates: certificate-name
spec:
  backend:
    serviceName: service-name
    servicePort: service-port

如果您想将自我证书迁移到谷歌管理的证书,您可以按照以下步骤操作

于 2020-10-05T11:37:41.413 回答