docker swarm部署minio集群

安裝系統(tǒng)

更換軟件源

  • 首先備份原來的軟件源并另存:
sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup
  • 編輯軟件源文件
sudo vim /etc/apt/sources.list
  • 注釋所有軟件源

阿里云源:

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

清華源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse
  • 修改完軟件源后框仔,更新軟件列表和軟件:
sudo apt update
sudo apt upgrade

安裝docker

sudo apt install docker.io
  • 設(shè)置docker鏡像加速

編輯daemon.json文件:

sudo vim /etc/docker/daemon.json

添加阿里云加速鏡像地址內(nèi)容:

{
"registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
  • 重啟服務(wù)
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker

創(chuàng)建Swarm

  • 在管理節(jié)點上創(chuàng)建一個swarm,請運行下面的命令
docker swarm init --advertise-addr <MANAGER-IP>

一旦swarm初使化了机打,你可以看到下面的響應(yīng)信息

docker swarm join \
  --token  SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
  192.168.99.100:2377

你現(xiàn)在可以運行上述命令添加worker節(jié)點到swarm。

添加label標(biāo)簽

# 查看節(jié)點信息
sudo docker node ls
# 為節(jié)點添加標(biāo)簽
sudo docker node update --label-add minio1=true (node_name)

minio1=true標(biāo)簽是minio在stack文件中定義的猿棉,用來確定節(jié)點部署的磅叛,所以必須添加,不然節(jié)點將不會部署萨赁。

為MinIO創(chuàng)建Docker secret

sudo echo "AKIAIOSFODNN7EXAMPLE" | sudo docker secret create access_key -
sudo echo "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" | sudo docker secret create secret_key -

access_key和secret_key可以自定義弊琴,盡量不要相同。

部署分布式minio服務(wù)

  • 在你的Swarm master上下載Docker Compose file 杖爽,然后運行下面的命令
sudo docker stack deploy --compose-file=docker-compose-secrets.yaml minio_stack
  • 查看節(jié)點部署信息
sudo docker service ls
服務(wù)列表

確認(rèn)每個節(jié)點都起來了敲董。

  • 查看節(jié)點日志
sudo docker service logs (節(jié)點ID)

確認(rèn)每個節(jié)點都運行正常

配置nginx負(fù)載均衡

  • 創(chuàng)建nginx配置文件minio.conf

內(nèi)容如下

upstream  minio-server {
       server    10.168.1.136:9003;
       server    10.168.1.136:9004;
       server    10.168.1.131:9001;
       server    10.168.1.131:9002;
}


server {
    listen              80;
    server_name 10.168.1.136;
    location / {
        proxy_buffering off;
        proxy_set_header Host $http_host;
        proxy_pass http://minio-server;
        proxy_redirect off;
    }
}

  • 創(chuàng)建nginx相關(guān)文件夾
sudo mkdir -p /home/nginx/logs /home/nginx/conf
  • 部署nginx
sudo docker run -d -p 80:80 --name nginx \
  -v /home/nginx/conf/:/etc/nginx/conf.d/ \
  -v /home/nginx/logs:/var/log/nginx \
  nginx

在瀏覽器中輸入服務(wù)器ip進行訪問


登錄界面

如果現(xiàn)在為初始化,請重試慰安,請檢查每個節(jié)點是否正常運行腋寨,以及每個節(jié)點是否能連通。
檢查每個節(jié)點的磁盤空間是否大于1G泻帮。

附:docker-compose-secrets.yaml文件內(nèi)容

version: '3.7'

services:
  minio1:
    image: minio/minio:RELEASE.2020-07-02T00-15-09Z
    hostname: minio1
    volumes:
      - minio1-data:/export
    ports:
      - "9001:9000"
    networks:
      - minio_distributed
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
      placement:
        constraints:
          - node.labels.minio1==true #和節(jié)點的label對應(yīng)
    command: server http://minio{1...4}/export
    secrets:
      - secret_key
      - access_key
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio2:
    image: minio/minio:RELEASE.2020-07-02T00-15-09Z
    hostname: minio2
    volumes:
      - minio2-data:/export
    ports:
      - "9002:9000"
    networks:
      - minio_distributed
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
      placement:
        constraints:
          - node.labels.minio2==true #和節(jié)點的label對應(yīng)
    command: server http://minio{1...4}/export
    secrets:
      - secret_key
      - access_key
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio3:
    image: minio/minio:RELEASE.2020-07-02T00-15-09Z
    hostname: minio3
    volumes:
      - minio3-data:/export
    ports:
      - "9003:9000"
    networks:
      - minio_distributed
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
      placement:
        constraints:
          - node.labels.minio3==true #和節(jié)點的label對應(yīng)
    command: server http://minio{1...4}/export
    secrets:
      - secret_key
      - access_key
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio4:
    image: minio/minio:RELEASE.2020-07-02T00-15-09Z
    hostname: minio4
    volumes:
      - minio4-data:/export
    ports:
      - "9004:9000"
    networks:
      - minio_distributed
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
      placement:
        constraints:
          - node.labels.minio4==true #和節(jié)點的label對應(yīng)
    command: server http://minio{1...4}/export
    secrets:
      - secret_key
      - access_key
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

volumes:
  minio1-data:
  minio2-data:
  minio3-data:
  minio4-data:

networks:
  minio_distributed:
    driver: overlay

secrets:
  secret_key:
    external: true
  access_key:
    external: true
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市计寇,隨后出現(xiàn)的幾起案子锣杂,更是在濱河造成了極大的恐慌,老刑警劉巖番宁,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件元莫,死亡現(xiàn)場離奇詭異,居然都是意外死亡蝶押,警方通過查閱死者的電腦和手機踱蠢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茎截,你說我怎么就攤上這事苇侵。” “怎么了企锌?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵榆浓,是天一觀的道長。 經(jīng)常有香客問我撕攒,道長陡鹃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任抖坪,我火速辦了婚禮萍鲸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擦俐。我一直安慰自己脊阴,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布捌肴。 她就那樣靜靜地躺著蹬叭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪状知。 梳的紋絲不亂的頭發(fā)上秽五,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音饥悴,去河邊找鬼坦喘。 笑死,一個胖子當(dāng)著我的面吹牛西设,可吹牛的內(nèi)容都是我干的瓣铣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贷揽,長吁一口氣:“原來是場噩夢啊……” “哼棠笑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起禽绪,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蓖救,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后印屁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體循捺,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年雄人,在試婚紗的時候發(fā)現(xiàn)自己被綠了从橘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖恰力,靈堂內(nèi)的尸體忽然破棺而出叉谜,到底是詐尸還是另有隱情,我是刑警寧澤牺勾,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布正罢,位于F島的核電站,受9級特大地震影響驻民,放射性物質(zhì)發(fā)生泄漏翻具。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一回还、第九天 我趴在偏房一處隱蔽的房頂上張望裆泳。 院中可真熱鬧,春花似錦柠硕、人聲如沸工禾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闻葵。三九已至,卻和暖如春癣丧,著一層夾襖步出監(jiān)牢的瞬間槽畔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工胁编, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厢钧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓嬉橙,卻偏偏與公主長得像早直,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子市框,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355