kubernetes - 是否可以让 kubernetes 入口 treafik 适用于所有命名空间
问题描述
现在我正在使用treafik向外部公开我的pods服务,但是我阅读了treafik部署文档并发现仅在一个命名空间中的treafik转发请求。例如,A命名空间请求无法转发到B命名空间,我应该部署多treafik在 kubernetes 集群中?现在我有 6 个命名空间,我应该部署 6 个 treafik 吗?它是有线的,关于这种情况的最佳做法是什么?我从互联网上找到,但没有发现任何关于此的内容。
解决方案
如果我理解正确的话,很遗憾这是不可能的,这样做是有意识的决定:
跨命名空间引用将是权限提升攻击的主要来源。
但是,如果您不关心安全规则,则有一种解决方法(请记住,它不适用于每个平台)。您需要使用 Kubernetes 类型externalName
的服务,它会引用其他命名空间中的服务。请参见下面的示例:
一个。你serviceA
有namespaceA
湾。创建serviceB
于namespaceB
spec:
...
type: ExertalName
externalName: serviceA.namespaceA.svc.cluster.local
C。将入口规则添加到ingressB
innamespaceB
- path: /****
backend:
serviceName: serviceB
servicePort: ***
但是,如果您只为每个命名空间部署多个 ingress treafik 会更安全。
我希望它有所帮助。
推荐阅读
- google-chrome - 对 Web 蓝牙的 chrome 支持在不同的 Android 6/7 设备上仍然不是很普遍吗?
- sql - 访问中的sql查询问题
- selenium - 在 Robotframework 中进行 AutoIT Widows 身份验证后,焦点未回到浏览器
- python - Python:如何向数据框列的条目添加零?
- c# - JoinBlock 后如何完成一个 Block
- octave - octave 支持本地函数吗?
- c# - 仅在应用程序区域中移动消息框
- swift - 在 Swift 中将 WMS 图层添加到此处的地图
- javascript - require() 是如何工作的?
- oracle - JPA根据请求参数更改实体表名称