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

时间:2019-09-06 14:59:26

标签: 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 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:

  • 复制整个图表并将我的ingress.yaml移到templates文件夹中
  • 使用kubectl
  • 创建提供Ingress资源的Helm Chart

从以上三个方面,我最喜欢最后一个,但也许还有另一种方式(也许有一些配置选项)?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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