3

CircleCI Web サイトのチュートリアルに基づいて、CircleCI から Google Container Engine インスタンスへの継続的デプロイをセットアップしようとしています。

ただし、現在、ローリング更新を実行できるように認証を設定する方法につまずいています。

KUBE_CMD=${KUBERNETES_ROOT:-~/kubernetes}/cluster/kubectl.sh
$KUBE_CMD rolling-update my-controller \
   -f my-controller.yml --server="https://xxx.xxx.xxx.xxx"

Google は OAuth のみをサポートしているようで、非対話型認証を設定するためのドキュメントが見つかりません。基本認証パラメーターをに渡すことkubectlは機能していないようです。

これに関するアドバイスやどこを見ることができますか?

4

1 に答える 1

4

Container Engine クラスタで実行されている apiserver は Google の OAuth を使用しません。代わりにクラスター認証を使用します。あなたが実行する場合

$ gcloud alpha container clusters describe <cluster-name>

次に、クラスターの apiserver にアクセスするための http 基本認証資格情報として使用できるユーザー名とパスワードを取得します (ベアラー トークンまたは TLS クライアント証明書を使用してサーバーにアクセスすることもできますが、基本認証が最も簡単に開始できます)。

テストするには、実行します

$ curl --insecure --user <username>:<password> https://<endpoint>

正常な応答が表示されるはずです。

クラスターの apiserver がクライアントを認証する方法を理解したので、適切な認証を提供するために CircleCI マシンで kubectl を構成する必要があります。これを行う最も簡単な方法は、gcloud を使用して「kubeconfig」ファイルを生成することです。

$ gcloud alpha container get-credentials --cluster=<cluster-name>

ファイルをローカルに生成します。その後、ファイルを CircleCI ボックスにコピーできます。kubectl は~/.kube/configデフォルトでファイルを検索します (環境変数またはコマンド ライン フラグを使用して別の場所を指定できます--kubeconfig)。

于 2015-06-17T21:43:28.363 に答える