带路由扇出的 Kubernetes - 对服务设置的基本了解
Kubernetes with route fanout - Basic understanding of Service setup
我对我对 k8s 集群设置的基本理解有疑问。
我在 Hetzner-cloud 上有一个 K8s 运行 并分配了一个“物理”Loadbalancer
(可以通过服务上的 annotations
进行控制。)
我使用 nginx(或 traefik)作为我的 ingress-controller
.
如有错误请指正:
- 我在与
ingress-controller
相同的 namespace
中使用 annotations
创建服务 Loadbalancer
对吗?
- 然后我在我的
default
命名空间中创建了一个带有标签 kubernetes.io/ingress-controller=nginx
的 ingress
,其设置指向我在 default
命名空间中的服务(一个用于前端,一个用于后端)
这是正确的设置方法吗?
1.- 不。Ingress Controller 和您的工作负载不必位于同一个命名空间中。事实上,您将在与您的工作负载不同的命名空间中拥有 Ingress Controller 运行。
2.-是的。一般来说,你的 Ingress
规则,意味着你的 Ingress
对象,意味着你的 Ingress
yaml 和你的 Service
必须在同一个命名空间中。所以 Ingress
无法传递命名空间。
注意:有一种方法可以让 Ingress
对象将流量发送到不同命名空间中的 Service
。
I create the service Loadbalancer with the annotations in the same
namespace of my ingress-controller right?
理想情况下,您的入口控制器将 运行 在不同的命名空间中,您的工作负载不得 运行。
您应该只保留 Nginx 服务,type : Loadbalancer
您工作负载的其他服务应该是 ClusterIP
。
所以你的所有流量都从一个点进入集群。您的流程将类似于
DNS > LB > Ingress > Service > Pods > Container
Then I create an ingress with label
kubernetes.io/ingress-controller=nginx in my default namespace with
the settings to point to my services in the default namespace (one for
frontend, one for backend)
你提到 label 理想情况下,它应该是 annotation kubernetes.io/ingress-controller=nginx
.
是的,非常完美。您可以根据要公开公开的不同服务的要求,使用不同的注释规则创建不同的入口。
将您的工作负载保持在控制器的 默认 命名空间中,如果您还需要设置监控工具,您将来也可以使用不同的命名空间,例如 ingress-controller
您可以创建命名空间并将其仅用于监控。
我对我对 k8s 集群设置的基本理解有疑问。
我在 Hetzner-cloud 上有一个 K8s 运行 并分配了一个“物理”Loadbalancer
(可以通过服务上的 annotations
进行控制。)
我使用 nginx(或 traefik)作为我的 ingress-controller
.
如有错误请指正:
- 我在与
ingress-controller
相同的namespace
中使用annotations
创建服务Loadbalancer
对吗? - 然后我在我的
default
命名空间中创建了一个带有标签kubernetes.io/ingress-controller=nginx
的ingress
,其设置指向我在default
命名空间中的服务(一个用于前端,一个用于后端)
这是正确的设置方法吗?
1.- 不。Ingress Controller 和您的工作负载不必位于同一个命名空间中。事实上,您将在与您的工作负载不同的命名空间中拥有 Ingress Controller 运行。
2.-是的。一般来说,你的 Ingress
规则,意味着你的 Ingress
对象,意味着你的 Ingress
yaml 和你的 Service
必须在同一个命名空间中。所以 Ingress
无法传递命名空间。
注意:有一种方法可以让 Ingress
对象将流量发送到不同命名空间中的 Service
。
I create the service Loadbalancer with the annotations in the same namespace of my ingress-controller right?
理想情况下,您的入口控制器将 运行 在不同的命名空间中,您的工作负载不得 运行。
您应该只保留 Nginx 服务,type : Loadbalancer
您工作负载的其他服务应该是 ClusterIP
。
所以你的所有流量都从一个点进入集群。您的流程将类似于
DNS > LB > Ingress > Service > Pods > Container
Then I create an ingress with label kubernetes.io/ingress-controller=nginx in my default namespace with the settings to point to my services in the default namespace (one for frontend, one for backend)
你提到 label 理想情况下,它应该是 annotation kubernetes.io/ingress-controller=nginx
.
是的,非常完美。您可以根据要公开公开的不同服务的要求,使用不同的注释规则创建不同的入口。
将您的工作负载保持在控制器的 默认 命名空间中,如果您还需要设置监控工具,您将来也可以使用不同的命名空间,例如 ingress-controller
您可以创建命名空间并将其仅用于监控。