【问题标题】:Dynamic route to a specific StateFulSet POD by hostname按主机名动态路由到特定 StateFulSet POD
【发布时间】:2020-04-03 18:33:45
【问题描述】:

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

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

【问题讨论】:

  • 这不是 ingress 的任务,而是在 pod 之间分发请求的服务,你能告诉我们服务定义吗?
  • 今天它没有附加服务...你能告诉我一个如何使用服务做到这一点的例子吗?
  • 你确定吗?因为入口指向默认命名空间中的服务调用“nginx-set”。如果您没有服务,则无法使用appscode.example.com/0 访问web-0
  • 这是一个示例,只是为了解释我的问题......那么,我该如何使用服务来做到这一点?

标签: kubernetes kubernetes-ingress kubernetes-statefulset


【解决方案1】:

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

使用 go:

【讨论】:

  • 但它会对连接进行负载平衡吗?如果是,我需要一些不同的东西,我需要能够连接到特定的 pod
猜你喜欢
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多