• docker swarm集群部署



    前言

    docker swarm 集群部署及portainer安装。本文相关文件下载 Go!

    一、安装docker

    1.1 解压

    tar -zxvf docker-19.03.6.tgz
    
    cp docker/* /usr/bin/
    
    • 1
    • 2
    • 3

    1.2 配置docker 存储目录和dns

    /data/server/docker 为实际目录,操作前创建该目录,确保目录挂载到数据盘。 请不要使用系统盘的目录

    mkdir -p /data/server/docker
    
    vi /etc/docker/daemon.json
    
    {
    
    "data-root" : "/data/server/docker"
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.3 添加docker.service文件

    vi /etc/systemd/system/docker.service
    
    • 1
    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target
    [Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd  --bip=172.20.1.0/16
    ExecReload=/bin/kill -s HUP $MAINPID
    # Having non-zero Limit*s causes performance problems due to accounting overhead
    # in the kernel. We recommend using cgroups to do container-local accounting.
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    # Uncomment TasksMax if your systemd version supports it.
    # Only systemd 226 and above support this version.
    #TasksMax=infinity
    TimeoutStartSec=0
    # set delegate yes so that systemd does not reset the cgroups of docker containers
    Delegate=yes
    # kill only the docker process, not all processes in the cgroup
    KillMode=process
    # restart the docker process if it exits prematurely
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    1.4 docker 启动验证

    重新加载配置systemctl daemon-reload
    启动Dockerservice docker start
    查看docker启动状态systemctl status docker
    查看启动容器docker ps
    设置开机自启动systemctl enable docker.service
    查看docker开机启动状态 enabled:开启, disabled:关闭systemctl is-enabled docker.service

    二、docker swarm 集群配置

    2.1 关闭selinux

    vi /etc/selinux/config
    
    将 SELINUX=enforcing 改为 SELINUX=disabled #永久关闭,需要重启系统后生效
    
    setenforce 0 #临时生效
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2 设置主机名称并加入/etc/hosts

    代码如下(示例):

    例如:
    
    192.168.33.11 master
    
    192.168.33.12 node01
    
    192.168.33.13 node02
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.3 修改各个服务器名称(uname -a 进行验证)

    hostnamectl set-hostname docker_master
    
    hostnamectl set-hostname docker_node01
    
    hostnamectl set-hostname docker_node02
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.4 初始化swarm

    1. 修改时间 date -s "2023-11-09 19:04:00"
    2. 把一台机器master充当管理节点,第二台node01 、第三台node02作为工作节点。
      在master节点执行:docker swarm init --advertise-addr {ip}
      {ip } 为实际master的 eth 网卡 对应的ip地址,命令执行后,会有如下信息
    docker swarm join --token SWMTKN-1-05nc145s79y1l2zx1q4qtcfb0xtfzltzjb3gz757vwgi5o9y14-cgzm7zpcti9u9y3a53s8haq55 {ip}:{port}
    
    • 1
    1. 这个回显的命令就是工作节点需要执行的命令,直接分别在node节点执行即可
      以上命令可以在master节点中执行 docker swarm join-token worker 进行获取

    2.5 删除node节点

    node节点执行 docker swarm leave
    manager节点执行 docker swarm leave --force

    三、安装 portainer(自选)

    3.1 主节点机器,上传portainer.tar

    docker load --input portainer.tar
    
    • 1

    创建portainer的数据存储路径 如 /data/server/portainer

    3.2 启动portainer

    docker run -d -p 39000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/server/portainer:/data -d portainer/portainer
    
    • 1

    替换路径后执行以上命令,访问ip:39000即可访问portainer页面,初次进入只需要设置用户名密码即可,直接点击local标签然后connect即可,其余无需操作

    在这里插入图片描述

  • 相关阅读:
    【翻译】Raft 共识算法:概览
    react:swr接口缓存
    Gitlab 数据备份和还原(填坑版)
    TinyWebServer学习笔记-log
    C++设计模式02-——策略设计模式
    Android系统10 RK3399 init进程启动(二十八) SeAndroid政策兼容性
    【学习笔记】CF1817E Half-sum
    stm32f10系列的独立看门狗与窗口看门狗
    网络类型(通信分类)
    第三节:利用运行按钮运行VBA代码
  • 原文地址:https://blog.csdn.net/zhanghuaiyu_35/article/details/134503621