Я разрабатываю сервис Kubernetes для развертывания в Google Container Egine (GKE). До недавнего времени я создавал образы Docker в Google Cloud Shell, но теперь я достиг пределов квоты, потому что общая нагрузка на бесплатный экземпляр виртуальной машины, на котором работает Cloud Shell, очевидно, слишком высока из-за нескольких docker build
s и push
es. По моему опыту, примерно через неделю непрерывной работы я столкнулся со следующим сообщение об ошибке, и придется подождать около двух дней, прежде чем Cloud Shell снова станет доступным.
Service usage limits temporarily exceeded. Try connecting later.
Я попытался переместить свои docker build
s и push
es на оплачиваемые машины (экземпляры виртуальной машины GCE или узлы кластера GKE), но безуспешно:
На экземпляре виртуальной машины GCE Docker, по-видимому, не установлен. (Тоже имеет смысл.)
На узле кластера GKE установлен Docker, и я могу (
sudo
)docker build
создать свой образ, ноdocker push
(даже послеgcloud docker
) происходит сбой со следующим сообщение об ошибке через несколько секунд (после нажатия нескольких слоев):denied: Access denied
Так что же представляет собой рабочий процесс устойчивого развития образов докеров внутри GKE? Должен ли я установить Docker на экземпляр виртуальной машины (надеюсь, что нет) или где еще я могу надеяться docker build
, docker push
и, в конечном счете, kubectl create
мой сервис, не сталкиваясь с ограничениями квот, останавливающими работу, и т. д.? (Я использую MacBook в качестве локальной машины для разработки и предпочел бы не устанавливать там Docker, если могу помочь. То есть я предпочитаю создавать образы Docker в облаке.)
ОБНОВЛЕНИЕ Если я оборудую экземпляр ВМ контейнером -VM image:
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