Kubernetes使用Nginx Ingress暴露Dashboard

作者: ygqygq2 分类: 云计算/虚拟化,系统/运维 发布时间: 2018-09-20 17:45

Kubernetes使用Nginx Ingress暴露Dashboard

1. 环境说明

  • 可用的kubernetes集群
  • 可用的nginx ingress controller
  • 可用的dashboard

关于kubernetes、dashboard和nginx ingress在前面文章中,已有介绍。
《centos7使用kubeadm安装kubernetes 1.11版本多主高可用》
《kubernetes 1.11配置使用nginx ingress》
也可以使用helm快速搭建nginx ingress和dashboard。
stable/kubernetes-dashboard
stable/nginx-ingress

2. 成功要点

ingress配置啥的这里不详细介绍 。关于暴露dashboard成功的关键,在于新版本dashboard默认使用https提供服务。所以,在ingress中要配置如下annotations参数。

3. 为什么

而为什么是这个nginx.ingress.kubernetes.io前缀呢?

来查查nginx ingress的service,是不是有这个metadata

那我们想当然的尝试加上kubernetes.io/ingress.class: nginx

再去dashboard的ingress配置修改成这个:

然后发现,dashboard访问不了了,说明annotations没有生效。那看来service这里的annotations不是决定性因素。

那我们来分析下,最后生效的是nginx-ingress-controller里的程序解析的,那试试查他的程序运行命令或者帮助:

果然发现了决定性参数--annotations-prefix

4. 小结

原来一直以来,我忽视掉了这个关键参数。当然,有人会说,像linux一样,用到那么多命令,那么多参数,怎么可能记得住,都看过。所以,我觉得一项很重要的习惯或者技能,是学会去摸索,去实践排查,这样我们会的东西,其实比表面看起来要多得多。

参考资料:
[1] https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.