Kubernetes 使用图表稳定/nginx入口设置带头盔的入口

Kubernetes 使用图表稳定/nginx入口设置带头盔的入口,kubernetes,kubernetes-helm,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Helm,Kubernetes Ingress,Nginx Ingress,我想用Helm在我的Kubernetes集群上安装Ingress,所以我这么做了 $> helm install stable/nginx-ingress ... a lot of output NOTES: The nginx-ingress controller has been installed. It may take a few minutes for the LoadBalancer IP to be available. You can watch the status b

我想用Helm在我的Kubernetes集群上安装Ingress,所以我这么做了

$> helm install stable/nginx-ingress
... a lot of output
NOTES:
The nginx-ingress controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace default get services -o wide -w solemn-toucan-nginx-ingress-controller'

An example Ingress that makes use of the controller:

  apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    annotations:
      kubernetes.io/ingress.class: nginx
    name: example
    namespace: foo
  spec:
    rules:
 ...
因为我正在用头盔安装所有东西,所以我不清楚应该如何安装入口。正如您在Helm生成的输出中所看到的,它们显示了一个示例
ingres
,但不是我应该如何提供它

我能想到2点:

  • 复制整个图表并将my ingress.yaml移动到
    templates
    文件夹中
  • 使用kubectl
  • 创建提供入口资源的头盔图表

从以上3个方面来看,我最喜欢最后一个,但可能还有另一种方法(可能有一些配置选项)

这里的一个粗略类比是,使用Helm安装nginx入口控制器就像使用
apt get
brew
在机器上安装nginx一样。但您不会使用apt get为应用程序创建nginx配置并将其安装到该计算机上


如果您只有一个Hello World应用程序,请直接使用
kubectl
应用入口资源。如果您想要将构成应用程序的所有资源(服务、入口、部署、角色、角色绑定、ServiceAccounts等)封装到一个工件中,以便其他人可以在自己的K8s集群上部署自己的应用程序副本,头盔将是一个包装和分销选项,你可以探索使用。您可以将入口资源的模板放在Helm图表中,您没有理由尝试修改nginx控制器的Helm图表。

这里的一个粗略类比是,使用Helm安装nginx入口控制器就像使用
apt get
brew
在机器上安装nginx一样。但您不会使用apt get为应用程序创建nginx配置并将其安装到该计算机上


如果您只有一个Hello World应用程序,请直接使用
kubectl
应用入口资源。如果您想要将构成应用程序的所有资源(服务、入口、部署、角色、角色绑定、ServiceAccounts等)封装到一个工件中,以便其他人可以在自己的K8s集群上部署自己的应用程序副本,头盔将是一个包装和分销选项,你可以探索使用。您可以将入口资源的模板放在头盔图表中,您没有理由尝试修改nginx控制器头盔图表。

Helm install stable/nginx Ingress
将安装入口控制器,但不会为您的服务(应用程序)创建入口。如果您有一个服务并希望使用Helm Charts部署它,则需要在该服务的Helm Charts的template文件夹中添加Ingress.yaml。例如,您可以选中helm install stable/nginx ingress将安装入口控制器,但它不会为您的服务(应用程序)创建入口。如果您有一个服务并希望使用Helm Charts部署它,则需要在该服务的Helm Charts的template文件夹中添加Ingress.yaml。例如,您可以检查

您能否详细说明将创建哪些入口资源?是否有许多不同的人使用这个集群来创建入口资源,还是只有你?您是否会超时创建许多入口资源,以暴露您在集群上随时间运行的不同工作负载,或者仅仅是一件事?您是否正在创建入口资源以公开某组K8s工作负载,然后在其中打包整个内容(应用程序部署YAML、入口配置等)作为一个单独的工件,您可以在其他地方重复安装,甚至分发给其他人安装在他们自己的K8上?我想说,绝对不要复制整个图表的第一个选项,99%确定您应该只使用kubectl,但取决于您对我之前评论中问题的回答,创建一个单独的头盔图有1%的可能性。考虑我的K8S设置一个代码> hello World <代码>,只需要1个入口,一对服务和吊舱。nginx入口图表安装除入口资源(
kind:ingres
)之外的所有内容。您能否详细介绍将创建哪些入口资源?是否有许多不同的人使用这个集群来创建入口资源,还是只有你?您是否会超时创建许多入口资源,以暴露您在集群上随时间运行的不同工作负载,或者仅仅是一件事?您是否正在创建入口资源以公开某组K8s工作负载,然后在其中打包整个内容(应用程序部署YAML、入口配置等)作为一个单独的工件,您可以在其他地方重复安装,甚至分发给其他人安装在他们自己的K8上?我想说,绝对不要复制整个图表的第一个选项,99%确定您应该只使用kubectl,但取决于您对我之前评论中问题的回答,创建一个单独的头盔图有1%的可能性。考虑我的K8S设置一个代码> hello World <代码>,只需要1个入口,一对服务和吊舱。nginx入口图表安装除入口资源(
kind:ingres
)之外的所有内容。您的链接不起作用。此外,为了能够将Ingress.yaml添加到templates文件夹,意味着您必须复制整个图表,而这并不是链接所确定的。我的意思不是说你需要复制整个图表,在你的例子中是稳定的/nginx入口。如果使用
Kubectl
部署应用程序,则只需在应用程序的同一文件夹中为服务创建Ingress.yaml,例如<代码>whoami应用程序。另一方面,如果使用Helm部署应用程序,则需要将Ingress.ymal添加到应用程序的模板中,而不是添加到
nginx-Ingress
的模板中