2016-05-18 7 views
1

ingress resourcesの制限のため(私の場合、Google Container Engineではサポートされていない50以上のルートが必要です)Nginxを他のバックエンドサービスのリバースプロキシとして使用することを検討しています。私がしたいことは、サービスxに経路 "/ x"を渡し、サービスyに "/ y"をルーティングするなどの入力リソースと本質的に同じです。私はおそらくserviceの後ろに、HA用のNginxのインスタンスを複数実行したいと思います。私の質問私はオプションのカップルを持っている主に懸念構成:Kubernetes(GKE)でNginxの設定を処理するには?

  1. は、基本イメージとしてnginxのでカスタムドッカーイメージを作成し、このイメージに 当社nginxの設定をコピーします。これは、非常に Kuvernnetesでこのnginxベースのイメージを実行するようになります。しかし、この が動作している間に、コンフィギュレーションが変更されるたびに新しい カスタムnginxイメージを再構築、公開、保存する必要があります。我々はすでに パイプラインをセットアップしていますので、大きな問題ではありません 運用上。
  2. バニラnginxドッカー画像を使用して、Google Container Engineで実行中のGCE永続ディスクを作成します。このディスクは、すべてのnginxポッド間で読み取り専用モードで共有されます。私がこれに見られる問題は、簡単な方法でディスクに構成の更新をコピーする方法です。
  3. もっと良い選択肢はありますか?私は設定マップや秘密(設定更新の問題を解決するだろう)を見てきましたが、nginx設定ファイルのような任意のデータを含むことはできません。

答えて

3

テキストファイルを含むConfigMapsはまったく問題ありません。 --from-fileオプション:http://kubernetes.io/docs/user-guide/configmap/をご覧ください。

ConfigMap内のバイナリファイルが不明です。 JPEGを追加することはできますが、オブジェクトを読み込もうとするとエラーが発生するため、これが意図されていない可能性があります(追加のbase64エンコーディングなどが必要です)。

$ kubectl create configmap test --from-file=foo1=/tmp/scudcloud_U0GQ27N0M.jpg 
configmap "test" created 
$ kubectl get configmap test -o yaml 
error: error converting JSON to YAML: %!(EXTRA *errors.errorString=yaml: control characters are not allowed) 
関連する問題