GCP: как получить доступ к хранилищу облачного хранилища из экземпляра виртуальной машины - PullRequest
1 голос
/ 09 ноября 2019

Я пытаюсь развернуть и запустить образ докера в экземпляре виртуальной машины GCP. Мне это нужно для доступа к определенному облачному хранилищу (чтение и запись).

Как мне установить ведро внутри виртуальной машины? Как мне смонтировать ведро в контейнере Docker, работающем на моей виртуальной машине?

Я уже некоторое время читаю документацию Google Cloud, но я все еще в замешательстве. Все руководства показывают, как получить доступ к корзине с локального компьютера, а не как подключить ее к виртуальной машине. https://cloud.google.com/storage/docs/quickstart-gsutil

Нашли что-то о Предохранитель , но это выглядит слишком сложным для простого монтирования одного блока в файловую систему ВМ.

Ответы [ 2 ]

1 голос
/ 10 ноября 2019

Google Cloud Storage - это API хранилища объектов, а не файловая система. В результате, он не предназначен для «монтирования» в виртуальной машине. Он спроектирован так, чтобы быть очень долговечным и масштабируемым для необычайно больших объектов (и большого числа объектов).

Хотя вы можете использовать gcsfuse для монтирования его в качестве файловой системы, этот метод имеет довольно существенныенедостатки. Например, подсчет операций может быть дорогостоящим для выполнения даже простых операций для нормальной файловой системы.

Аналогично, существует множество неожиданных действий , которые являются результатомтот факт, что это объект хранилища. Например, вы не можете редактировать объекты - они неизменны. Чтобы создать иллюзию записи в середине объекта, этот объект, по сути, удаляется и воссоздается всякий раз, когда происходит вызов close() или fsync().

Лучший способ использования GCS - этоРазработайте ваше приложение для непосредственного использования API (или S3-совместимого API ). Таким образом, семантика хорошо понимается приложением, и вы можете оптимизировать их, чтобы повысить производительность и контролировать свои расходы. Таким образом, чтобы получить к нему доступ из вашего докер-контейнера, убедитесь, что ваш контейнер имеет способ аутентификации через GCS (либо с помощью учетных данных в экземпляре, либо путем развертывания ключа для учетной записи службы с необходимыми разрешениями для доступазатем приложение будет вызывать API напрямую.

Наконец, если вам нужна файловая система, а не GCS, Google Cloud предлагает по крайней мере 2 других варианта, если вам нужен большой монтируемый модуль. файловая система, разработанная для этого конкретного случая использования:

  • Persistent Disk , которая является базовой файловой системой, которую вы получаете с виртуальной машиной, но вы можете смонтировать многие из этих устройств наодиночная ВМ. Однако вы не можете монтировать их для чтения / записи одновременно на несколько виртуальных машин - если вам нужно подключить несколько виртуальных машин, постоянный диск должен быть доступен только для чтения для всех экземпляров, к которым он подключен.
  • Облачное хранилище файлов - это управляемая служба, предоставляющая сервер NFS перед постоянным диском. Таким образом, файловая система может быть смонтирована для чтения / записи и может использоваться несколькими виртуальными машинами. Однако он значительно дороже (на момент написания этой статьи, около 0,20 долл. США / ГБ / месяц против 0,04 долл. США / ГБ / месяц в us-central1), чем PD, и существуют минимальные требования к размеру (1 ТБ).
1 голос
/ 09 ноября 2019

Контейнеры Google Cloud Storage нельзя монтировать в экземпляры или контейнеры Google Compute без стороннего программного обеспечения, такого как FUSE . Ни в Linux, ни в Windows нет встроенных драйверов для облачного хранилища.

...