如何在 K3s 中启用 Traefik Dashborad

边缘计算k3s社区

共 1067字,需浏览 3分钟

 · 2022-02-12

作者简介

王海龙,SUSE Rancher 中国社区技术经理,负责 Rancher 中国技术社区的维护和运营。拥有 8 年的云计算领域经验,经历了 OpenStack 到 Kubernetes 的技术变革,无论底层操作系统 Linux,还是虚拟化 KVM 或是 Docker 容器技术都有丰富的运维和实践经验。


前言


Traefik 是一个开源的边缘路由器,可以让你的服务发布变得轻松有趣。它负责接收你的系统请求,并使用合适的组件处理这些请求。

 

Traefik 的仪表板非常便捷,能够提供集群当前状态的详细概述,包括集群入口和服务网格路由配置的详细信息:



K3s 是经 CNCF 一致性认证的 Kubernetes 轻量级发行版,专为物联网及边缘计算设计。在 K3s 中,内置了 Traefik 作为集群的默认反向代理和 Ingress Controller。K3s 1.21 开始默认安装 Traefik v2,而之前的版本则默认安装 Traefik v1。本文将根据不同的 Traefik 版本来介绍如何启用 Traefik Dashborad。


Traffic v1 启用 Dashboard


默认情况下,K3s 1.20 及更早版本默认安装 Traefik v1,并且默认没有启用 Traefik Dashboard。如果要在 K3s 中启用 Traefik v1 的 Dashborad,我们可以借助 HelmChartConfig 来自定义由 Helm 部署的 Traefik v1 并启用 Dashboard:

 

注意:

  • 不建议手动编辑 `/var/lib/rancher/K3s/server/manifests/traefik.yaml` 来修改 Traefik 配置文件,因为 K3s 重启后会覆盖修改的内容。

  • 建议通过在 `/var/lib/rancher/K3s/server/manifests` 中创建一个额外的 `HelmChartConfig` 清单来自定义 Traefik 配置,请参考:http://docs.rancher.cn/docs/K3s/helm/_index/


cat >> /var/lib/rancher/K3s/server/manifests/traefik-config.yaml << EOFapiVersion: helm.cattle.io/v1kind: HelmChartConfigmetadata:  name: traefik  namespace: kube-systemspec:  valuesContent: |-    dashboard:      enabled: true      domain: "traefik.localhost"EOF

此时,Traefik 将会重新部署,大约 10 秒钟左右,就可以通过 spec.valuesContent.domain 配置的域名来访问Traefik Dashboard 了:



Traefik v2 启用 Dashborad


默认情况下,K3s 1.21 及更高版本默认安装 Traefik v2。出于安全考虑,默认是不公开 Traefik Dashboard 的。我们常见的公开 Dashborad 的方式主要为以下两种:


方法 1:通过端口转发来实现


kubectl -n kube-system port-forward $(kubectl -n kube-system get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:900


端口转发开启后,可以通过 http://127.0.0.1:9000/dashboard/ 来访问 Dashboard:



方法 2:自定义 IngressRoute CRD


另一种方法是通过定义和应用 IngressRoute CRD (kubectl apply -f dashboard.yaml)


# dashboard.yamlapiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:  name: dashboardspec:  entryPoints:    - web  routes:    - match: Host(`traefik.example`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))      kind: Rule       services:        - name: api@internal          kind: TraefikService


部署成功后,可通过 http://traefik.example/dashboard/ 访问 Dashboard:



  • 参考文献:traefik-helm-chart:

    https://github.com/traefik/traefik-helm-chart/

  • 了解更多 Traefik Dashboard 配置:

    https://doc.traefik.io/traefik/operations/dashboard/





About k3s


k3s 是首个进入 CNCF 沙箱项目的 K8S 发行版,同时也是当前全球用户量最大的 CNCF 认证轻量级 K8S 发行版。自2019年3月发布以来,备受全球开发者们关注,至今GitHub Star数已超过 17,000,成为了开源社区最受欢迎的边缘计算 K8S 解决方案。截至目前,K3s全球下载量超过100万次,每周平均被安装超过2万次,其中30%的下载量来自中国。


k3s 专为在资源有限的环境中运行 Kubernetes 的研发和运维人员设计,将满足日益增长的在边缘计算环境中运行在 x86、ARM64 和 ARMv7 处理器上的小型、易于管理的 Kubernetes 集群需求。k3s 的发布,为开发者们提供了以“Rancher 2.X + k3s”为核心的从数据中心到云到边到端的 K8S 即服务(Kubernetes-as-a-Service),推动 Kubernetes Everywhere。

扫码添加k3s中文社区助手

加入官方中文技术社区

官网:https://k3s.io

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报