Docker Swarm com NFS Server
Bem, eu iniciei recentemente no mundo Docker, jogaram a bomba no meu colo e como eu não nego novos conhecimentos, cai dentro. Fiquei meio doido com tanta informação sobre containers, volumes, network e etc…
Quando consegui instalar o Swarm, tive muita dificuldade em configurar corretamente as diretrizes para funcionamento pleno do meu NFS Server com os NODES do meu cluster.
Então vamos a pratica utilizando CentoOS 7, instalando o NFS Server:
yum -y install nfs-utils
criar a pasta e dar as permissões que será compartilhada
mkdir /var/data
chown -R nfsnobody: /var/data
chmod -R 755 /var/data
configurar o /etc/exports e rode o comando
/var/data *(rw,sync,no_root_squash,no_all_squash)
export -a
e vamos restartar o nfs-server como serviço
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl restart rpcbind
systemctl restart nfs-server
systemctl restart nfs-lock
systemctl restart nfs-idmap
agora vamos liberar o NFS no firewall do centOS 7
firewall-cmd — permanent — zone=public — add-service=nfs
firewall-cmd — permanent — zone=public — add-service=mountd
firewall-cmd — permanent — zone=public — add-service=rpc-bind
firewall-cmd — reload
Agora vamos tratar o que tem que ser posto nos NODES ( NFS Cliente )
Instalando o NFS-Client
yum -y install nfs-utils
Criar a pasta aonde sera mountado o NFS
mkdir /var/data
agora basta montarmos com o comando:
mount -t nfs IP_DO_SERVER:/var/data /var/data
ou basta adicionar a linha abaixo no /etc/fstab para ser montado sempre que o PC reiniciar
IP_DO_SERVER:/var/data /var/data nfs defaults 0 0
agora basta sempre que for criar um service em seu Swarm, criar volumes com bind ao inves de volumes, que basta voce apontar o PATH SOURCE para dentro do /var/data
Espero que tenha sido util, com essa informação quando o seu container der o comando chown e chmod, não teremos erro de Operation not permitted.
Qualquer dúvida estou a disposição.