Источник: Nuances of Programming
Курс SkillFactory Мастер автоматизации и цифровой трансформации бизнеса. Научитесь управлять цифровой трансформацией бизнеса опираясь на экспертизу в сфере прорывных технологий.
Настроим пользовательскую веб-страницу 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, а также встроенный интерфейс командной строки для доступа к ним.
- Создаем развертывание:
kubectl create deployment nginx-wk18 --image=nginx --replicas=5 --port=80 deployment.apps/nginx-wk18 created
Этой командой создается развертывание с 5 контейнерами (репликами) и открывается порт 80 для интернет-трафика.
2. Проверяем успешность развертывания с подами:
Этой командой проверяется успешность создания подов и развертывания.
3. Добавляем NodePort для доступа к развертыванию из Интернета:
kubectl expose deployment nginx-wk18 --port=80 --type=NodePort service/nginx-wk18 exposed
4. Тестируем развертывание:
Из команды kubectl get services -o wide получаем IP-адрес для доступа к веб-серверу nginx. По завершении появляется тестовая страница Nginx:
5. Создаем ConfigMap:
В следующем скрипте сделаем ConfigMap с указанием на пользовательскую веб-страницу. Укажем, что веб-страница хранится в поде Kubernetes, которым запускается Nginx.
Начнем с файла vi index-html-configmap.yml в текстовом редакторе:
6. В исходном файле развертывания YAML укажем на ConfigMap:
Чтобы указать в развертывании на ConfigMap и внешний порт, выполним vi nginx-wk18.yml и вставим данные в разделе volumeMount и volumes:
Этой командой создается развертывание:
kubectl apply -f nginx-wk18.yml deployment.apps/nginx-deployment configured
Изменения применяются командой apply.
7. Создаем развертывание ConfigMap, развертывая службу:
8. Чтобы получить IP-адрес службы развертывания, запускаем kubectl get svc.
Потом скопируем его тоже (имя службы другое, потому что я забыл поменять его в файле YAML выше)
9. Проверяем IP-адрес командой curl из интерфейса командной строки:
Проверим интернет-доступ: подключимся в веб-браузере к общедоступному IP-адресу серверов плоскости управления и добавим в конце порт 30080:
Мы создали развертывание и ConfigMap c указанием на настраиваемый html-файл.
Читайте также:
Перевод статьи Timothy Krassowski: Kubernetes Deployment that uses a custom index.html file on an Nginx Pod using a ConfigMap