apache-spark - 通过 ingress 访问所有 kubernetes statefulset pod
问题描述
使用具有 3 个 pod 的 STS:“pod-0、pod-1、pod-2”来创建 Apache Spark 集群,每个 pod 都是一个工作人员,其日志可通过 HTTP 获得。
为了查看日志,我想通过 HTTP 入口访问所有 pod,例如:
“https://pod-0.my-ingress.domain”或“https://my-ingress.domain/pod-0”
是否可以通过声明一个 Ingress 来自动执行此操作?
解决方案
在 kubernetes 中没有开箱即用的解决方案,但是您可以为 statefulset 中的每个 pod 创建服务,然后在入口中引用它:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sts-ingress
spec:
rules:
- http:
paths:
- path: /pod-0
pathType: Prefix
backend:
service:
name: pod-0
port:
number: 80
- path: /pod-1
pathType: Prefix
backend:
service:
name: pod-1
port:
number: 80
您可以利用操作员模式来自动化它,此用例已经存在元控制器示例:https ://github.com/metacontroller/metacontroller/tree/master/examples/service-per-pod
推荐阅读
- css - IE11 中的模糊效果以创建磨砂玻璃
- java - MockMVC 测试 java.lang.AssertionError:预期状态:201 实际:404
- javascript - 使用层次结构 css(没有 id/类)和 javascript 获取 td 表的值
- css - 如何通过 CSS 去除色带边框?
- python - 如何使用需要用户定义类型表参数的 SQLAlchemy 调用存储过程
- selenium - 如何让 Selenium Webdriver 以不同的用户身份在 Firefox 浏览器上运行?
- shell - 如何修复 bash 脚本参数从并行循环到顺序循环
- php - 一天中的某个时间过去后,如何重置用户的进度?
- javascript - 如何将javascript数组发送到php
- asp.net - 如何在没有客户端交互的情况下在 ASP.NET SERVER(或任何)上运行代码?