如何在 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/K3s/helm/_index/

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/dashboard/ 訪問 Dashboard:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章