对于如何设置k8s集群,我有一些基本的理解问题。
我有一个运行在Hetzner上的K8s,并分配了一个“物理”Loadbalancer (它可以通过服务上的annotations来控制)。我使用nginx (或traefik)作为我的ingress-controller。
如果我错了,请纠正我:
,这是设置这个的正确方式吗?
发布于 2021-08-01 16:54:07
在ingress-controller的同一个名称空间中创建带有注释的服务负载均衡器,对吗?
不,理想情况下,您的入口控制器将运行在不同的名称空间中,您的工作负载不能在其中运行。
您应该只保留Nginx服务和type : Loadbalancer,其他的工作负载服务应该是ClusterIP。
所以你所有的流量都是从一个点进入集群的。你的流量就像
DNS > LB > Ingress > Service > Pods > Container然后,我在默认名称空间中创建一个带有标签kubernetes.io/ ingress
=nginx的入口,设置指向默认名称空间中的服务(一个用于前端,一个用于后端)
您提到了label --理想情况下,它应该是注释 kubernetes.io/ingress-controller=nginx。
是的,很完美。您可以根据要公开的不同服务的需求,使用不同的注释规则创建不同的入口。
将您的工作负载保留在默认的命名空间中,您将来可以使用不同的名称空间(如ingress-controller ),如果您需要设置监视工具,也可以创建名称空间并仅用于监视。
发布于 2021-08-01 14:12:23
1.-不入口控制器和工作负载不必位于同一个名称空间中。实际上,您将在一个独立的名称空间中运行,而不是在工作负载中运行。
2.-是的一般来说,您的Ingress规则,即您的Ingress对象,意味着您的Ingress yaml和您的Service必须位于同一个名称空间中。因此,Ingress不能转换名称空间。
注意:有一种方法可以让一个Ingress 对象将流量发送到不同名称空间中的 Service 。
https://stackoverflow.com/questions/68610442
复制相似问题