1. 程式人生 > >Swarm建立docker叢集:服務發現-etcd

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