Введение в Kubernetes для пользователей VMware. Часть 2. Практика

Введение в Kubernetes для пользователей VMware. Часть 2. Практика

Пошаговая инструкция по разворачиванию приложения в кластере Kubernetes.

 • 

Это вторая часть введения в 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, оформив тест-драйв.

Расскажите друзьям и коллегам о статье

Последние статьи

Как мы создали мощный инструмент для мониторинга процессов в системе резервного копирования на основе Grafana.

Андрей Александров

Фотоэкскурсия по первой очереди дата-центра в Медведково.

Алексей Приезжев

Рассказываем, как проверять ресурсы ВМ на ошибки и даем ключевые метрики, на которые можно опираться.

DataLine