Heimdall

Resumen
-
Creación del
Namespaceheimdall. -
Creación de PVC con
nfs-clientcomoStorageClass. -
Despliegue de Heimdall usando un
Deployment. -
Exposición del servicio usando NGINX Ingress.
Namespace
apiVersion: v1
kind: Namespace
metadata:
name: heimdall
PVC
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: heimdall-pvc
namespace: heimdall
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-client
resources:
requests:
storage: 2Gi
apiVersion: v1
kind: PersistentVolume
metadata:
name: heimdall-pv
namespace: heimdall
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: ""
nfs:
server: 192.168.1.100
path: "/exported/path/mi-directorio-fijo"
Deployment
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: heimdall
namespace: heimdall
spec:
replicas: 2
selector:
matchLabels:
app: heimdall
template:
metadata:
labels:
app: heimdall
spec:
containers:
- name: heimdall
image: lscr.io/linuxserver/heimdall:latest
ports:
- containerPort: 80
volumeMounts:
- name: shared-storage
mountPath: /config
volumes:
- name: shared-storage
persistentVolumeClaim:persistentVolume:
claimName: heimdall-pvcpv
Service
---
apiVersion: v1
kind: Service
metadata:
name: heimdall-svc
namespace: heimdall
spec:
ports:
- port: 80
targetPort: 80
clusterIP: None
selector:
app: heimdall
Ingress
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: heimdall-ingress
namespace: heimdall
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-staging" # Puedes cambiar por "letsencrypt-prod"
spec:
ingressClassName: nginx
tls:
- hosts:
- heimdall.k8s.dominio.com
secretName: heimdall-tls # Nombre del secreto con el certificado TLS
rules:
- host: heimdall.k8s.dominio.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: heimdall-svc
port:
number: 80
Comandos
# Aplicar
kubectl apply -f heimdall.yaml
# Comprobar
kubectl get all -n heimdall
# Escala el Deployment
kubectl scale deployment heimdall --replicas=2 -n heimdall
# Parar Deployment sin eliminarlo
kubectl scale deployment heimdall --replicas=0 -n heimdall
# reinicia deployment para aplicar cambios
kubectl rollout restart deployment heimdall -n heimdall