首页 > 解决方案 > 按主机名动态路由到特定 StateFulSet POD

问题描述

我有一个有 2 个副本的 StatefulSet。我想创建一个端点以能够访问此副本中的任何一个,将其传递主机名 ID,并且如果我将其扩展到更多副本,则新的 Pod 需要是可访问的。

我可以这样创建一个 Ingress:

apiVersion: voyager.appscode.com/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
spec:
  rules:
  - host: appscode.example.com
    http:
      paths:
      - path: /0
        backend:
          hostNames:
          - web-0
          serviceName: nginx-set
          servicePort: '80'
      - path: /1
        backend:
          hostNames:
          - web-1
          serviceName: nginx-set
          servicePort: '80'

有了这个,一个GETonappscode.example.com/0将被路由到web-0pod。但是,我怎样才能以动态的方式做到这一点?如果我将副本更改为 3,我将需要手动创建到 pod 的新路径路由才能web-2访问。

标签: kuberneteskubernetes-ingresskubernetes-statefulset

解决方案


您需要一个程序(操作员)监听 Kubernetes API,并在每次有状态集合中的 pod 数量时修补入口资源。

使用去:


推荐阅读