【发布时间】:2020-01-09 11:23:06
【问题描述】:
我想用 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
从上面的3个我最喜欢最后一个,但也许还有另一种方式(可能有一些配置选项)?
【问题讨论】:
-
您能否详细说明将创建哪些 Ingress 资源?是否有许多不同的人在使用这个集群来创建 Ingress 资源,还是只有你?您是否会超时创建许多 Ingress 资源来公开您在集群上运行的不同工作负载,还是只是一件事?您是否正在创建 Ingress 资源以公开一组 K8s 工作负载,然后您希望将整个事情(应用程序部署 YAML、Ingress 配置等)打包为一个工件,您可以在其他地方重复安装,甚至分发给其他人安装在自己的 K8s 上?
-
我会说绝对不要第一个选择复制整个图表,99% 肯定你应该只使用 kubectl,但根据你对我之前评论中问题的回答,有 1%有机会创建一个单独的 Helm 图表是有意义的。
-
考虑一下我的 k8s 设置了一个
Hello world,只有 1 个 Ingress、几个服务和 Pod。 nginx-ingress 图表会安装除 Ingress 资源 (kind: Ingress) 之外的所有内容。
标签: kubernetes kubernetes-helm kubernetes-ingress nginx-ingress