Cloud Shell

Эмулятор на этом сайте не умеет запускать контейнеры. У эмулированного процессора нет вложенной виртуализации, поэтому Docker и Kubernetes там недостижимы, сколько ни настраивай. Это жёсткое ограничение, а не недоделка.

Cloud Shell обходит его. Это Linux-машина, которую Google выдаёт бесплатно, и на ней уже есть Docker и root, то есть ровно то, что нужно мануалам из моих статей. Работает она под твоим аккаунтом Google, поэтому мне это не стоит ничего, а наплыв читателей не может исчерпать ничью квоту, кроме квоты самого читателя.

Open in Cloud Shell

Открывается в новой вкладке, а не внутри страницы. Google отдаёт X-Frame-Options: SAMEORIGIN для Cloud Shell и DENY для страницы входа, поэтому встроить их во фрейм не может ни один сторонний сайт. Так сделано намеренно: форма входа Google внутри чужой страницы это ровно то, как выглядит фишинг, и запрет здесь и есть защита.

Что ты получаешь

Как начать

Кнопка открывает Cloud Shell и клонирует маленький открытый репозиторий с одним установочным скриптом. Четыре шага, причём первые два происходят сами.

1. Доверить репозиторий. Cloud Shell спрашивает об этом перед клонированием всего, что не принадлежит Google. В окне написано, что репозиторий не доверенный по умолчанию, и это про владельца, а не про содержимое. Файлов там три, и их можно прочитать на GitHub заранее.

2. Прочитать, что напечаталось. После клонирования терминал печатает следующую команду и оставляет тебя в нужной директории. Выглядит так:

You are in Google Cloud Shell, on a machine Google gives you for free.
Docker and root are already here. kind and kubectl are not, so install them:

  ./setup.sh

3. Доставить то, чего не хватает. Docker на месте, а kind и kubectl нет, поэтому скрипт качает их с официальных адресов релизов и печатает версии, которые получились:

./setup.sh

4. Идти по статье. Дальше команды работают ровно как написано. Для мануала по Kyverno это значит:

kind create cluster --name policy-demo
kubectl cluster-info --context kind-policy-demo

Когда закончишь

Сессия одноразовая, так что достаточно закрыть вкладку. Но удалить кластер перед этим всё равно правильная привычка, и команда та же, что на ноутбуке:

kind delete cluster --name policy-demo

Чем ты за это платишь

Здесь честность важнее, чем в остальных разделах. Эмулятор считает на твоей машине и не отправляет наружу ничего. Тут всё наоборот: терминал работает на серверах Google под твоим аккаунтом, и всё, что ты там набираешь, уходит к Google на тех условиях, которые у тебя с ними уже есть. У меня доступа к этому нет, и плачу за это тоже не я.

Если такой размен не устраивает, мануал проходится на любом ноутбуке с Docker. Cloud Shell это удобство, а не обязательное условие.