簡體   English   中英

如何通過配置在 k3d/k3s 中公開 traefik v2 儀表板?

[英]How to expose traefik v2 dashboard in k3d/k3s via configuration?

*交叉發布到k3d github 討論<\/a>、 Rancher 論壇<\/a>中的線程以及traefik 的社區討論板<\/a><\/em>

2020 年的教程是<\/a>指編輯 traefik configmap。 它去哪兒了?

traefik 安裝說明<\/a>參考了幾種公開儀表板的方法:

  1. 這有效,但不是持久的:使用 1 次命令kubectl -n kube-system port-forward $(kubectl -n kube-system get pods --selector "app.kubernetes.io\/name=traefik" --output=name) 9000:9000<\/code>

  2. 我無法讓它工作:創建一個“IngressRoute”yaml 文件並將其應用於集群。 這可能是由於 Klipper LB 和\/或我的無知。

    traefik 部署未使用 configmap<\/h3>

    對於 2-server、2-agent 集群... kubectl -n kube-system describe deploy traefik<\/code>不顯示任何 configmap:

    沒有“traefik”配置圖<\/h3>

    而且, kubectl get -n kube-system cm<\/code>顯示:

    traefik pod 沒有使用 configmap<\/h3>

    描述吊艙也不會出現任何問題。 kubectl -n kube-system describe pod traefik-....<\/code>也沒有配置映射。

    Traefik 端口正在使用,但沒有響應<\/h3>

    但是,我確實看到了使用端口的 traefik pod 的參數:

    但是,這些端口並未暴露。 因此,我嘗試使用kubectl port-forward pods\/traefik-97b44b794-r9srz 9000:9000 8000:8000 8443:8443 -n kube-system --address 0.0.0.0<\/code> ,但是當我curl -v localhost:9000<\/code> (或 8000 或 8443)和curl -v localhost:9000\/dashboard<\/code> ,我得到“404 Not Found”。

    將終端連接到 traefik 后,我發現本地端口已打開,但似乎沒有任何響應:

    版本<\/h3>
    k3d version v4.4.7 k3s version v1.21.2-k3s1 (default)<\/code><\/pre>"

我找到了一個解決方案,希望有人能盡快找到更好的解決方案

  1. 您需要從您的 PC 控制您的 k3s 集群,而不是通過 ssh 進入主節點,因此將/etc/rancher/k3s/k3s.yaml添加到您的本地~/.kube/config (以便在最后一步中將端口轉發到您的個人電腦)
  2. 現在獲取您的 pod 名稱,如下所示:

kubectl get pod -n kube-system

並搜索traefik-something-somethingElse我的是traefik-97b44b794-bsvjn

  1. 現在這部分需要從你的本地電腦

kubectl port-forward traefik-97b44b794-bsvjn -n kube-system 9000:9000

  1. 在您喜歡的瀏覽器中獲取http://localhost:9000/dashboard/並且不要忘記第二個斜杠
  2. 享受儀表板

請注意,您必須首先在/var/lib/rancher/k3s/server/manifests/traefik.yaml通過添加啟用儀表板

dashboard:
  enabled: true

對於當前最新版本的 k3s (1.21.4):

  1. 根據 traefik 的安裝指南( https://doc.traefik.io/traefik/getting-started/install-traefik/#exposing-the-traefik-dashboard ),使用正確的 CRD 內容創建dashboard.yaml,然后運行kubectl apply -f dashboard.yaml

  2. 創建 DNS 記錄或修改主機名的主機文件 - 為您在上一步設置的 ip 映射

Jakub 的回答非常好。 但另一個不幸的是,如果 k3s 重新啟動,配置會被重置。 根據k3s 文檔<\/a>,如果您創建一個名為\/var\/lib\/rancher\/k3s\/server\/manifests\/traefik-config.yaml<\/code>的自定義文件,k3s 的 traefik 將使用這個新配置自動更新並使用它的值。 這是我所擁有的:

apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
  name: traefik
  namespace: kube-system
spec:
  valuesContent: |-
    dashboard:
      enabled: true
    ports:
      traefik:
        expose: true # this is not recommended in production deployments, but I want to be able to see my dashboard locally
    logs:
      access:
        enabled: true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM