Практикум: Безопасный и быстрый деплой в Kubernetes®
На этом практикуме пошагово развернём приложение с облачной инфраструктурой и распределим входящий трафик между его разными компонентами. Обсудим важные вопросы хранения секретов и безопасности.
Начало работы
Склонируйте репозиторий, выполнив в окне терминала:
git clone https://github.com/skipor/yandex-scale-2021-kubernetes-workshop.git
cd ./yandex-scale-2021-kubernetes-workshop
Дальнейшая работа разбита на этапы. Перед каждым этапом вам будут показаны слайды и демонстрация прохождения этапа с
пояснениями. После этого, вам будет предложено пройти этап самостоятельно. Для этого, для каждого этапа есть директория
в ./steps. В ней в файле README.md
содержится подробная инструкция с пояснениями и блоками команд. Блоки
команд нужно копировать кликая на них, а затем вставлять в окно терминала.
Теперь можете перейти к первому этапу, и ждать окончания его демонстрации или начать его самостоятельное выполнение.
Для работы вам потребуются:
yc (Yandex Cloud CLI)
terraform >= 1.0.8
kubectl >= 1.20
docker
jq
curl
git
tree
Ниже описаны шаги для их установки на различных операционных системах.
Виртуальная машина
Можно не устанавливать все зависимости на свой компьютер, а работать из преднастроенной виртуальной машины. В таком случае установите yc CLI. Если у вас ещё нет пары ssh ключей, то создайте её.
На первом этапе, будет показано как создать виртуальную машину и зайти на неё по SSH.
Windows
- Установите WSL
- Запустите Ubuntu Linux
- Настройте согласно инструкции для Ubuntu Linux
Ubuntu Linux
В случае Linux отличного от Ubuntu, установите те же пакеты, используя пакетный менеджер вашего дистрибутива.
yc CLI
Установите yc CLI
curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
exec -l $SHELL
yc version
docker
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
sudo docker run hello-world
Настройте запуск docker без sudo
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
Предзагрузите образ aws-cli
:
docker pull amazon/aws-cli
Прочее
Установите terraform
версии не ниже 1.0.8
:
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform -y
terraform version
Установите kubectl
версии не ниже 1.20
:
curl -LO https://dl.k8s.io/release/v1.22.0/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version
Установите прочие пакеты:
sudo apt-get install jq curl git tree -y
macOS
Установите yc CLI
curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
exec -l $SHELL
yc version
Установите docker Предзагрузите образ aws-cli:
docker pull amazon/aws-cli
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# terraform
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
terraform version
# kubectl
brew install kubectl
kubectl version
# Прочее
brew install jq curl git tree