【Docker】Etcd 容器部署

Etcd docker 容器化部署

Etcd標(biāo)準(zhǔn)軟件基于Bitnami Etcd 構(gòu)建。當(dāng)前版本為3.5.11

你可以通過輕云UC部署工具直接安裝部署,也可以手動(dòng)按如下文檔操作,該項(xiàng)目已經(jīng)全面開源,可以從如下環(huán)境獲取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform

qinghub自動(dòng)安裝部署配置庫

什么是etcd

etcd是一個(gè)分布式的、高可用的、一致的key-value存儲數(shù)據(jù)庫,基于Go語言實(shí)現(xiàn),主要用于共享配置和服務(wù)發(fā)現(xiàn)。 它歸根結(jié)底是一個(gè)存儲組件,且可以實(shí)現(xiàn)配置共享和服務(wù)發(fā)現(xiàn)。在分布式系統(tǒng)中,各種服務(wù)配置信息的管理共享和服務(wù)發(fā)現(xiàn)是一個(gè)很基本也是很重要的問題,無論你調(diào)用服務(wù)還是調(diào)度容器,都需要知道對應(yīng)的服務(wù)實(shí)例和容器節(jié)點(diǎn)地址信息。etcd 就是這樣一款實(shí)現(xiàn)了元數(shù)據(jù)信息可靠存儲的組件。

容器示例

在示例中,我們將創(chuàng)建一個(gè) Etcd 客戶端實(shí)例,該實(shí)例將連接到與客戶端在同一 docker 網(wǎng)絡(luò)上運(yùn)行的服務(wù)器實(shí)例。

適用docker 命令行

第 1 步:創(chuàng)建網(wǎng)絡(luò)

docker network create app-tier --driver bridge

步驟 2:啟動(dòng) Etcd 服務(wù)器實(shí)例

使用命令--network app-tier的參數(shù)docker run將 Etcd 容器連接到網(wǎng)絡(luò)app-tier。

docker run -d --name Etcd-server \
    --network app-tier \
    --publish 2379:2379 \
    --publish 2380:2380 \
    --env ALLOW_NONE_AUTHENTICATION=yes \
    --env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest

第 3 步:啟動(dòng) Etcd 客戶端實(shí)例

最后,我們創(chuàng)建一個(gè)新的容器實(shí)例來啟動(dòng) Etcd 客戶端并連接到上一步中創(chuàng)建的服務(wù)器:

docker run -it --rm \
    --network app-tier \
    --env ALLOW_NONE_AUTHENTICATION=yes \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest etcdctl --endpoints http://etcd-server:2379 put /message Hello

使用 Docker Compose 文件

如果未指定,Docker Compose 會自動(dòng)設(shè)置一個(gè)新網(wǎng)絡(luò)并將所有已部署的服務(wù)附加到該網(wǎng)絡(luò)。但是,我們將顯式定義一個(gè)bridge名為 的新網(wǎng)絡(luò)app-tier。在此示例中,我們假設(shè)您希望從您自己的自定義應(yīng)用程序映像連接到 Etcd 服務(wù)器,該映像在以下代碼段中通過服務(wù)名稱進(jìn)行標(biāo)識myapp。

version: '2'
networks:
  app-tier:
    driver: bridge

services:
  Etcd:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest'
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
      - ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
    ports:
      - 2379:2379
      - 2380:2380
    networks:
      - app-tier
  myapp:
    image: 'YOUR_APPLICATION_IMAGE'
    networks:
      - app-tier

重要:

請使用應(yīng)用程序image更新上述代碼片段中的占位符YOUR_APPLICATION_IMAGE
在應(yīng)用程序容器中,使用主機(jī)名etcd連接到 Etcd 服務(wù)器

啟動(dòng)容器:

docker-compose up -d

配置

通過掛載宿主機(jī)的目錄到容器目錄中十分容易的更改相關(guān)配置,容器配置位置為:/opt/bitnami/etcd/conf

docker run --name etcd -v /path/to/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml registry.cn-hangzhou.aliyuncs.com/qingcloudtech/etcd:latest

隨后可以通過宿主機(jī)上更改相關(guān)配置文件

更改docker-compose.yml完成此操作:

etcd:
  ...
  volumes:
    - /path/to/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml
  ...

注意:默認(rèn)情況下,環(huán)境變量ETCDCTL_API設(shè)置為3. 修改此環(huán)境變量以使用不同的 API 版本。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容