Развертывание Kubernetes с пользовательским файлом index.html в поде Nginx с ConfigMap

Настроим пользовательскую веб-страницу index.html в поде Kubernetes с ConfigMap и веб-сервером Nginx. Убедимся в работоспособности страницы, выведя ее сообщение в командную строку и веб-браузер.

Цели:

  • Создать развертывание из 5 подов nginx.
  • Сделать ConfigMap с указанием на пользовательский файл index.html и строкой This web page is housed on a Pod running Nginx («Эта веб-страница размещена в поде, которым запускается Nginx»).
  • Обеспечить доступ к сервису из интернета.

Что понадобится:

  • Интерфейс командной строки с сервером учетной записи Cloud Guru.
  • Узел плоскости управления и два рабочих узла в учетной записи A Cloud Guru, а также встроенный интерфейс командной строки для доступа к ним.
  1. Создаем развертывание:
Параметры развертывания: образ nginx, 5 реплик и порт 80

Этой командой создается развертывание с 5 контейнерами (репликами) и открывается порт 80 для интернет-трафика.

2. Проверяем успешность развертывания с подами:

Поды созданы
Развертывание тоже

Этой командой проверяется успешность создания подов и развертывания.

3. Добавляем NodePort для доступа к развертыванию из Интернета:

4. Тестируем развертывание:

Из команды kubectl get services -o wide получаем IP-адрес для доступа к веб-серверу nginx. По завершении появляется тестовая страница Nginx:

Тестовая страница Nginx установлена

5. Создаем ConfigMap:

В следующем скрипте сделаем ConfigMap с указанием на пользовательскую веб-страницу. Укажем, что веб-страница хранится в поде Kubernetes, которым запускается Nginx.

Начнем с файла vi index-html-configmap.yml в текстовом редакторе:

6. В исходном файле развертывания YAML укажем на ConfigMap:

Чтобы указать в развертывании на ConfigMap и внешний порт, выполним vi nginx-wk18.yml и вставим данные в разделе volumeMount и volumes:

Обратите внимание на index-html-configmap внизу

Этой командой создается развертывание:

Применение изменений развертывания

Изменения применяются командой apply.

7. Создаем развертывание ConfigMap, развертывая службу:

Применение изменений в службах ConfigMap

8. Чтобы получить IP-адрес службы развертывания, запускаем kubectl get svc.

Потом скопируем его тоже (имя службы другое, потому что я забыл поменять его в файле YAML выше):

9. Проверяем IP-адрес командой curl из интерфейса командной строки:

Получилось

Проверим интернет-доступ: подключимся в веб-браузере к общедоступному IP-адресу серверов плоскости управления и добавим в конце порт 30080:

Мы создали развертывание и ConfigMap c указанием на настраиваемый html-файл.

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи Timothy Krassowski: Kubernetes Deployment that uses a custom index.html file on an Nginx Pod using a ConfigMap

Предыдущая статьяGit: простое руководство о том, как стать мастером контроля версий
Следующая статьяАвтоматизируем задачи на Python с помощью ChatGPT