0

Google Container Egine (GKE) にデプロイするための Kubernetes サービスを開発しています。最近まで、私は Google Cloud Shell で Docker イメージを構築していましたが、Cloud Shell が実行される無料の VM インスタンスの全体的な負荷が複数docker buildの s とpushes から明らかに高すぎるため、現在割り当て制限に達しています。これまでの私の経験では、約 1 週間ほど作業を続けた後、次のエラー メッセージが表示され、Cloud Shell が再び利用可能になるまで約 2 日間待たなければなりませんでした。

Service usage limits temporarily exceeded. Try connecting later.

docker builds とpushes を課金対象のマシン (GCE VM インスタンスまたは GKE クラスター ノード)に移行しようとしましたが、成功しませんでした:

  • GCE VM インスタンスでは、Docker は明らかにインストールされていません。(これも一理あります。)

  • GKE クラスタ ノードでは、Docker がインストールされており、イメージを ( sudo)実行できますが、 ( の後でさえ)数秒後 (いくつかのレイヤをプッシュした後) に次のエラー メッセージが表示されて失敗します。docker builddocker pushgcloud dockerdenied: Access denied

では、GKE 内の Docker イメージの持続可能な開発ワークフローとは何でしょうか? Docker を VM インスタンスにインストールする必要がありますか (そうしないことを望みます)、それとも他の場所にインストールする必要がありdocker buildますdocker pushkubectl create? (私はローカル開発マシンとして MacBook を使用していますが、できることならそこに Docker をインストールしたくありません。つまり、クラウドで Docker イメージを構築することを好みます。)

更新次のように VM インスタンスにContainer-VM イメージを装備すると、docker build成功しますが、docker push以前の GKE クラスタ ノードと同じように失敗します (with denied: Access denied):

gcloud compute images list \
  --project google-containers \
  --no-standard-images
gcloud compute instances create tmp \
  --machine-type g1-small 
  --image container-vm-v20160321 \
  --image-project google-containers
  --zone europe-west1-d
4

1 に答える 1