2017-11-17 7 views
1

私はkopsを使用してAWSにデプロイしたKubernetesクラスタのためのnginx-ingress-controllerの設定に関するこのチュートリアルに従っています。nginx-ingress-controller用の有効なNGINXテンプレートを探していますか? (Kubernetes)

https://daemonza.github.io/2017/02/13/kubernetes-nginx-ingress-controller/

私は-f ./nginx-ingress-controller.ymlを作成kubectl を実行すると、ポッドが作成されますが、エラー出力されます。私が言うことができるものから、問題はnginxの入controller.ymlの以下の部分である:ポッドに示す

volumes: 
 
     - name: tls-dhparam-vol 
 
      secret: 
 
      secretName: tls-dhparam 
 
     - name: nginx-template-volume 
 
      configMap: 
 
      name: nginx-template 
 
      items: 
 
      - key: nginx.tmpl 
 
       path: nginx.tmpl

エラー:

MountVolume.SetUpに失敗しました"nginx-template-volume"の設定はありません。

このチュートリアルではコントローラを作成する前にこのconfigmapを作成していないので、これは意味があります。私は私が使用してconfigmapを作成する必要があることを知っている:

は、私がやった= nginx.tmpl = nginx.tmpl

configmap nginxのテンプレート--from-ファイルを作成kubectlこのnginx.tmplを使用してファイルがソースlike thisから見つかりましたが、動作していないようです(常に無効なNGINXテンプレートエラーで失敗します)。例をログ:

I1117 16:29:49.344882  1 main.go:94] Using build: https://github.com/bprashanth/contrib.git - git-92b2bac 
 
I1117 16:29:49.402732  1 main.go:123] Validated default/default-http-backend as the default backend 
 
I1117 16:29:49.402901  1 main.go:80] mkdir /etc/nginx-ssl: file exists already exists 
 
I1117 16:29:49.402951  1 ssl.go:127] using file '/etc/nginx-ssl/dhparam/dhparam.pem' for parameter ssl_dhparam 
 
F1117 16:29:49.403962  1 main.go:71] invalid NGINX template: template: nginx.tmpl:1: function "where" not defined

使用した画像のバージョンがかなり古いですが、私は運と新しいバージョンを試してみました。

containers: 
 
     - name: nginx-ingress-controller 
 
      image: gcr.io/google_containers/nginx-ingress-controller:0.8.3

This thread私の問題に似ていますが、私は非常に提案されたソリューションを理解していません。どこから使用可能なテンプレートを抽出するためにdocker cpを使用しますか? Dockerと互換性のない言語/構文を使用しているテンプレートのようです...?

答えて

1

nginxテンプレートファイルを入力コントローラポッドからローカルマシンにコピーするには、まずkubectl get podsでポッド名を取得してから、kubectl exec [POD_NAME] -it -- cat /etc/nginx/template/nginx.tmpl > nginx.tmplを実行します。

これでnginx.tmplファイルが残されます。編集してconfigmapとしてプッシュバックすることができます。私は、あなたが将来コントローラを更新するのを困難にする可能性があるので、テンプレートに対するカスタム変更を最小限に保つことを推奨します。

希望すると便利です。

+0

これは私のトリックでした...ありがとう!私はnginx-ingress-controller.ymlの全ての行をコメントアウトする必要がありました(これは、テンプレートを生成するためにexecコマンドを実行できるように、この許可されたコンテナが正しく実行される)。一度nginx.tmplファイルを生成すると、私はこれらの行のコメントを外し、コンテナはエラーなしで表示されました! – swin12

関連する問題