繁体   English   中英

Pulumi GKE Ingress SSL

[英]Pulumi GKE Ingress with SSL

我正在尝试使用#Pulumi 进行设置

  • #Ingress 我的#GKE 服务
  • 与 HTTPS 负载均衡器
  • 使用 Google 管理的 SSL 证书。 由于某种原因,Ingress 创建永远停留在“Creating Ingress”。

我正在使用 GCE Ingress Controller。有没有我可以参考的工作示例? 如果您需要更多信息,请随时询问,我很乐意提供。 下面是我到目前为止尝试过的代码片段(经过无数次试验后到达这个 state)。 我错过了什么?

#kube.netes #gcp

const authDeploymentService = new k8s.core.v1.Service(authDeploymentName,
            {
                metadata: {
                    name: "auth-svc",
                    labels: authDeploymentAppLabels,
                    namespace: namespaceName,
                },
                spec: {
                    type: "LoadBalancer",
                    ports: [{ port: 80, targetPort: 8080 }],
                    selector: authDeploymentAppLabels,
                },
            },
            {
                provider: clusterProvider,
                dependsOn: [authDeployment]
            }
        );


        const authServiceManagedCert = new gcp.compute.ManagedSslCertificate("auth-cert-001", {
            name: "auth-cert-001",
            project: myGcpProject.projectId,
            description: "Managed SSL Certificate For auth service",
            managed: {
                domains: [
                    "mydomain.com"
                ]
            }
        });

        const managedCertConfigMap = new k8s.core.v1.ConfigMap("managed-certificate-config", {
            data: {
                "1": pulumi.interpolate`{"Key":{"Namespace":"${namespaceName}","Name":"${authServiceManagedCert.name}"},"Value":{"ExcludedFromSLO":false,"SoftDeleted":false,"SslCertificateName":"${authServiceManagedCert.id}","SslCertificateBindingReported":true,"SslCertificateCreationReported":true}}}`
            },
            metadata: {
                name: "managed-certificate-config",
                namespace: "kube-system",
            }
        })

        const ingress = new k8s.networking.v1beta1.Ingress(authDeploymentName + "-ingress", {
            metadata: {
                namespace: namespaceName,
                annotations: {
                    "ingress.gcp.kubernetes.io/pre-shared-cert": authServiceManagedCert.name,
                    "networking.gke.io/managed-certificates": authServiceManagedCert.name
                }
            },
            spec: {
                ingressClassName: "gce",
                backend: {
                    serviceName: authDeploymentService.metadata.name,
                    servicePort: 80
                },
                tls: [
                    {
                        hosts: ["mydomain.com"],
                    }
                ],
                rules: [
                    {
                        host: "mydomain.com",
                        http: {
                            paths: [
                                {
                                    path: "/",
                                    backend: {
                                        serviceName: authDeploymentService.metadata.name,
                                        servicePort: authDeploymentService.spec.ports[0].port,
                                    },
                                }
                            ],
                        },
                    },
                ]
            }
        },
            {
                provider: clusterProvider,
                dependsOn: [managedCertConfigMap]
            });

好的,以防万一其他人无意中发现了这个问题,感谢这篇文章,我找到了一个关键输入……我使用的是networking/v1beta (显然已弃用)而不是networking/v1 更改为 v1 后,我开始看到自动创建的不同行为,例如后端、前端、目标代理等。

我只希望 Pulumi 更新其文档以反映这一点,这样像我这样的人就不会挣扎。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM