swarm部署高可用harbor 倉庫

harbor官方下載地址:

https://github.com/vmware/harbor/releases

配置參考:

https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

此處使用離線下載安裝包:

wget ?https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.1.tgz?(需要×××)

tar -zxvf harbor-offline-installer-v1.5.1.tgz

cd ?harbor

#Configure?harbor.cfg

主要配置點(diǎn):

hostname?=?xxx:8888

#如需要配置實(shí)現(xiàn)高可用赴精,則需將registry 放到高可用存儲(chǔ)節(jié)點(diǎn)冒窍, 以及adminserver 連接的mysql數(shù)據(jù)庫、redis 配置為外置數(shù)據(jù)庫畜挨。如不配置redis贰盗,則harbor節(jié)點(diǎn)異常许饿,則docker client 需要進(jìn)行重新登錄。此處數(shù)據(jù)庫均使用 ceph rbd 持久化存儲(chǔ)舵盈。

修改完成后陋率,執(zhí)行install.sh ,由于官方默認(rèn)是使用docker-compose 啟動(dòng),執(zhí)行腳本會(huì)默認(rèn)檢查相關(guān)組件秽晚,這里把如下3行注釋翘贮,主要用install.sh 運(yùn)行配置文件和加載鏡像。

#docker-compose

#check_dockercompose

#check_docker

sh install.sh

執(zhí)行完成后會(huì)在對應(yīng)目錄生成相關(guān)配置文件爆惧±暌常看腳本你會(huì)發(fā)現(xiàn),其實(shí)最終調(diào)用的是./prepare ?腳本來生成配置文件等信息扯再。我們不用compose芍耘,所以也可以直接使用prepare ? 生成配置文件。

修改docker-compose.yml文件熄阻,使用version 3 支持stack 部署斋竞。實(shí)例如下,這里去掉了log模塊秃殉,直接使用docker service logs 查看日志更方便坝初。

主要注意點(diǎn):

為實(shí)現(xiàn)高可用,如下mysql钾军、redis鳄袍、registry 均使用的ceph rbd 存儲(chǔ)。其他service使用mfs共享存儲(chǔ)掛載吏恭。

version: '3'

services:

#log:

# ?image: vmware/harbor-log:v1.5.1

# ?volumes:

# ? ?- /var/log/:/var/log/docker/

# ? ?- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/log/:/etc/logrotate.d/

# ?ports:

# ? ?- 1514:10514

# ?networks:

# ? ?- harbor

registry:

image: vmware/registry-photon:v2.6.2-v1.5.1

volumes:

- harbor_registry:/storage

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/registry/:/etc/registry/

networks:

- harbor

environment:

- GODEBUG=netdns=cgo

command:

["serve", "/etc/registry/config.yml"]

# depends_on:

# ? - log

# logging:

# ? driver: "syslog"

# ? options:

# ? ? syslog-address: "tcp://log:10514"

# ? ? tag: "registry"

mysql:

image: vmware/harbor-db:v1.5.1

volumes:

- harbor_mysql:/var/lib/mysql

networks:

- harbor

env_file:

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/db/env

# depends_on:

# ? - log

# logging:

# ? driver: "syslog"

# ? options:

# ? ? syslog-address: "tcp://log:10514"

# ? ? tag: "mysql"

adminserver:

image: vmware/harbor-adminserver:v1.5.1

env_file:

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/adminserver/env

volumes:

- /mnt/mfs/docker/swarm_stack/stack/harbor/online/config/:/etc/adminserver/config/

- /mnt/mfs/docker/swarm_stack/stack/harbor/online/secretkey:/etc/adminserver/key

- /mnt/mfs/docker/swarm_stack/stack/harbor/online/data:/data/

networks:

- harbor

# depends_on:

# ? - log

# logging:

# ? driver: "syslog"

# ? options:

# ? ? syslog-address: "tcp://log:10514"

# ? ? tag: "adminserver"

ui:

image: vmware/harbor-ui:v1.5.1

env_file:

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/ui/env

volumes:

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/ui/app.conf:/etc/ui/app.conf

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/ui/private_key.pem:/etc/ui/private_key.pem

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/ui/certificates/:/etc/ui/certificates/

- /mnt/mfs/docker/swarm_stack/stack/harbor/online/secretkey:/etc/ui/key

- /mnt/mfs/docker/swarm_stack/stack/harbor/online/ca_download/:/etc/ui/ca/

- /mnt/mfs/docker/swarm_stack/stack/harbor/online/psc/:/etc/ui/token/

networks:

- harbor

depends_on:

- adminserver

- registry

#logging:

# ?driver: "syslog"

# ?options:

# ? ?syslog-address: "tcp://log:10514"

# ? ?tag: "ui"

jobservice:

image: vmware/harbor-jobservice:v1.5.1

env_file:

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/jobservice/env

volumes:

- /mnt/mfs/docker/swarm_stack/stack/harbor/online/job_logs:/var/log/jobs

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/jobservice/config.yml:/etc/jobservice/config.yml

networks:

- harbor

depends_on:

- redis

- ui

- adminserver

#logging:

# ?driver: "syslog"

# ?options:

# ? ?syslog-address: "tcp://log:10514"

# ? ?tag: "jobservice"

redis:

image: vmware/redis-photon:v1.5.1

volumes:

- harbor_redis:/data

networks:

- harbor

#logging:

# ?driver: "syslog"

# ?options:

# ? ?syslog-address: "tcp://log:10514"

# ? ?tag: "redis"

proxy:

image: vmware/nginx-photon:v1.5.1

volumes:

- /mnt/mfs/docker/swarm_stack/stack/harbor/common/config/nginx:/etc/nginx

networks:

- harbor

ports:

- 8888:80

- 8889:443

- 4443:4443

depends_on:

- mysql

- registry

- ui

# logging:

# ? driver: "syslog"

# ? options:

# ? ? syslog-address: "tcp://log:10514"

# ? ? tag: "proxy"

networks:

harbor:

external: false

volumes:

harbor_registry:

driver: rbd

driver_opts:

size: 200000

harbor_mysql:

driver: rbd

driver_opts:

size: 100000

harbor_redis:

driver: rbd

driver_opts:

size: 10000

docker stack ?deploy ?-c docker-compose.yml ?harbor ?拗小,稍等數(shù)據(jù)庫初始化,即可登錄harbor使用樱哼。確保7個(gè)service 有7個(gè)穩(wěn)定Running狀態(tài)的容器哀九。

[root@docker74 harbor]# docker stack ?ps harbor |grep -i Runn

q6uw8um1tmwx ? ? ? ?harbor_proxy.1 ? ? ? ? vmware/nginx-photon:v1.5.1 ? ? ? ? ? ? docker27 ? ? ? ? ? ?Running ? ? ? ? ? ? Running 15 minutes ago

mkhg3eowzugn ? ? ? ?harbor_redis.1 ? ? ? ? vmware/redis-photon:v1.5.1 ? ? ? ? ? ? docker39? ? ? ? ? ? ? ? Running ? ? ? ? ? ? Running 16 minutes ago

v61q3gynk9c0 ? ? ? ?harbor_jobservice.1 ? ?vmware/harbor-jobservice:v1.5.1 ? ? ? ?docker75? ? ? ? ? ? ?Running ? ? ? ? ? ? Running 16 minutes ago

nry1l16apmpt ? ? ? ?harbor_ui.1 ? ? ? ? ? ?vmware/harbor-ui:v1.5.1 ? ? ? ? ? ? ? ?docker40? ? ? ? ? ? ? ? ? ? ? ? Running ? ? ? ? ? ? Running 15 minutes ago

f4qw8xfj4gxt ? ? ? ?harbor_adminserver.1 ? vmware/harbor-adminserver:v1.5.1 ? ? ? docker38? ? ? ? ? Running ? ? ? ? ? ? Running 15 minutes ago

wkjbcgd4evms ? ? ? ?harbor_mysql.1 ? ? ? ? vmware/harbor-db:v1.5.1 ? ? ? ? ? ? ? ?docker39? ? ? ? ? ? ? ? ? Running ? ? ? ? ? ? Running 16 minutes ago

1oyhjtv5d8b6 ? ? ? ?harbor_registry.1 ? ? ?vmware/registry-photon:v2.6.2-v1.5.1 ? docker27? ? ? ? ? ? ? Running ? ? ? ? ? ? Running 16 minutes ago

客戶端首次使用registry需要做如下配置:

