按主机名动态路由到特定 StateFulSet POD

fab*_*ols 6 kubernetes kubernetes-ingress kubernetes-statefulset

我有一个有 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'

Run Code Online (Sandbox Code Playgroud)

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

Kar*_*och 2

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

使用去: