乐趣区

关于kubernetes:如何在-K3s-中启用-Traefik-Dashborad

作者简介
王海龙,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。

Traefik v1 启用 Dashborad

默认状况下,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/K…
cat >> /var/lib/rancher/K3s/server/manifests/traefik-config.yaml << EOF
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: traefik
  namespace: kube-system
spec:
  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.yaml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: dashboard
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`traefik.example`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
      kind: Rule
       services:
        - name: api@internal
          kind: TraefikService

部署胜利后,可通过 http://traefik.example/dashbo… 拜访 Dashboard:

  • 参考文献:traefik-helm-chart:
    https://github.com/traefik/tr…
  • 理解更多 Traefik Dashboard 配置:
    https://doc.traefik.io/traefi…
退出移动版