kubernetes - 从 k8s 入口动态添加/删除命名主机

标签 kubernetes google-cloud-platform google-kubernetes-engine kubernetes-ingress

我正在 GKE 上设置 k8s 集群。通配符 DNS *.server.com将指向一个入口 Controller 。在集群内部,会有 webserver pods,每个都暴露一个独特的服务。 Ingress Controller 将使用服务器名称路由到各种服务。

服务器几乎每天都会被创建和销毁。我想知道是否有一种方法可以在不编辑整个命名服务器列表的情况下从入口 Controller 添加和删除命名服务器。

最佳答案

看起来您计划在单个负载均衡器(==单个 Ingress 资源)上托管多个域名。如果不是,则此答案不适用。

您可以通过配置 Ingress 来做到这一点。有一长串域名,例如:

spec:
  rules:
  - host: cats.server.com
    http:
      paths:
      - path: /*
        backend:
          serviceName: cats
          servicePort: 8080
  - host: dogs.server.com
    http:
      paths:
      - path: /*
        backend:
          serviceName: dogs
          servicePort: 8080
  - [...]

如果这是您的意图,如果不编辑整个列表,就无法做到这一点 并每次都将其应用于集群。

您可以构建一个工具来构建此 list 文件,然后应用更改。 Ingress Controller 足够智能,如果现有域仍在列表中,它们将不会看到停机时间。

但是,您从列表中删除的域也将从负载均衡器的 URL 映射中删除,从而停止接受流量。

关于kubernetes - 从 k8s 入口动态添加/删除命名主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261504/

相关文章:

google-cloud-platform - 删除桶后实际对象计数不正确

google-cloud-platform - Dataflow 停止流式传输到 BigQuery 而没有错误

https - Kubernetes Google 容器引擎 HTTPS 负载均衡器错误

go - Pulumi: "pulumi plugin install resource kubernetes"失败

azure kubernetes 服务 - 私有(private)注册表上的自签名证书

java - 如何禁用DEBUG日志

docker - GKE : tensorflow_model_server: error while loading shared libraries:/usr/lib/x86_64-linux-gnu/libcuda. so.1 中的 GPU 部署:文件太短

google-compute-engine - Google 计算机引擎中/home/gke 中的未知用户

docker - 日志是否保存在Google Kubernetes上

amazon-web-services - 单个ELB经典(CLB)负载均衡器能否将流量平均分配到多个自动伸缩组?