2017-07-05 7 views
1

私はtraefik configmapの一部として定義されたtraefik.tomlファイルを持っています。以下のスニペットが定義されlabelselectorとkubernetesエンドポイントの設定です:定義された:私はこの構成でtraefikのステータスページをチェックするとtraefik.tomlとcontainer argの間にtraefik labelselectorを定義する問題

[kubernetes] 
    labelselector = "expose=internal" 

、私が記載されているすべてのingressesは、だけでなく、それらのラベルを持つ「内部公開」を参照してください。

私は私の展開にコンテナ引数としてkubernetes.labelselectorを設定した場合は、しかし、一致するラベルを持つ唯一のingressesは予想通りtraefikのステータスページに表示されます。

- --kubernetes.labelselector=expose=internal 

Kubernetes Ingress Backend文書によると、 Labels and Selectorsのラベルセレクタセクションで有効なラベルセレクタフォーマットは、traefik.tomlファイルで有効である必要があります。私は、上記のような等価性baedとset-based( "expose"ラベルが存在するかどうかを判断するために)の両方を実験しましたが、どちらもtomlで働いていませんでした。集合ベースはコンテナargsでは機能しないようですが、等価文は機能します。

私は、traefik.tomlファイル内でkubernetesエンドポイントをどのようにフォーマットしたかに関するいくつかの問題があると仮定しています。この問題をgithubに報告する前に、誰かがドキュメントを明確にしたり、私がtomlファイル形式で行った間違いを修正したりすることを望んでいました。

答えて

1

あなたがすでに知っている通り、--kubernetesはあなたのために機能します。これは、このパラメータがKubernetesプロバイダを有効にするだけでなく、すべての既定値を設定するためです。 As documentedの場合、コマンドライン引数が設定ファイルよりも優先されます。したがって、TOMLファイルで指定されたデフォルト以外のKubernetesパラメータは、--kubernetesによって暗黙指定されたデフォルト値によって上書きされます。これは(理想的には文書化されていませんが)動作を意図しています。

また、--kubernetesを省略することで、Kubernetes(または他のプロバイダ)のコマンドラインパラメータとTOML設定パラメータの両方を混在させることができます。たとえば、あなたはあなたの例TOMLが

[kubernetes] 
    labelselector = "expose=internal" 

を提出し、その後Traefikは、カスタムラベルセレクタexpose=internalの両方を使用して、名前空間otherを見ることになります

./traefik --configfile=config.yaml --kubernetes.namespaces=other 

ようTraefikを呼び出す可能性があります。

私はsubmitted a PRを使用して、プロバイダのデフォルト値に関するコマンドラインプロバイダ対応パラメータの動作を明確にしています。

+0

tomlファイルで '[kubernetes]'を単独で定義し、コマンドライン引数を使ってデフォルト値を上書きできるか、kubernetesバックエンドプロバイダを少なくとも1つの他のオプションセットを持つtomlで定義する必要がありますか? –

+0

あなたは '--kubernetes'を渡すのではなく' --kubernetes 'だけを渡す限り。コマンドラインで 'を実行すると動作するはずです。 –

0

問題は、コマンドライン引数とtomlオプションの混在と一致するように見えます。

いくつかのバグレポートといくつかの追加の雑文を読んだ後。ドキュメンテーション私は、kurbernetes backendが--kubernetes引数をtraefikコンテナに渡したことを認識しました。私はtomlに[kubernetes]を定義することでkubernetesバックエンドも有効になっていることに気付きました。私は、コマンドライン引数を取り除き、完全なkubernetesバックエンド設定をtomlに入れて、すべてが期待どおりに動作するようにしました。

この動作が期待されているかどうかはわかりませんが、この動作は、重複オプションが指定されている場合、コマンドライン引数がtoml configオプションよりも優先されるように設計されているように思われます。