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

Это вторая часть введения в Kubernetes для пользователей VMware. Прежде чем перейти к практической части, ознакомьтесь с предыдущей статьей по ссылке.

7v_whajag68kqcj5gmcxbptf9jc.png

Самый простой и быстрый способ познакомиться c Kubernetes без каких-либо специальных требований — это GCP (Google Cloud Platform). Просто оформите тестовый доступ, и изучайте Kubernetes. Для подтверждения регистрации нужно предоставить информацию по банковской карте. GCP ничего не будет списывать, пока вы сами не активируете оплату. Создайте аккаунт, и мы продолжим исследовать завораживающий мир Kubernetes.

Первый шаг — подключение к GKE (Google Kubernetes Engine). В меню слева выберите Container Engine.

qqc4n3bkwfadninz20_spbcrdvi.png

Нажмите на Create cluster.

zpob1xzyvrwvyp16vj9jdafevmq.png

Заполните поля:

— название кластера;
— зона доступа,
— версия Kubernetes;
— детали образа и пр.

ufj044qpcmg7uh1fi9me_pxeq-o.png

Кластер будет будет создан через несколько минут. Когда будет готово, нажмите Connect. Появится команда для соединения. Ее мы и будем использовать. Скопируйте ее.

heyvxhg4haaupxaombqgcabvijm.png

mo3dbrpynfnomijba-srd2mux9m.png

Самый простой способ подключения к кластеру — через Google Cloud shell.

В верхнем правом углу кликните на иконку shell.

0hi1-rjtbggm3lp9bq7yuk1roro.png

Через несколько секунд shell запустится на этой же странице. Вставьте команду, которую скопировали на предыдущем шаге.

jxop7iwvkaabaeuw8zukvxaqn4q.png

Теперь посмотрим информацию по нашему кластеру с помощью команды kubectl cluster-info.

psrwd-i0pfits8zbdyailbg__gk.png

Чтобы получить информацию о нодах, введите команду kubectl get no -o wide . У вас появится список нод с информацией по ним.

wlvtodfspru21t--0dgkwsdizt4.png

Теперь получим список всех работающих pod«ов в нашем кластере K8s. Введите команду kubectl get po -o wide –all-namespaces.

py7i1255kmwzfhjtbpaccrwyuwq.png

Теперь давайте подключимся к нодам кластера, чтобы узнать их сетевые настройки. Для этого снова кликните главное меню слева и из раскрывающегося списка выберите Compute Engine. Как видно из скриншота ниже, кластер k8s cluster в конечном итоге — это число виртуальных машин.

oldg0jslpt10muuotnyrsocwfvq.png

Кликните SSH для запуска сессии с выбранной нодой. Появится новое диалоговое окно. Убедитесь, что в вашем браузере не заблокированы всплывающие окна.

lequrdsiywsiofywxsd0jyakfey.png

Проверим, какой дистрибутив Linux используется. Для этого вбейте команду uname -a, а затем cat /etc/lsb-release.

vlsrtdpmmgcps866vbtooh_ggnq.png

Теперь давайте проверим сетевые настройки с помощью команды ifconfig -a | more. Видите интерфейс типа «мост» cbr0? Это тот, что мы показывали в сетевой схеме выше.

yeu9u2t1ala8okfwna0j-o9pvum.png

Тут мы также видим /24 сеть, выделенную этой ноде, — 10.40.1.0/24. Из нее наши pod«ы, получают свои IP-адреса. Теперь вы можете соотнести сетевую схему выше с реальной конфигурацией на нодах кластера k8s. Круто, правда?

Теперь давайте вернемся к окну с Google Cloud Shell и попробуем задеплоить тестовое приложение. Вбейте git clone https://github.com/hanymichael/NSX-CNA-Lab.git.

3wufytgx2x-ljnbs2meaah55esc.png

Этой командой вы склонируете одно из моих тестовых приложений на GitHub. Теперь перейдите в папку с приложением и вбейте kubectl create -f ., чтобы все YAML-файлы создавались в этой папке.

kw2uueti7otuoszqgnbqenjmiqy.png

Теперь выведем список pod«ов и посмотрим их статус. Видно, что у всех статус ContainerCreating. Через несколько секунд статус изменится на Running.
yvjrz75pidy0x9p3e9_btmyzx3i.png

Тут два деплоймента моего веб-приложения в K8s, у каждого по 4 реплики. Теперь давайте проверим Services, связанные с этим деплойментами, с помощью команды kubectl get svc.

jdevjka5scxaeq4auc0mnkmdkjc.png

Последнее, что нужно проверить, — ingress, связанный с этим приложением. На скриншоте выше видно, что мы подключаемся к приложению через внешний IP. Если проверим раздел с балансировщиком, то увидим балансировщик нагрузки, связанный с ingress.

mmojzvxnhuwnjac6uameclmsh_e.png

Если хотите получить доступ к самому приложению, можно создать DNS-запись для *.esxcloud.net в локальном хост-файле.

el8vi6njwhov1_p7ygd3bgwtuk0.png

Теперь откройте в браузере новую вкладку и перейдите по ссылкам sphinx-v1.esxcloud.net и sphinx-v2.esxcloud.net. Мы увидим две вещи:

  • версия приложения показывается по каждой ссылке;
  • после обновления веб-страницы IP-адрес контейнера меняется, значит балансировщик работает.


lo9had07482jd4zub96i8vuvebm.png

Теперь вы можете соотнести конфигурацию приложения со схемой ниже и увидеть, как все это выглядит в Kubernetes.

ql6zinymohesirnxourqiumuvno.png

Заключение


Мы увидели, что Kubernetes, как любая распределенная система, имеет много сходств (и некоторые различия) с vSphere, которая нам знакома как пользователям VMware. Я попытался объяснить базовые концепции, сравнивая K8s & vSphere. Надеюсь, что это немного помогло вам быстро познакомиться с этой невероятно мощной облачной платформой, которая уже завоевывает мир.

В следующих постах я начну глубже погружаться в разработку нашего enterprise-решения для запуска Kubernetes внутри дата-центра. Следите за новостями!

P.S.: Опробовать возможности Kubernetes можно и в нашем сервисе KuberLine, оформив тест-драйв.

© Habrahabr.ru