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
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.