Итак, я хочу развернуть модуль 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 без постоянного требования тома.