使用图表 stable/nginx-ingress 使用 Helm 设置 Ingress

Setup Ingress whith Helm using the chart stable/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 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 安装所有东西,所以我不清楚应该如何安装 Ingress。正如您在 Helm 生成的输出中看到的那样,它们显示了一个示例 Ingress 但没有说明我应该如何提供它。

我能想到2个:

在以上3种中我最喜欢最后一种,但也许还有另一种方法(也许有一些配置选项)?

这里粗略的类比一下,用Helm安装nginx Ingress controller就好像用apt-get或者brew在一台机器上安装nginx。但是您不会使用 apt-get 为您的应用程序创建 nginx 配置并将其安装到该机器上。

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

helm install stable/nginx-ingress 将安装 Ingress 控制器,但不会为您的服务(应用程序)创建 Ingress。如果你有一个服务并且想使用 Helm Charts 部署它,你需要在服务的 Helm Charts 的模板文件夹中添加 Ingress.yaml。例如,您可以检查 Kubernetes-dashboard