Для начала авторизуемся в аккаунте выданном на время практикума
- Откроем в новой вкладке (
Ctrl+Клик
илиCmd + Клик
) консоль облака и, вверху справа, временно выйдем из текущих аккаунтов, чтобы они нам не помешали. - Откроем в новой вкладке ссылку где вам будет предложено авторизоваться в Яндекс ID
- Введём имя и пароль пользователя, который был выдан для практикума
- Произойдёт перенаправление в консоль Yandex Cloud
- Среди доступных облаков должно быть только
cloud-practicum-k8s
- Если это не так, кликните на аватаку справа вверху, и выберете аккаунт выданный для практикума. Если виден только ваш текущий аккаунт, то нажмите на значёк Выйти справа от имени
Получим и сохраним в env переменную токен для работы с Yandex Cloud.
Кликнем на блок кода, ниже, чтобы его скопировать. Вставим в терминал, но не будем нажимать enter
:
# После символа '=' нужно будет вставить полученный токен
OAUTH_TOKEN=
- Откроем в в новой вкладке ссылку для получения токена для работы с Yandex Cloud
- Убедитесь, что в правом верхнем углу имя вашего аккаунта на время практикума
- Если нет, выберите аккаунт на время практикума
- Скопируем токен
- Вернёмся в терминал, вставим, чтобы получилось
OAUTH_TOKEN=AQAE....Tuw
и нажмёмenter
Несколько приёмов использования командной строки которые будут встречаться далее:
- Получение значения переменной с добавлением
:?
к имени, вроде${VAR_NAME:?}
, требует чтобы переменная была выставлена ранее - Вызов
yc
CLI с флагом--format json
выводит объект в формате JSON | jq .id -r
возвращает JSON значение поляid
Работать с настройками yc
CLI будем
используя команды не интерактивной настройки
yc config
. Создадим профильyc
CLI в котором будем работать и выставим туда токен
yc config profile create workshop
yc config set token ${OAUTH_TOKEN:?}
echo "Token set to '$(yc config get token)'"
Проверим, что токен скопирован корректно, и появился доступ к Облаку в котором будем работать:
yc resource cloud list
Выставим ID Облака в конфиг yc
CLI
CLOUD_NAME=cloud-practicum-k8s
CLOUD_ID=$(yc resource cloud get --name ${CLOUD_NAME:?} --format json | jq .id -r)
yc config set cloud-id ${CLOUD_ID:?}
echo "В конфиг yc CLI добавлен ID Облака: '$(yc config get cloud-id)'"
У вашего аккаунта будет к одному каталогу вида y-scale-participant-<номер>
:
echo "Ваш каталог участника:"
FOLDER=$(yc resource folder list --format json | jq '.[]' -c | grep y-scale-participant)
jq <<< "$FOLDER" '"Имя: " + .name + " " + "ID: " + .id' -r
Сохраним его ID в конфиг yc CLI:
yc config set folder-id $(jq -r <<< "$FOLDER" .id)
echo "В конфиг yc CLI добавлен ID каталога: '$(yc config get folder-id)'"
Если вы подготовили окружение на своём компьютере, пропустите этот шаг, и переходите к следующему этапу
Образ доступен во время проведения практикума. Если вы выполняете задание после окончания практикума, пропустите этот шаг. Вы можете самостоятельно подготовить аналогичный образ или подготовить окружение по инструкции
- Убедитесь, что у вас есть SSH-ключ или сгенерируйте новый (подробная инструкция).
ssh-keygen -t rsa -b 2048 # генерация нового ssh-ключа
>>>>>>> add vm instruction
cat ~/.ssh/id_rsa.pub
- Создайте виртуальную машину с помощью yc
IMAGE_ID=$(yc compute image get yandex-scale-2021-kubernetes-workshop --folder-name public-image --format json | jq -r .id)
yc compute instance create --name workshop-vm \
--create-boot-disk image-id="${IMAGE_ID:?}" \
--public-ip \
--ssh-key ~/.ssh/id_rsa.pub --zone ru-central1-c
- Скопируйте публичный IP адрес
IP_ADDRESS=$(yc compute instance get workshop-vm --format json | jq -r '.network_interfaces[0].primary_v4_address.one_to_one_nat.address')
- Скопируйте свой конфиг yc на ВМ:
ssh yc-user@${IP_ADDRESS:?} mkdir -p /home/yc-user/.config/yandex-cloud
scp ~/.config/yandex-cloud/config.yaml yc-user@${IP_ADDRESS:?}:/home/yc-user/.config/yandex-cloud/config.yaml
- Войдите на созданную ВМ по SSH
ssh yc-user@${IP_ADDRESS:?}
- Проверьте, что на ВМ работает yc
yc compute instance list
- Скачайте репозиторий и перейдите в него;
git clone https://github.com/skipor/yandex-scale-2021-kubernetes-workshop.git
cd ./yandex-scale-2021-kubernetes-workshop
. Дальнейшие команды выполняйте на созданной ВМ.