Настроим пользовательскую веб-страницу 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, а также встроенный интерфейс командной строки для доступа к ним.
- Создаем развертывание:
![](https://cdn-images-1.medium.com/max/1000/0*1E22GHL5YiHshIg3.png)
Этой командой создается развертывание с 5 контейнерами (репликами) и открывается порт 80 для интернет-трафика.
2. Проверяем успешность развертывания с подами:
![](https://cdn-images-1.medium.com/max/1000/0*on30W6E-VyqMXvVF.png)
![](https://cdn-images-1.medium.com/max/1000/0*rd7qaHa026eVzpP1.png)
Этой командой проверяется успешность создания подов и развертывания.
3. Добавляем NodePort для доступа к развертыванию из Интернета:
![](https://cdn-images-1.medium.com/max/1000/0*poLqjJai5u7_jpml.png)
4. Тестируем развертывание:
Из команды kubectl get services -o wide
получаем IP-адрес для доступа к веб-серверу nginx. По завершении появляется тестовая страница Nginx:
![](https://cdn-images-1.medium.com/max/1000/0*7CC-kGxM2iFFBQAB.png)
5. Создаем ConfigMap:
В следующем скрипте сделаем ConfigMap с указанием на пользовательскую веб-страницу. Укажем, что веб-страница хранится в поде Kubernetes, которым запускается Nginx.
Начнем с файла vi index-html-configmap.yml
в текстовом редакторе:
![](https://cdn-images-1.medium.com/max/1000/0*jJ39SIt-ZhnhYaWY.png)
6. В исходном файле развертывания YAML укажем на ConfigMap:
Чтобы указать в развертывании на ConfigMap и внешний порт, выполним vi nginx-wk18.yml
и вставим данные в разделе volumeMount
и volumes
:
![](https://cdn-images-1.medium.com/max/1000/0*zxjrH7nJLIBsfP8H.png)
Этой командой создается развертывание:
![](https://cdn-images-1.medium.com/max/1000/0*dtSztCFqMtLJGPU7.png)
Изменения применяются командой apply
.
7. Создаем развертывание ConfigMap, развертывая службу:
![](https://cdn-images-1.medium.com/max/1000/0*5ZRwQ8E2WLLTdsu8.png)
8. Чтобы получить IP-адрес службы развертывания, запускаем kubectl get svc
.
Потом скопируем его тоже (имя службы другое, потому что я забыл поменять его в файле YAML выше):
![](https://cdn-images-1.medium.com/max/1000/0*t2Ej3NZYZDs7ekz5.png)
9. Проверяем IP-адрес командой curl
из интерфейса командной строки:
![](https://cdn-images-1.medium.com/max/1000/0*Kcujgv4bU8j9J_Ub.png)
Проверим интернет-доступ: подключимся в веб-браузере к общедоступному IP-адресу серверов плоскости управления и добавим в конце порт 30080:
![](https://cdn-images-1.medium.com/max/1000/0*tt2WMohYzxLLMZHw.png)
Мы создали развертывание и ConfigMap c указанием на настраиваемый html-файл.
Читайте также:
- Мониторинг кластера Kubernetes без зависимостей
- Распределенное МО с Dask и Kubernetes на GCP
- Как автоматизировать операции Kubernetes посредством Python
Читайте нас в Telegram, VK и Дзен
Перевод статьи Timothy Krassowski: Kubernetes Deployment that uses a custom index.html file on an Nginx Pod using a ConfigMap