Google Cloud Load Balancer 设置不断被重置

Google Cloud Load Balancer 设置不断被重置

我目前正在设置一个环境,以使用 kubernetes 在 google 云平台上部署应用程序。

NodePort我尝试使用以下 yaml 配置设置 Ingress 来连接到我的服务:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    ingress.gcp.kubernetes.io/pre-shared-cert: "my-certificate"
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /*
        backend:
          serviceName: website
          servicePort: 80
      - path: /api/*
        backend:
          serviceName: api
          servicePort: 80

因此example.com,所有路线都转到我的website服务,所有请求都example.com/api/转到我的 API 应用程序。

唯一的问题是我希望所有对我的应用程序的请求都重写为 而/<endpoint>不是/api/<endpoint>。就在几天前,gcp 添加了为负载均衡器指定其他重定向和重写规则的功能,但还不能在 YAML 中进行配置(如下所示:https://github.com/kubernetes/ingress-gce/issues/109)。

现在我去通过云控制台手动配置主机重写。保存后,设置似乎在大约 10 分钟内恢复,我不知道为什么。

我也想设置一个 http 到 https 重定向规则,但我无法创建这些规则,因为它们似乎也被恢复了。

有人能解释一下这是为什么吗?

我不确定这是否重要,但我曾经kubectl apply -f my-ingress.yaml创建过入口

答案1

@Alex Moore 所说的 - 因为 GCP LB 是一个 K8s 对象,所以它控制其配置。

如果您想使用无法在 K8s 内部配置的功能,您应该在 K8s 之外创建 LB,创建 nodePort 服务并将 GCP LB 指向节点。

相关内容