
В нашей последней статье мы обсудили как настроить и запустить кластер Kubernetes, давайте обсудим, как мы можем развернуть NGINX сервис на нашем кластере.
Я буду запускать это развертывание на виртуальной машине, размещенной у поставщика общедоступного облака. Как и во многих общедоступных облачных сервисах, многие из них обычно поддерживают схему общедоступного и частного IP для своих виртуальных машин.
Главный узел - общедоступный IP-адрес: 104.197.170.99 и частный IP-адрес: 10.128.15.195. Рабочий узел 1 - общедоступный IP-адрес: 34.67.149.37 и частный IP-адрес: 10.128.15.196. Рабочий узел 2 - общедоступный IP-адрес: 35.232.161.178 и частный IP-адрес: 10.128.15.197.
Мы запустим это развертывание с главного узла.
Начнем с проверки статуса кластера. Все ваши узлы должны быть в ГОТОВЫ штат.
# kubectl получить узлы.
Создаем развёртывание NGINX с использованием NGINX изображение.
# kubectl create deployment nginx --image = nginx.
Теперь вы можете увидеть состояние вашего развертывания.
# kubectl получить развертывания.
Если вы хотите получить более подробную информацию о развертывании, вы можете запустить описывать команда. Например, можно определить, сколько реплик развертывания запущено. В нашем случае мы ожидаем увидеть реплику 1 работающей (т. Е. 1/1 реплики).
# kubectl описывает развертывание nginx.
Теперь ваше развертывание Nginx активно, вы можете открыть NGINX к общедоступному IP-адресу, доступному в Интернете.
Kubernetes предлагает несколько вариантов раскрытия вашего сервиса на основе функции, называемой Kubernetes Service-types, а именно:
Тип службы по умолчанию: ClusterIP.
В нашем сценарии мы хотим использовать Тип службы NodePort потому что у нас есть как общедоступный, так и частный IP-адрес, и на данный момент нам не нужен внешний балансировщик нагрузки. При использовании этого типа службы Kubernetes назначит эту службу портам на 30000+ диапазон.
# kubectl create service nodeport nginx --tcp = 80: 80.
Запустить получить svc, чтобы просмотреть сводную информацию о службе и открытых портах.
# kubectl получить svc.
Теперь вы можете убедиться, что Nginx страница доступна на всех узлах с помощью команда curl.
Мастер-узел # curl: 30386. # завиток узел-1: 30386. # узел завитка-2: 30386.
Как видите, значок «ДОБРО ПОЖАЛОВАТЬ В NGINX!Страница может быть достигнута.
Как вы могли заметить, Kubernetes сообщает, что у меня не зарегистрирован активный общедоступный IP-адрес или, скорее, не зарегистрирован ВНЕШНИЙ IP.
# kubectl получить svc.
Давайте проверим, действительно ли это правда, что у меня нет ВНЕШНЕГО IP-адреса, подключенного к моим интерфейсам, используя IP-команда.
# ip a.
Как видите, публичного IP-адреса нет.
Как упоминалось ранее, в настоящее время я запускаю это развертывание на Виртуальная машина предлагается поставщиком общедоступного облака. Таким образом, хотя не существует определенного интерфейса, которому назначен общедоступный IP-адрес, поставщик виртуальных машин выдал временный внешний IP-адрес.
Эфемерный внешний IP-адрес - это временный IP-адрес, который остается подключенным к виртуальной машине, пока виртуальный экземпляр не будет остановлен. При перезапуске виртуального экземпляра назначается новый внешний IP-адрес. По сути, это простой способ для поставщиков услуг использовать неиспользуемые общедоступные IP-адреса.
Проблема здесь, помимо того факта, что ваш общедоступный IP-адрес не статичен, заключается в том, что Эфемерный публичный IP является просто расширением (или прокси) частного IP-адреса, и по этой причине доступ к службе будет осуществляться только через порт 30386. Это означает, что доступ к сервису будет осуществляться по URL-адресу, это 104.197.170.99:30386, и если вы проверите свой браузер, вы должны увидеть страницу приветствия.
При этом мы успешно развернули NGINX в нашем 3-узловом кластере Kubernetes.