Etcd ile Docker Overlay Network
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ç
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 …