問題タブ [traefik]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
traefik - トラフィックをコンテナーに直接渡して、Traefik の LetsEncrypt チャレンジに回答します
https://github.com/silvio/docker-matrixに基づいたコンテナー (「マトリックス」) があります(これはおそらく重要ではありません)。
ポート 8448 および 3478 (80 または 443 ではない) でサービスを実行します。
traefik を実行せずに、'matrix' コンテナー内で 'matrix' コンテナーのみを実行すると、LetsEncrypt の certbot を実行できます。このリクエストは、LetsEncrypt にポート 443 で私に連絡して ssl 証明書を提供するように指示します。
certbot certonly --standalone --test-cert --email admin@amazing.site --agree-tos -d m.amazing.site
チャレンジが行われ、チャレンジが受け入れられ、証明書がコンテナー内のディレクトリ /etc/letsencrypt に保存されます。
さて、Traefik を実行するときにこれを行いたいと思います。
次のように、このコンテナーの Traefik のパラメーターを docker-compose ファイルに渡します。
コンテナでチャレンジを実行すると(上記と同じコマンド)
certbot certonly --standalone --test-cert --email admin@amazing.site --agree-tos -d m.amazing.site
Traefik ログに次のように表示されます
time="2017-07-14T01:04:35Z" level=error msg="証明書の取得エラー: ドメイン b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid のチャレンジ証明書が見つかりません。453.949201ms で再試行します" time="7-49201ms" :04:35Z" level=error msg="エラー取得証明書: ドメイン b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid のチャレンジ証明書が見つかりません。 msg="証明書取得エラー: ドメイン b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid のチャレンジ証明書が見つかりません。1.138006833s で再試行しています"ドメイン b374a9118f855cacdb0096846a3dfa0c のチャレンジ証明書を見つけます。f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid, retrying in 2.436785791s" time="2017-07-14T01:04:40Z" level=error msg="Error getting cert: Cannot find challenge cert for domain b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid, retrying in 3.055167113s" time="2017-07-14T01:04:43Z" level=error msg="証明書の取得エラー: ドメイン b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid4、7.406s で再試行しています" 07-14T01:04:48Z" level=error msg="エラー取得証明書: ドメイン b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid のチャレンジ証明書が見つかりません。 level=error msg="証明書取得エラー:Cannot find challenge cert for domain b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid, retrying in 6.313970727s" time="2017-07-14T01:05:01Z" level=error msg="Error getting cert: Cannot find challenge cert for domain 8b1e27af665c4676b47236f25c3ccc73. 1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" time="2017-07-14T01:05:01Z" level=debug msg="ACME got nothing 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 2017/07/14 01:05:01 server.go: 2753: http: 66.133.109.36:55264 からの TLS ハンドシェイク エラー: EOFCannot find challenge cert for domain 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" time="2017-07-14T01:05:01Z" level=debug msg="ACME got nothing 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 2017/07/14 01 :05:01 server.go:2753: http: 66.133.109.36:55264 からの TLS ハンドシェイク エラー: EOFCannot find challenge cert for domain 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" time="2017-07-14T01:05:01Z" level=debug msg="ACME got nothing 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 2017/07/14 01 :05:01 server.go:2753: http: 66.133.109.36:55264 からの TLS ハンドシェイク エラー: EOF
これらは実際のログであることに注意してください。確認しようとしている実際のドメイン名については言及されていません。
私は何を間違っていますか?
amazon-web-services - kops で作成された AWS クラスターで、イングレス経由で k8s サービスを利用できるようにする
kubeadm を使用していくつかの KVM で kubernetes を試した後、kops を使用して AWS で適切な自動スケーラブル クラスターをセットアップし、いくつかの Web サイトにサービスを提供したいと考えています。
の驚異的な魔法kops create cluster ...
により、多数の ec2 インスタンスが提供され、k8s API が で利用可能になり、すぐに使用できるtest-cluster.example.com
ようにローカルを構成することさえでき~/.kube/config
ますkubectl apply -f any-stuff.yaml
。これはただ素晴らしいです!
デプロイをクラスターに送信し、イングレス ルールを構成できるようになった時点で、これらすべてがダッシュボードに表示されます。ただし、現時点では、クラスター内のノードを取得したドメイン名に関連付ける方法が明確ではありません。
私の小さな KVM k8s では、単に traefik をインストールして、ポート:80
と:443
. 次に、DNS 設定に移動し、クラスター ノードのパブリック IP を指す A レコードをいくつか追加します。AWS には動的な一連の VM があり、クラスターに負荷がかかっていないときに一部の VM が停止する場合があります。そのため、 traefik helm チャートサービスが固定の :80 と :443 ではなく 2 つのランダム ポートを公開していることを考えると、外部ロード バランサーを使用する必要があるように感じますが、よくわかりません。
オプションは何ですか?彼らの費用はいくらですか?ドメインが AWS によって制御されていない場合、DNS レコードには何を送信する必要がありますか?
docker - コンテナーごとのホワイトリストの使用方法
docker-mode で traefik を使用しています。Docker コンテナーからほとんどの構成 (acme.domains、enabled、frontend-rules など) を取得しています。
現在、すべてのコンテナは WWW (0.0.0.0) から到達可能です。単一のコンテナへのアクセスをいくつかの専用 IP アドレスに制限する方法を考えています。
プライベート Web サービスの Docker ラベルは次のようになります。
この場合、もちろん、ホワイトリストに登録された IP は単なる例です。これは、任意のプライベート ip-subnet である可能性があります。
「client.ip」に基づくフロントエンドルールを設定することは可能でしょうか?
ご協力いただきありがとうございます!