我正在学习traefik
和ingressroute
。最让我困惑的是这两部分是如何联系在一起的。
在部署了traefik
和我自己的服务之后,我可以简单地创建以下ingressroute
以使其工作:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: my-service-ir
namespace: my-service-ns
spec:
entryPoints:
- web
routes:
- match: Path(`/`)
kind: Rule
services:
- name: my-service
port: 8000
但是ingressroute
与traefik
没有任何共享:不在同一个命名空间中,没有选择器等。在我看来,ingressroute
可以神奇地找到traefik
并应用于traefik
。我很好奇发生了什么事。
当您在kubernetes集群中部署trafik时,您将使用如下所示的rbac-k8s清单。如果你使用头盔,那么这些都出现在引擎盖下。
这些rbac实际上创建了新的资源类型,即这里的IngressRoute
。它们应用于集群级别,如链接ClusterRole
所示。这为它们提供了ClusterLevel特权。这就是您在命名空间中看不到任何特殊内容的原因。
您可以在这里查看示例任务,它将对该问题有更多的了解。