Etcd ile Docker Overlay Network

Etcd ve Docker

Bu makalede 2 Adet server ın herhangi bir Orchestration kullanmadan Overlay Network ile haberleşmesini göreceğiz .

Gereksinimler

  • 2 Adet Ubuntu/Centos server
  • Etcd
  • Docker

Overlay network docker container lar arasında haberleşmeyi sağlayan network ağıdır. VXLAN(Virtual Extensible Lan) teknolojisi ile diğer katmanlardan izole bir şekilde container haberleşmelerini sağlar .

Etcd bir key-value database dir. Bu testimizde Etcd ile overlay network ağımızı yöneteceğiz .

Amacımızı öğrenmiş gereksinimlerimizi biliyorsak ne duruyoruz o zaman başlayalım :) .

  • Node-1 ip: 192.168.1.5
  • Node-2 ip: 192.168.1.6

Docker Kurulumu

Ubuntu için ;

$ apt update 
$
apt install docker.io -y

Centos için ;

$ yum update 
$ yum install docker-ce -y

Etcd Kurulumu

Her iki işletimi için de ;

$ wget https://github.com/coreos/etcd/releases/download/v3.0.12/etcd-v3.0.12-linux-amd64.tar.gz
$ tar xvf etcd-v3.0.12-linux-amd64.tar.gz
$ cd etcd-v3.0.12-linux-amd64

Node-1 için ;

Node-2 için ;

Etcd cluster oluşturmuş bulunmaktayız. Cluster ın sağlık durumunu aşağıdaki gibi görebiliriz.

Docker ile birlikte Etcd çalıştırmak için ;

Ubuntu ;

$ cd /lib/systemd/system
$ vi docker.service

Centos ;

$ cd /etc/systemd/system
$ vi docker.service

Daha sonra her iki node içinde ;

$ systemctl daemon-reload
$ systemctl restart docker

Docker yeniden başladıktan sonra 2375 portunu açık görmemiz lazım .

Daha sonra Etcd cluster da member lara bakarsak ;

Etcd Cluster ile iki node bir birini görmektedir. Artık Docker ile Overlay network oluşturabiliriz .

Overlay Network

Dockerın default network lerini listeleyelim;

İki node iç network haberleşmesi sağlaması için şimdide Overlay Network oluşturalım ;

Tekrardan networklerimizi listelersek “cluster” adında Overlay Networkü görmüş olacağız ;

“cluster” networkünü daha detaylı listeleyelim ;

“cluster” 10.0.1.0/24 subnetinde overlay networkü oluşturduğunu görüyoruz.

Aynı şekilde node-2 ye bakarsak bu networkün o node üzerinde de oluştuğunu göreceğiz ;

Node-2 de Etcd veritabanında kontrol edersek ;

Etcd de kontrol ettiğimizde “docker network inspect cluster” gördüğümüz verilerin aynısını görüyoruz.

Overlay Network ile Container Haberleşmesi

Overlay Networkümüzü oluşturduk , Şimdi birde container oluşturarak test edelim .

Busybox oluşturarak birbirlerini haberleştirmeye çalışalım .

Node-1 İçin ;

İki tane interface i olduğunu görebiliyoruz . “eth1” interface docker0 dan gelen docker’ın default bridge networkü , “eth0” bizim oluşturduğumuz overlay network dür. “10.0.1.2" ip sini aldığını görebiliyoruz.

Node-2 için ;

Aynı şekilde “test2” adında node-2 de container oluşturduk . “eth0” overlay network 10.0.1.3 ip sini aldığını görüyoruz.

Busybox’ları haberleştirmeyi deneyelim ;

Sonuç

iki farklı host overlay network haberleşmesi

Sonuç olarak bakarsak bu testimizde Docker, host üzerinde alt ağ yapısını oluşturur. Etcd Cluster senkronizasyonu sayesinde hostlar arasında VXLAN ,Linux bridge oluşturur. Bu linux bridge sayesinde iç haberleşme sağlanır .

Bu makelede Etcd üzerine Overlay network oluşturuluşunun elimden geldiğince anlatmaya çalıştım umarım faydalı olmuştur . Gelecek makalede Open vSwitch ile docker haberleşmesini ele alacağım .

Diğer yazılarımı okumak için profilimi ziyaret edebilirsiniz …

Kaynak

--

--

Serdarcan Büyükdereli
Devops Türkiye☁️ 🐧 🐳 ☸️

Linux ,Bulut sistemleri hayranı paylaşımcı bir Jedi . Docker, Kubernetes , Linux …