[英]Are Kubernetes Ingress objects deployed in cluster
When a Kubernetes service is exposed via an Ingress
object, is the load balancer "phisically" deployed in the cluster, ie as some pod
controller inside the cluster nodes, or is just another managed service provisioned by the given cloud provider? 当Kubernetes服务通过
Ingress
对象公开时,负载均衡器是否“集中”部署在集群中,即作为集群节点内的某个pod
控制器,还是仅由给定云提供商提供的另一个托管服务?
Are there cloud provider specific differences. 云提供商是否存在具体差异。 Is the above question true for Google Kubernetes Engine and Amazon Web Services?
对于Google Kubernetes Engine和Amazon Web Services,上述问题是否属实?
By default, a kubernetes cluster has no IngressController
at all. 默认情况下,kubernetes集群根本没有
IngressController
。 This means that you need to deploy one yourself if you are on premise. 这意味着如果您是本地人,则需要自己部署一个。
Some cloud providers do provide a default ingress controller in their kubernetes offer though, and this is the case of GKE. 一些云提供商确实在他们的kubernetes提供中提供了默认的入口控制器,这就是GKE的情况。 In their case the ingress controller is provided "As a service" but I am unsure about where it is exactly deployed.
在他们的情况下,入口控制器提供“作为服务”,但我不确定它的确切部署位置。
Talking about AWS, if you deploy a cluster using kops you're on your own (you need to deploy an ingress controller yourself) but different deploy options on AWS could include an ingress controller deployment. 谈到AWS,如果使用kops部署集群,则您自己(您需要自己部署入口控制器),但AWS上的不同部署选项可能包括入口控制器部署。
I will answer with respect to Google Cloud Engine. 我将回答Google Cloud Engine的问题。
Yes, everytime, you deploy a new ingress resource, a Load balancer is created which you can view from the section: 是的,每次部署新的入口资源时,都会创建一个负载均衡器,您可以从以下部分查看:
GCP Console --> Network services --> LoadBalancing
Clicking on the respective Loadbalancer id gives you all the details, for example the External IP, the backend service, ecc 单击相应的Loadbalancer id可为您提供所有详细信息,例如外部IP,后端服务,ecc
I would like to make some clarification concerning the Google Ingress Controller starting from its definition: 我想从其定义开始对Google Ingress控制器做一些澄清:
An Ingress Controller is a daemon, deployed as a Kubernetes Pod, that watches the apiserver's /ingresses endpoint for updates to the Ingress resource.
Ingress Controller是一个守护程序,部署为Kubernetes Pod,它监视apiserver的/ ingresses端点以更新Ingress资源。 Its job is to satisfy requests for Ingresses.
它的工作是满足对Ingress的要求。
First of all if you want to understand better its behaviour I suggest you to read the official Kubernetes GitHub description of this resource. 首先,如果你想更好地理解它的行为,我建议你阅读这个资源的官方Kubernetes GitHub 描述 。
In particular notice that: 特别注意:
It is a Daemon 这是一个守护进程
It is deployed in a pod 它部署在一个pod中
It is in kube-system namespace 它位于kube-system名称空间中
However you will not be able to "see" this resource for example running : kubectl get all --all-namaspaces
, because it is running on the master and not showed to the customer since it is a managed resource considered essential for the operation of the platform itself. 但是,您将无法“看到”此资源,例如运行:
kubectl get all --all-namaspaces
,因为它在主服务器上运行而不向客户显示,因为它是一个被认为对于操作而言必不可少的受管资源。平台本身。 As stated in the official documentation: 如官方文件中所述:
GCE/Google Kubernetes Engine deploys an ingress controller on the master
GCE / Google Kubernetes Engine在主服务器上部署入口控制器
Note that the master itself of any the Google Cloud Kubernetes clusters is not accessible to the user and completely managed. 请注意,用户无法访问任何Google Cloud Kubernetes群集的主服务器并且已完全管理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.