Primer commit
This commit is contained in:
37
deployments/isoserver.yaml
Normal file
37
deployments/isoserver.yaml
Normal file
@ -0,0 +1,37 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: iso-server
|
||||
namespace: kubevirt
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: iso-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: iso-server
|
||||
spec:
|
||||
containers:
|
||||
- name: httpd
|
||||
image: httpd:2.4
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: iso-storage
|
||||
mountPath: /usr/local/apache2/htdocs
|
||||
- name: samba
|
||||
image: dperson/samba
|
||||
args: ["-p", "-s", "isos;/share;yes;no"]
|
||||
ports:
|
||||
- containerPort: 445
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
volumeMounts:
|
||||
- name: iso-storage
|
||||
mountPath: /share
|
||||
volumes:
|
||||
- name: iso-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: iso-pvc
|
25
ingress/ingress.yaml
Normal file
25
ingress/ingress.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: iso-server
|
||||
namespace: kubevirt
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||
# nginx.ingress.kubernetes.io/whitelist-source-range: "192.168.1.0/24"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- isoserver.manabo.org
|
||||
secretName: isoserver-tls
|
||||
rules:
|
||||
- host: isoserver.manabo.org
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: iso-server
|
||||
port:
|
||||
number: 80
|
6
kustomization.yaml
Normal file
6
kustomization.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- pvc/iso-pvc.yaml
|
||||
- deployments/isoserver.yaml
|
||||
- services/service.yaml
|
||||
- ingress/ingress.yaml
|
4
namespace.yaml
Normal file
4
namespace.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: kubevirt
|
12
pvc/iso-pvc.yaml
Normal file
12
pvc/iso-pvc.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: iso-pvc
|
||||
namespace: kubevirt
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 800Gi
|
||||
storageClassName: nfs-manabo
|
34
readme.md
Normal file
34
readme.md
Normal file
@ -0,0 +1,34 @@
|
||||
# Manifiestos para servidor HTTP de imágenes ISO (KubeVirt ISO Server)
|
||||
|
||||
Este repositorio contiene los manifiestos necesarios para desplegar un servidor HTTP basado en Apache (httpd:2.4) que sirve una carpeta compartida con archivos ISO, accesible por KubeVirt para instalar sistemas operativos en máquinas virtuales.
|
||||
|
||||
>El almacenamiento se expone desde un servidor externo NFS (por ejemplo, niflheim) con las imágenes ISO ubicadas en /mnt/Iso.
|
||||
|
||||
## Requisitos:
|
||||
|
||||
- El servidor NFS debe exportar la ruta /mnt/Iso con permisos RO (solo lectura) para la red del clúster.
|
||||
- Las ISOs deben estar copiadas dentro de /mnt/Iso.
|
||||
- Debes tener configurado nfs-common en todos los nodos del clúster.
|
||||
|
||||
### Despliegue manual:
|
||||
Entra al repositorio:
|
||||
|
||||
cd ~/k3s/k8s-kubevirt-isoserver
|
||||
|
||||
Aplica los manifiestos en orden:
|
||||
|
||||
kubectl apply -f namespace.yaml
|
||||
kubectl apply -f pv/iso-pv.yaml
|
||||
kubectl apply -f pv/iso-pvc.yaml
|
||||
kubectl apply -f deployments/httpd.yaml
|
||||
kubectl apply -f services/httpd.yaml
|
||||
|
||||
### Acceso:
|
||||
|
||||
El servicio httpd queda expuesto por un NodePort que puedes consultar con:
|
||||
|
||||
kubectl get svc -n iso-server
|
||||
|
||||
>Despues de pasarlo por npm, puedes montar esta URL como cdrom o disk en tus VirtualMachine (VM) manifests, usando por ejemplo:
|
||||
|
||||
http://iso-server.manabo.org/windows.iso
|
20
services/service.yaml
Normal file
20
services/service.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: iso-server
|
||||
namespace: kubevirt
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: iso-server
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
nodePort: 30088 # Puerto externo HTTP
|
||||
- name: samba
|
||||
port: 445
|
||||
targetPort: 445
|
||||
nodePort: 30445 # Puerto externo Samba
|
||||
externalIPs:
|
||||
- 192.168.1.9
|
Reference in New Issue
Block a user