Erro de nodeAffinity de reivindicação de volume persistente do Kubernetes

Erro de nodeAffinity de reivindicação de volume persistente do Kubernetes

Portanto, quero implantar o pod mssql no kubernetes, embora esteja tendo problemas para implantar meu volume persistente.

Implantei primeiro minha classe de armazenamento em meus namespaces que parecem estar implantados, meu volume persistente não foi implantado pelo mssql com status pendente e ao usar o comando de descrição ele disse que não poderia vincular meu volume

Então pesquisei esse tipo de erro no Google e me deparei com outra configuração de volume persistente que me fez alterar meu arquivo yaml, embora agora me deparei com outro erro.

Este erro já foi solicitado neste fórum, mas a resposta não parece se adequar ou corrigir o meu problema. -> referência:mesmo problema

mensagem de erro:

o volume persistente pvc-mssql é inválido: spec.persistentvolumesource: proibido: é imutável após a criação nodeaffinity: valor inválido: core.volumenodeaffinity(required:(*core.nodeselector) (0xc007163b00)}: o campo é imutável

imagem de erro

minha classe de armazenamento (implantada):

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

meu pvc (com erro):

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

meu mssql (aguardando para ser implantado):

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 são implantados no mesmo namespace, é claro. meu kubernetes existe de 4 nós, também conhecidos como 4 VMs, onde cada VM tem cerca de 2vcpus e 4 GB de RAM com 128 GB de espaço em disco executando o servidor Ubuntu: configurado com fail2ban, ufw, tenho 1 mestre e 3 nós. Tenho a versão mais recente do cluster implantada há menos de 2 meses

Qual parece ser o problema e/ou o que preciso mudar no meu pvc e talvez algo que eu tenha que mudar no meu yaml de implantação do mssql?

Pelo que entendi corretamente o erro do meu mssql, ele não pode vincular o volume fragmentado em outro nó, é por isso que agora tenho um nó específico em meu pvc que é meu mestre. <- isso também está correto ou devo alterá-lo?

Responder1

Consegui isso implantando o pod mssql e mongo sem uma reivindicação de volume persistente.

informação relacionada