【殡仪馆档案制度建设案例】
你有没有遇过这种糟心事儿?去年我邻居家老人过世,办后事找殡仪馆档案,本来该存的死亡证明找不到,跑了三趟才补齐。更离谱的是,2021年河南某殡仪馆还发生过骨灰错发的事儿,查了半天就是因为档案混了。其实殡...
2026年06月30日 21:40:18
需要3台CentOS7.9服务器,配置2核4G,固定内网IP(示例:manager节点192.168.1.10,worker1:192.168.1.11,worker2:192.168.1.12)。所有节点需关闭防火墙或开放端口:2377/tcp、80/tcp、5432/tcp、9000/tcp,命令:
``` sudo systemctl stop firewalld && sudo systemctl disable firewalld sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config ```所有节点执行以下命令:
``` 卸载旧版本 sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 添加Docker国内源 sudo yum-config-manager --add-repo https://mirror.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo 安装Docker sudo yum install -y docker-ce docker-ce-cli containerd.io 启动并开机自启 sudo systemctl start docker && sudo systemctl enable docker 配置镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://mirror.aliyuncs.com", "https://hub-mirror.c.163.com"] } EOF 重启Docker生效 sudo systemctl daemon-reload && sudo systemctl restart docker ```仅在manager节点(192.168.1.10)执行集群初始化命令:
``` docker swarm init --advertise-addr 192.168.1.10 ```命令执行后输出worker节点加入命令,示例如下(需保存):
``` docker swarm join --token SWMTKN-1-xxxxxxx 192.168.1.10:2377 ```分别在worker1、worker2节点执行上述加入命令,完成后在manager节点验证集群状态:
``` docker node ls ```确认所有节点状态为Ready,若失败需检查IP与网络连通性。
manager节点执行命令,实现集群内服务通信:
``` docker network create --driver overlay archive-net ```解决集群节点数据同步问题,所有节点执行:
``` 安装GlusterFS sudo yum install -y glusterfs-server -y 启动服务 sudo systemctl start glusterd && sudo systemctl enable glusterd ```
manager节点添加信任节点:
``` gluster peer probe 192.168.1.11 gluster peer probe 192.168.1.12 验证节点 gluster peer status ```创建集群卷:
``` gluster volume create archive-data replica 3 transport tcp \ 192.168.1.10:/gluster/archive \ 192.168.1.11:/gluster/archive \ 192.168.1.12:/gluster/archive 启动卷 gluster volume start archive ```所有节点挂载卷:
``` sudo mkdir -p /gluster/archive sudo mount -t glusterfs 192.168.1.10:/archive-data /gluster/archive 配置开机自启(修改/etc/fstab) echo '192.168.1.10:/archive-data /gluster/archive glusterfs defaults,_netdev 0 0' | sudo tee -a /etc/fstab ```manager节点创建docker-compose.yml,内容完整可直接复制:
``` version: '3' services: user-center: image: postgres:14-alpine volumes: - /gluster/archive/user:/var/lib/postgresql/data environment: POSTGRES_USER: archive_user POSTGRES_PASSWORD: Archive@2024 POSTGRES_DB: archive_db deploy: replicas: 2 placement: constraints: [node.role == worker] networks: - archive-net archive-storage: image: minio/minio:latest command: server /data volumes: - /gluster/archive/files:/data environment: MINIO_ROOT_USER: admin MINIO_ROOT_PASSWORD: Archive@2024 deploy: replicas: 2 placement: constraints: [node.role == worker] networks: - archive-net web-app: image: openkm/openkm-ce:6.3.10 ports: - "8080:8080" deploy: replicas: 3 networks: - archive-net networks: archive-net: external: true ```部署服务栈:
``` docker stack deploy -c docker-compose.yml archive-stack ```验证服务运行状态:
``` docker stack services archive-stack ```确认所有服务副本数为期望状态,若异常执行docker service logs 服务名排查。
manager节点安装Nginx,配置反向代理:
``` 安装Nginx sudo yum install -y nginx -y 创建配置文件 sudo tee /etc/nginx/conf.d/archive-lb.conf <<-'EOF' upstream archive_servers { server 192.168.1.10:8080; server 192.168.1.11:8080; server 192.168.1.12:8080; } server { listen 80; server_name archive.你的域名.com; location / { proxy_pass http://archive_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } EOF 验证配置并重启Nginx sudo nginx -t && sudo systemctl reload nginx ```