kubernetes - 按主机名动态路由到特定 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'
有了这个,一个GET
onappscode.example.com/0
将被路由到web-0
pod。但是,我怎样才能以动态的方式做到这一点?如果我将副本更改为 3,我将需要手动创建到 pod 的新路径路由才能web-2
访问。
解决方案
您需要一个程序(操作员)监听 Kubernetes API,并在每次有状态集合中的 pod 数量时修补入口资源。
使用去:
推荐阅读
- .htaccess - 子域重定向到 subdomain.domain.com/subdomain
- c - 除了第一个之外,所有压缩字段的 C 结构与压缩结构不同吗?
- python - 熊猫:用缺少分隔符分隔两列
- kubernetes - 塞尔登IO | sklearn_iris 和 sklearn_spacy_text | 不能在 k8s 中工作
- excel - 如何复制最后一行数据的范围并粘贴到它下面的行中
- java - Spring security:拒绝访问处理程序不起作用(xml配置+控制器方法上的预授权注释)
- c# - 无法使用锁在多线程上下文中实现数据解析
- c# - ASP.NET:从 System.Web.Caching.Cache 迁移到 Redis
- python - Openpyxl - 如何解锁工作表中的所有单元格
- yaml - 在 circleci 上构建错误(启动环境)