GLPI в k8s. 06-glpi-deployment + 07-glpi-service
Раскатываем саму приложуху. Образ GLPI слушает порт 80. Переменные окружения для подключения к БД берутся из Secret. nodeName указан k8s-wn02 (ещё раз вспоминаем PersistentVolumes), где лежит hostPath для данных приложения.
Создаём файл 06-glpi-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: glpi
namespace: glpi
labels:
app: glpi
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: glpi
template:
metadata:
labels:
app: glpi
spec:
nodeName: k8s-wn02
containers:
- name: glpi
image: glpi/glpi:12.0.0
envFrom:
- secretRef:
name: glpi-app-secret
env:
- name: GLPI_SKIP_AUTOINSTALL
value: "false"
ports:
- containerPort: 80
name: http
volumeMounts:
- name: glpi-data
mountPath: /var/glpi
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "1000m"
volumes:
- name: glpi-data
persistentVolumeClaim:
claimName: glpi-app-pvc
Тут всё аналогично со статьёй mariadb-deployment
Запускаем
kubectl apply -f 06-glpi-deployment.yaml
Смотрим
kubectl get deployments -n glpi
В колонке Ready должны быть оба сервиса 1/1
Ну и сразу опубликуем сервис
Создаём файл 07-glpi-service.yaml
apiVersion: v1
kind: Service
metadata:
name: glpi
namespace: glpi
labels:
app: glpi
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
nodePort: 30080
selector:
app: glpi
Применяем
kubectl apply -f 07-glpi-service.yaml
Смотрим
kubectl get services -n glpi
Должно быть оба сервиса
В адресной строке вбиваем IP любой ноды и порт 30080, который мы указали в манифесте сервиса glpi. Логин и пароль glpi.
Всё...!