Swarm建立docker叢集:服務發現-etcd
- 不詳細介紹swarm、docker的原理、架構
- 通過Docker + Etcd + Swarm 搭建docker叢集
術語
本文中用到的術語書名
docker節點(docker node):docker的執行環境,通常為物理機或者虛擬機器
測試環境
- 2個docker主機的配置如下所示
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@localhost ~]# docker --version
Docker version 1.8 .2-el7.centos, build a01dc02/1.8.2
[root@localhost ~]#
配置docker
主要是配置docker的api埠,具體參考docker的安裝&配置
準備Docker映象
docker pull swarm
docker pull etcd
啟動服務發現:etcd
在docker叢集的master節點上執行下面命令(其實可以在任何一個docker環境中執行下面的命令,只要注意後面使用etcd時的ip即可,將其假設為[etcd_ip])
docker run -ti -d -p [etcd_port]:4001 --name etcd docker.io/microbox/etcd -name discovery
其中
[map_port]
需要替換成自己環境中可用的埠,比如4001。
該步驟是啟動了etcd,並在4001埠監聽,以便各個docker節點進行上報。
啟動swarm manger
docker run -ti -d -p [swarm_manager_port]:2375 --name swarm-manager docker.io/swarm manage etcd://[etcd_ip]:[etcd_port]
- 將[swarm_manager_port]替換成自己環境中可用的埠,比如2376
- 將[etcd_ip]換成etcd所在環境的ip,例如docker叢集master節點的ip(etcd執行的位置決定了該ip的值)
- 將[etcd_port]換成啟動etcd時對映到host機後的埠,比如4001
docker節點加入叢集
在每個要加入叢集docker節點上執行下面的命令。
docker run -ti -d --name swarm-agent docker.io/swarm join --addr [docker_node_ip]:[docker_port] etcd://[etcd_ip]:[etcd_port]
- 將
[docker_node_ip]
替換成當前docker節點的ip- 將
docker_port
替換成當前docker監聽的埠,比如2375。埠的配置在本文上面已經介紹,或者參考具體參考docker的安裝&配置- 將[etcd_ip]換成etcd所在環境的ip,例如docker叢集master節點的ip(etcd執行的位置決定了該ip的值)
- 將[etcd_port]換成啟動etcd時對映到host機後的埠,比如4001
驗證
docker -H [swarm_ip]:[swarm_manager_port] info
- 將swarm_ip換成swarm所在的節點的ip。
- 將swarm_manager_port換成swarm的埠,例如2376.
- 可以看到如下內容:
Containers: 7
Images: 26
Role: primary
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 2
ftd.master: [docker_node_ip_1]:2375
└ Status: Healthy
└ Containers: 4
└ Reserved CPUs: 0 / 8
└ Reserved Memory: 0 B / 32.79 GiB
└ Labels: executiondriver=native-0.2, kernelversion=3.10.0-229.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
localhost.localdomain: [docker_node_ip_2]:2375
└ Status: Healthy
└ Containers: 3
└ Reserved CPUs: 0 / 4
└ Reserved Memory: 0 B / 3.888 GiB
└ Labels: executiondriver=native-0.2, kernelversion=3.10.0-229.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
CPUs: 12
Total Memory: 36.67 GiB
Name: xxxxxxxxxx
叢集中建立容器
建立兩個容器:執行2次docker run busybox
。
通過docker -H [swarm_ip]:[swarm_port] ps -a
可以看到swarm中建立的docker容器.
通過docker ps -a
可以看到2個容器分佈在不同的docker節點。
至此,Docker + Etcd + Swarm已經實驗完成
相關推薦
Swarm建立docker叢集:服務發現-etcd
不詳細介紹swarm、docker的原理、架構 通過Docker + Etcd + Swarm 搭建docker叢集 術語 本文中用到的術語書名 docker節點(docker node):docker的執行環境,通常為物理機
Swarm建立docker叢集:服務發現-配置檔案法
本文不詳細介紹swarm、docker的原理、架構,主要記錄Centos7上安裝docker、swarm構建docker叢集的步驟。 安裝swarm有兩種方式:(1)通過docker官方
Docker Kubernetes 服務發現原理詳解
轉換 size 提供服務 通信 環境變量 path soft family 0.10 Docker Kubernetes 服務發現原理詳解 服務發現支持Service環境變量和DNS兩種模式: 一、環境變量 (默認) 當一個Pod運行到Node,kubelet會為每個容器
Swarm搭建Docker叢集
一、什麼是Swarm Swarm這個專案名稱特別貼切。在Wiki的解釋中,Swarm behavior是指動物的群集行為。比如我們常見的蜂群,魚群,秋天往南飛的雁群都可以稱作Swarm behavior。 Swarm專案正是這樣,通過把多個Docker Engine聚集在一起,形成一個大的d
『高級篇』docker之服務發現、部署更新和擴容(七)
所有 gem 測試 域名解析 cbc 代碼更新 mage ftp dock >原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!>原文鏈接地址:『高級篇』docker之服務發現、部署更新和擴容(七) 服務發現 所有的表現形式都是ip+端口的形式。
docker實戰2 (docker swarm的應用,docker叢集的構建,在docker叢集中部署服務的建立與更新)
前言: 在之前曾寫過一個關於docker叢集建立的教程,但是不夠深入,只是停留到叢集的初始化和節點加入上,這次具體到服務,並詳細講解其中的原理。而且總結了很多自己做的過程中所踩過的很多坑(比如映象的digest問題)。在查閱資料的過程還了解到了谷歌的kuber
搭建Docker Swarm叢集實戰(一)(服務發現使用consul)
注意: docker在版本1.12之後,已經將swarm的部分整合在docker裡面了,所以也就不需要依賴第三方的東西了。 所以如果不是為了有趣瞭解一下的話,請直接轉到本系列的第三篇開始=》搭建Docker Swarm叢集實戰(三)(swarm
基於docker-swarm搭建持續整合叢集服務
前言 本文只為自己搭建過程中的一些簡單的記錄。如果實踐中有疑問,可以一起探討。 為了能在本機(macOS)模擬叢集環境,使用了vb和docker-machine。整體持續整合的幾個機器設施如下: 服務節點:三個manager節點,一個wor
Docker 叢集Swarm建立和Swarm Web管理
一、環境配置 1、安裝環境 # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) # docker version Client: Version: 1.12.3 AP
springcloud-1.使用Eureka -robbon構建自動服務發現註冊叢集和消費者
1.使用Eureka元件建立服務中心Server_1 @EnableEurekaServer //表示自己是一個server @SpringBootApplication public class EurekaserverApplication { public static void
004.etcd叢集部署-發現
一 etcd發現簡介 1.1 需求背景 在實際環境中,叢集成員的ip可能不會提前知道。如使用dhcp自動獲取的情況,在這些情況下,使用自動發現來引導etcdetcd叢集,而不是指定靜態配置,這個過程被稱為“發現”。 etcd Discovery 使用已有的 etcd cluster
Docker Swarm 建立overlay網路
Docker Swarm 建立overlay網路 環境: 系統:Centos 7.4 x64 應用版本:Docker 18.09.0 管理節點:192.168.1.79 工作節點:192.168.1.78 工作節點:192.168.1.77 一、建立網路與服務 1、管理節
使用docker-compose建立spark叢集
下載docker映象 sudo docker pull sequenceiq/spark:1.6.0 建立docker-compose.yml檔案 建立一個目錄,比如就叫 docker-spark,然後在其下建立docker-compose.yml檔案,內容如下: ver
使用docker-compose建立hadoop叢集
下載docker映象 首先下載需要使用的五個docker映象 docker pull bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8 docker pull bde2020/hadoop-datanode:1.1.0-hadoop2
etcd+registrator+confd 服務發現
etcd+registrator+confd 服務發現 (金慶的專欄 2018.6) 因為k8s使用 etcd, 所以選 etcd 作為服務發現的 DB. registrator 可以為 docker 方式執行的服務自動註冊到 etcd. confd 讀取 etcd, 生成配
docker叢集下建立elasticsearch叢集以及CI/CD
如果單獨使用docker跑es,所在宿主機(虛擬機器)掛了,es就不能使用了,下面介紹下如何在docker-swarm叢集下建立es叢集,叢集機器任一一臺掛了都不會影響es的使用,這才是我們要的高可用架構 1:swarm叢集建立之前已經說了,這裡就不提了 所有叢集伺服器都要執行 vi /
docker-swarm建立本地整合開發環境
在k8s出現之後,docker-swarm使用的人越來越少,但在本地整合開發環境的搭建上,使用它還是比較輕量級的,它比docker-compose最大的好處就是容器之間的共享和服務的治理,你不需要links容器,也不知道關心失敗之後的重啟,這些都於swarm來實現。 對於docker-compose和doc
基於docker swarm搭建ELK叢集
阿里雲docker安裝教程以及映象下載加速 docker-elastic映象地址 1 Swarm介紹 Swarm是Docker官方提供的一款叢集管理工具,其主要作用是把若干臺Docker主機抽象為一個整體,並且通過一個入口統一管理這些Docker主機上的各種Dock
Docker學習筆記(七)-如何建立docker swarm
建立docker swarm 此處總結官網的文件,但是官網的這一小節,寫得不完善,官網沒有介紹如何建立節點的machine,需要查詢以前的文件才方便學習,官網最好在文件中給出相關的連結,但沒有,此博文進行補充一下。 Prerequisite