Entonces quiero implementar mssql pod en kubernetes, aunque tengo algunos problemas para implementar mi volumen persistente.
Primero implementé mi clase de almacenamiento en mis espacios de nombres que parecen estar implementados, mi volumen persistente no se implementó con mssql con estado pendiente y cuando usé el comando describe dijo que no podía vincular mi volumen.
Entonces busqué en Google este tipo de error y encontré otra configuración de volumen persistente que me hizo cambiar mi archivo yaml, aunque ahora me encuentro con otro error.
Este error ya se ha preguntado en este foro, pero la respuesta no parece ajustarse ni solucionar mi problema. -> referencia:mismo problema
mensaje de error:
el volumen persistente pvc-mssql no es válido: spec.persistentvolumesource: prohibido: es inmutable después de la creación nodeaffinity: valor no válido: core.volumenodeaffinity(required:(*core.nodeselector) (0xc007163b00)}: el campo es inmutable
mi clase de almacenamiento (implementada):
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
mi pvc (con error):
apiVersion: v1
kind: PersistentVolume
metadata:
name: pvc-mssql
labels:
type: local
spec:
capacity:
storage: 12Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
hostPath:
path: /mnt/data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- master-production-internal
mi mssql (esperando ser implementado):
apiVersion: apps/v1
kind: Deployment
metadata:
name: mssql
labels:
app: mssql
spec:
replicas: 1
selector:
matchLabels:
app: mssql
template:
metadata:
labels:
app: mssql
spec:
containers:
- name: mssql
image: mcr.microsoft.com/mssql/server
resources:
requests:
cpu: 1
memory: 2Gi
env:
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
value: mypassword
ports:
- containerPort: 1433
volumeMounts:
- name: mssql
mountPath: /var/opt/mssql
volumes:
- name: mssql
persistentVolumeClaim:
claimName: pvc-mssql
todos se implementan en el mismo espacio de nombres, por supuesto. Mi Kubernetes consta de 4 nodos, también conocidos como 4 máquinas virtuales, donde cada máquina virtual tiene aproximadamente 2 vcpus y 4 GB de RAM con 128 GB de espacio en disco ejecutando el servidor Ubuntu: configurado con fail2ban, ufw, tengo 1 maestro y 3 nodos. Tengo la última versión del clúster que se implementó hace menos de 2 meses.
¿Cuál parece ser el problema o qué necesito cambiar en mi PVC y tal vez algo que deba cambiar en mi yaml de implementación de mssql?
Según entiendo correctamente el error de mi mssql, no puede vincular el volumen triturado en otro nodo, por eso ahora tengo un nodo específico en mi pvc, que es mi maestro. <- ¿Esto también es correcto o debería cambiarlo?
Respuesta1
Lo logré implementando mssql y mongo pod sin un reclamo de volumen persistente.