Назад | Перейти на главную страницу

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

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

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

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

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

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

постоянный том pvc-mssql недействителен: spec.persistentvolumesource: запрещено: неизменяемо после создания nodeaffinity: недопустимое значение: core.volumenodeaffinity (обязательно: (* 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

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

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

Поскольку я правильно понимаю ошибку моего mssql, он не может привязать том клочка к другому узлу, поэтому теперь у меня есть конкретный узел в моем pvc, который является моим хозяином. <- это тоже правильно, или мне следует это изменить?