在k3s中启用其自带ingress——traefik的web-ui

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在k3s中启用其自带ingress——traefik的web-ui相关的知识,希望对你有一定的参考价值。

参考技术A 之前初试 k3s ,发现其自带 traefik 实现 ingress 。与使用 nginx 实现 ingress 不同, traefik 无需额外部署 ingress-controller ,自己就可以做到服务发现。
traefik 自带一个 web-ui ,但是 k3s 中的默认没开启,本博客关注如何开启 traefik 自带的 web-ui ,并配置一个 ingress 指向此 web-ui 。
k3s 相关的内容可见笔者另一篇博客 《k3s初探》
我用的k3s版本为 v1.17.0+k3s.1 ,其自带traefik版本为 1.7.19

ingress 有点像 apache 或 nginx 中的 VirtualHost ,可以做到一个 ip 处理指向多个域名的请求,借助 http 头中的 Host 实现七层负载均衡

traefik 自己的一句话自我介绍为:

其官网 截图 如下:

默认情况下 k3s 安装 traefik 没有启用其 dashboard
先看配置在哪里, kubectl describe 观察可得如下信息,略去不关注的:

可知使用了配置文件 /config/traefik.toml ,其挂载为一个 ConfigMap , describe 得到如下:

修改前, traefik 启动日志如下:

先修改一下,在前述文件最后追加如下内容:

这种情况下,依然无法访问。见 官网关于web的配置文档 被标记为 deprecated ,也可见其启动日志,其中略去重复部分

见 官网关于api的配置文档 ,改用 api ,前述文件最后追加内容改为:

另一种方法,可见 github上traefik的示例 :

即,增加 traefik 启动参数 --api
两种方法均可成功访问,未见日志中有新内容。

至此即可着手配置一个 ingress , Deployment 部分信息如下:

于是在 service 中也增加一个指向 pod 的 dash 的端口,起名暂定 dash :

最后即可写出 Ingress 的配置:

如果使用 k3s v1.0.0 ,其自带 traefik v1.7.14 。 Service 中名为 metrics 的端口指向 Pod 中的 dash

可知 service 中端口 metrics 对应到 pod 中端口 dash ,据此, ingress 的 yaml 中 servicePort 字段不同:

以上是关于在k3s中启用其自带ingress——traefik的web-ui的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes 集群部署 Ingress Traefik v2.4

Kubernetes 集群部署 Ingress Traefik v2.4

Kubernetes 集群部署 Ingress Traefik v2.4

如何在 K3s 中启用 Traefik Dashborad

K3s-轻量级K8s、Kuboard面板,安装使用教程

使用 WLS2 在 Docker 桌面上启用 Ingress 控制器