[Перевод] Введение в Kubernetes для пользователей VMware. Часть 2. Практика
Это вторая часть введения в Kubernetes для пользователей VMware. Прежде чем перейти к практической части, ознакомьтесь с предыдущей статьей по ссылке.
Самый простой и быстрый способ познакомиться c Kubernetes без каких-либо специальных требований — это GCP (Google Cloud Platform). Просто оформите тестовый доступ, и изучайте Kubernetes. Для подтверждения регистрации нужно предоставить информацию по банковской карте. GCP ничего не будет списывать, пока вы сами не активируете оплату. Создайте аккаунт, и мы продолжим исследовать завораживающий мир Kubernetes.
Первый шаг — подключение к GKE (Google Kubernetes Engine). В меню слева выберите Container Engine.
Нажмите на Create cluster.
Заполните поля:
— название кластера;
— зона доступа,
— версия Kubernetes;
— детали образа и пр.
Кластер будет будет создан через несколько минут. Когда будет готово, нажмите Connect. Появится команда для соединения. Ее мы и будем использовать. Скопируйте ее.
Самый простой способ подключения к кластеру — через Google Cloud shell.
В верхнем правом углу кликните на иконку shell.
Через несколько секунд shell запустится на этой же странице. Вставьте команду, которую скопировали на предыдущем шаге.
Теперь посмотрим информацию по нашему кластеру с помощью команды kubectl cluster-info.
Чтобы получить информацию о нодах, введите команду kubectl get no -o wide . У вас появится список нод с информацией по ним.
Теперь получим список всех работающих pod«ов в нашем кластере K8s. Введите команду kubectl get po -o wide –all-namespaces.
Теперь давайте подключимся к нодам кластера, чтобы узнать их сетевые настройки. Для этого снова кликните главное меню слева и из раскрывающегося списка выберите Compute Engine. Как видно из скриншота ниже, кластер k8s cluster в конечном итоге — это число виртуальных машин.
Кликните SSH для запуска сессии с выбранной нодой. Появится новое диалоговое окно. Убедитесь, что в вашем браузере не заблокированы всплывающие окна.
Проверим, какой дистрибутив Linux используется. Для этого вбейте команду uname -a, а затем cat /etc/lsb-release.
Теперь давайте проверим сетевые настройки с помощью команды ifconfig -a | more. Видите интерфейс типа «мост» cbr0? Это тот, что мы показывали в сетевой схеме выше.
Тут мы также видим /24 сеть, выделенную этой ноде, — 10.40.1.0/24. Из нее наши pod«ы, получают свои IP-адреса. Теперь вы можете соотнести сетевую схему выше с реальной конфигурацией на нодах кластера k8s. Круто, правда?
Теперь давайте вернемся к окну с Google Cloud Shell и попробуем задеплоить тестовое приложение. Вбейте git clone https://github.com/hanymichael/NSX-CNA-Lab.git.
Этой командой вы склонируете одно из моих тестовых приложений на GitHub. Теперь перейдите в папку с приложением и вбейте kubectl create -f ., чтобы все YAML-файлы создавались в этой папке.
Теперь выведем список pod«ов и посмотрим их статус. Видно, что у всех статус ContainerCreating. Через несколько секунд статус изменится на Running.
Тут два деплоймента моего веб-приложения в K8s, у каждого по 4 реплики. Теперь давайте проверим Services, связанные с этим деплойментами, с помощью команды kubectl get svc.
Последнее, что нужно проверить, — ingress, связанный с этим приложением. На скриншоте выше видно, что мы подключаемся к приложению через внешний IP. Если проверим раздел с балансировщиком, то увидим балансировщик нагрузки, связанный с ingress.
Если хотите получить доступ к самому приложению, можно создать DNS-запись для *.esxcloud.net в локальном хост-файле.
Теперь откройте в браузере новую вкладку и перейдите по ссылкам sphinx-v1.esxcloud.net и sphinx-v2.esxcloud.net. Мы увидим две вещи:
- версия приложения показывается по каждой ссылке;
- после обновления веб-страницы IP-адрес контейнера меняется, значит балансировщик работает.
Теперь вы можете соотнести конфигурацию приложения со схемой ниже и увидеть, как все это выглядит в Kubernetes.
Заключение
Мы увидели, что Kubernetes, как любая распределенная система, имеет много сходств (и некоторые различия) с vSphere, которая нам знакома как пользователям VMware. Я попытался объяснить базовые концепции, сравнивая K8s & vSphere. Надеюсь, что это немного помогло вам быстро познакомиться с этой невероятно мощной облачной платформой, которая уже завоевывает мир.
В следующих постах я начну глубже погружаться в разработку нашего enterprise-решения для запуска Kubernetes внутри дата-центра. Следите за новостями!
P.S.: Опробовать возможности Kubernetes можно и в нашем сервисе KuberLine, оформив тест-драйв.