1、修改docker配置文件搅幅,增加 ? ? ? ?"insecure-registries":["10.211.121.26:8888"] ?到 /etc/docker/daemon.json

systemctl reload docker

2阅束、docker login ?10.211.121.26:8888 ?-uadmin ?-pHarbor12345

登錄后即可正常使用 docker push/pull ?進(jìn)行鏡像推送和拉取。

高可用測試:

1茄唐、重啟harbor_registry 息裸,業(yè)務(wù)出現(xiàn)短暫失效,待容器重啟成功后可繼續(xù)使用。

2界牡、重啟harbor_proxy簿寂,業(yè)務(wù)出現(xiàn)短暫失效,待容器重啟成功后可繼續(xù)使用宿亡。

3常遂、重啟harbor_redis,業(yè)務(wù)出現(xiàn)短暫失效挽荠,重啟成功后正常克胳。(redis數(shù)據(jù)持久化在rbd中)

4、重啟harbor_jobservice圈匆,無影響漠另。

5、重啟harbor_ui跃赚,無影響

6笆搓、重啟harbor_adminserver,業(yè)務(wù)出現(xiàn)短暫失效纬傲,待容器重啟成功后可繼續(xù)使用满败。

7、重啟harbor_mysql叹括,業(yè)務(wù)出現(xiàn)短暫失效算墨,待容器重啟成功后可繼續(xù)使用。

毀滅性測試:

docker stack ?rm ?harbor

sleep 10

docker stack ?deploy ?-c docker-compose.yml ?harbor

待2分鐘左右所有業(yè)務(wù)容器啟動(dòng)成功汁雷,倉庫恢復(fù)正常使用净嘀。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市侠讯,隨后出現(xiàn)的幾起案子挖藏,更是在濱河造成了極大的恐慌,老刑警劉巖继低,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熬苍,死亡現(xiàn)場離奇詭異稍走,居然都是意外死亡袁翁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門婿脸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粱胜,“玉大人,你說我怎么就攤上這事狐树”貉梗” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涯曲。 經(jīng)常有香客問我倾贰,道長夕膀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮迎捺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘筷转。我一直安慰自己蔚万,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布徽曲。 她就那樣靜靜地躺著零截,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秃臣。 梳的紋絲不亂的頭發(fā)上涧衙,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機(jī)與錄音奥此,去河邊找鬼绍撞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛得院,可吹牛的內(nèi)容都是我干的傻铣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼祥绞,長吁一口氣:“原來是場噩夢啊……” “哼非洲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜕径,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤两踏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后兜喻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梦染,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年朴皆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帕识。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遂铡,死狀恐怖肮疗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扒接,我是刑警寧澤伪货,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布们衙,位于F島的核電站,受9級特大地震影響碱呼,放射性物質(zhì)發(fā)生泄漏蒙挑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一愚臀、第九天 我趴在偏房一處隱蔽的房頂上張望脆荷。 院中可真熱鬧,春花似錦懊悯、人聲如沸蜓谋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桃焕。三九已至,卻和暖如春捧毛,著一層夾襖步出監(jiān)牢的瞬間观堂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工呀忧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留师痕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓而账,卻偏偏與公主長得像胰坟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子泞辐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • harbor倉庫 有web頁面笔横,直觀,可進(jìn)行簡單刪除咐吼、目錄管理等操作吹缔。 =====================...
    我的喵叫初六閱讀 608評論 0 0
  • Harbor 是一個(gè)企業(yè)級的 Docker Registry,可以實(shí)現(xiàn) images 的私有存儲(chǔ)和日志統(tǒng)計(jì)權(quán)限控制...
    sjyu_eadd閱讀 1,389評論 1 4
  • 簡介 Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級Registry服務(wù)器锯茄,通過添加一些企業(yè)必需的功能特...
    初級賽亞人閱讀 7,596評論 0 9
  • 一厢塘、Harbor簡介 1.Harbor介紹 Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級Registr...
    慕止閱讀 1,181評論 0 0
  • 今天姚老師帶著印印畫了《貪吃的大嘴》,我問印印家里誰最貪吃肌幽,印印想了想就說是自己晚碾,哈哈哈。因?yàn)榻裉煲憩F(xiàn)貪吃的...
    Yyaooooo閱讀 209評論 0 0