Docker swarm 集群NFS共享目录

教程分享 > Linux和Shell教程 (1938) 2024-03-18 14:47:44

Docker swarm 集群NFS共享目录
 

NFS 主机安装服务端

服务端安装命令如下:

sudo apt install nfs-kernel-server -y
NFS服务端安装
NFS服务端安装

服务端配置NFS存储路径

sudo mkdir /nfs
sudo chmod 777 -R /nfs
sudo vi /etc/exports

添加以下内容

/nfs 192.168.79.0/24(rw,sync,no_root_squash,no_subtree_check)
nfs路径配置
nfs路径配置

配置完毕后重载配置:

sudo exportfs -rav

NFS服务的配置完毕!

NFS客户端

所有Docker主机安装NFS客户端,安装命令如下:

sudo apt install nfs-common -y
NFS客户端安装
NFS客户端安装

提示:
安装了服务端的主机不用再次安装客户端,已经随同安装了。


查看服务端的目录列表

showmount -e 192.168.79.129

服务的目录列表

测试挂载目录

sudo mkdir /mynfs
sudo mount -t nfs 192.168.79.129:/nfs /mynfs

在/mynfs目录中创建文件,然后在NFS服务端的共享目录中查看文件是否存在,存在则代表共享成功。

验证成哥
验证成功

卸载NFS目录

sudo umount /mynfs



方案一:主机先挂载nfs目录,docker配置挂载后的共享目录(靠谱)


方案二:Docker Stack直接配置NFS共享目录(有时候不生效)

既然是集群,我们就不会希望跑到每个节点上面去配置NFS挂载和映射。做集群共享卷的关键,就是在compose文件中创建volume。语法如下:

volumes:
  my-vol:
    driver_opts:
      type: "nfs"
      o: "addr=192.168.79.129,rw"
      device: ":/volume1/swarm"

与应用结合

下面来一个复杂一点的 stack 配置,有 Prometheus 与 Grafana 两个容器,其中 Grafana 挂载 NFS 卷作为持久化存储,两个容器通过 overlay 网络互访。
 

version: '3.7'

services:
  grafana:
    image: grafana/grafana:latest
    hostname: grafana
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
    networks:
      - monitor_distributed
    ports:
      - 3000:3000
    volumes:
      - grafana-data:/var/lib/grafana

  prometheus:  
    image: prom/prometheus:latest
    hostname: prometheus
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
    networks:
      - monitor_distributed

networks:
  monitor_distributed:
    driver: overlay

volumes:
  grafana-data:
    driver_opts:
      type: "nfs"
      o: "addr=192.168.79.129,rw"
      device: ":/volume1/grafana"
https://www.leftso.com/article/1064.html

相关文章
Docker swarm 集群NFS共享目录 NFS 主机安装服务端服务端安装命令如下:sudo apt install nfs-kernel-server -yNFS服务端安装 服务端配置NF...
环境准备docker swarm 集群环境NFS服务资源文件docker-mutil-stack.zip(访问密码: 9987)1.创建overlay网络网络名称:stackMutilNetwo...
Docker stack 使用演示案例一环境准备安装好docker swarm(本文以1manager+3worker为例)spring boot demo演示项目通过NFS实现共享目录访问资源...
docker 常用命令整理(持续更新)docker运行容器资源相关 查看所有运行docker的资源消耗情况docker stats 查看指定运行容器资源消耗情况docker stats 容器ID...
安装篇国外:curl -fsSL https://get.docker.com | bash国内:curl -fsSL https://get.docker.com | bash -s dock...
docker与docker-compose配置文件版本对应关系Compose file version 3 reference  Compose file formatDocker Engine...
添加docker-ce的yum源实际上,添加的这个yum源仍然是el7的yum install -y yum-utils yum-config-manager --add-repo htt...
Docker overlay网络_Docker 集群网络overlay网络overlay网络用于连接不同机器上的docker容器,允许不同机器上的容器相互通信,同时支持对消息进行加密,当我们初始...
Docker安装部署Redisdocker 安装部署Redis环境Linux系统dockerdocker-compose 相关文章:Ubuntu 在线安装 Docker-左搜 (leftso.c...
CentOS 7 安装最新Docker-ce# 配置repo源 默认repo源没有docker-ce安装包,需要新的repo源安装依赖库,yum-utils 提供命令"yum-config-ma...
Docker容器内部访问主机端口服务的几个办法一通过主机局域网ip访问二通过docker0桥接网卡访问三通过配置网络模式为host访问
Docker swarm 简介Docker swarm 集群,Docker swarm是docker官方提供的一种集群方式,用于小量微服务部署还算不错,比庞大的k8s体系更轻量。节点 运行 Do...
Docker MySQL数据库备份脚本参考 title(backup.sh)#!/bin/sh# useage# /path/to/backup.sh dbNa
网络信息 主机1 192.168.79.128主机2 192.168.79.133主机1/2关闭防火墙sudo ufw disable  修改 docker0 ip  sudo vi /lib/...
docker-compose 部署不支持deploydocker-compose up 启动提示如下:WARNING: Some services (web) use the 'deploy' ...