Implantei o servidor NFS usando o seguinte manifesto
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nfs-pv-provisioning-demo
namespace: nfs
labels:
role: nfs-server
spec:
storageClassName: aws-gp3
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-server
namespace: nfs
spec:
replicas: 1
selector:
matchLabels:
role: nfs-server
template:
metadata:
labels:
role: nfs-server
spec:
containers:
- name: nfs-server
image: registry.k8s.io/volume-nfs:0.8
ports:
- name: nfs
containerPort: 2049
- name: mountd
containerPort: 20048
- name: rpcbind
containerPort: 111
securityContext:
privileged: true
volumeMounts:
- mountPath: /exports
name: mypvc
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: nfs-pv-provisioning-demo
---
kind: Service
apiVersion: v1
metadata:
name: nfs-server
namespace: nfs
spec:
ports:
- name: nfs
port: 2049
- name: mountd
port: 20048
- name: rpcbind
port: 111
selector:
role: nfs-server
---
Mas quando eu uso nfs-server.nfs.svc.cluster.local
o nome do servidor, não consegui resolver. Funcionou quando eu uso Cluster IP para endpoint de serviço.
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs
namespace: nfs
spec:
capacity:
storage: 1Mi
accessModes:
- ReadWriteMany
nfs:
server: nfs-server.nfs.svc.cluster.local
# server: 172.20.144.30
path: "/"
mountOptions:
- nfsvers=4.2
Alguma idéia do que há de errado com essa configuração?
Este é um bug conhecido no Kubernetes: provavelmente um problema de inicialização onde o servidor NFS é configurado antes que o pod possa alcançar o DNS interno.
Solução suja: se você quiser manter o
nfs-server.nfs.svc.cluster.local
, você pode editar o arquivo /etc/hosts em cada nó com onfs-server.nfs.svc.cluster.local
próximo ao IP:Você pode encontrar mais informações aqui: https://github.com/kubernetes/minikube/issues/3417 ou pesquisando no Google
server: nfs-server.nfs.svc.cluster.local