ошибка nodeAffinity утверждения постоянного тома kubernetes

ошибка nodeAffinity утверждения постоянного тома kubernetes

Итак, я хочу развернуть модуль MSSQL на Kubernetes, хотя у меня возникли некоторые проблемы с развертыванием моего постоянного тома.

Сначала я развернул свой класс хранения в своих пространствах имен, который, похоже, развернут, мой постоянный том не был развернут в состоянии ожидания, и при использовании команды describe он сообщил, что не может привязать мой том.

Поэтому я поискал в Google этот тип ошибок и наткнулся на другую постоянную конфигурацию тома, которая заставила меня изменить файл yaml, хотя теперь я сталкиваюсь с другой ошибкой.

Эта ошибка уже обсуждалась на этом форуме, но ответ, похоже, не соответствует моему мнению и не решает мою проблему. -> ссылка:та же проблема

сообщение об ошибке:

постоянный том pvc-mssql недействителен: spec.persistentvolumesource: denied: неизменяем после создания nodeaffinity: недопустимое значение: core.volumenodeaffinity(required:(*core.nodeselector) (0xc007163b00)}: поле неизменяемо

ошибка изображения

мой класс хранения (развернутый):

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

мой ПВХ (с ошибкой):

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

мой mssql (ожидает развертывания):

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

все они, конечно, развернуты в одном пространстве имен. мой kubernetes состоит из 4 узлов, или 4 виртуальных машин, где каждая виртуальная машина имеет около 2 виртуальных ЦП и 4 ГБ оперативной памяти с 128 ГБ дискового пространства, на котором запущен сервер Ubuntu: настроенный с помощью fail2ban, ufw, у меня есть 1 главный узел и 3 узла. У меня последняя версия кластера, которая была развернута менее 2 месяцев назад

В чем, по-вашему, проблема и что мне нужно изменить в моем pvc и, может быть, что-то мне нужно изменить в моем развернутом mssql yaml?

Насколько я понимаю ошибку моего MSSQL, он не может привязать том Shred к другому узлу, поэтому у меня теперь есть определенный узел в моем PVC, который является моим главным. <- это тоже правильно или мне следует это изменить?

решение1

Я добился этого, развернув модули mssql и mongo без постоянного требования тома.

Связанный контент