Docker kullanarak Consul KV nasıl yapılandırılır?

0 Hisse senetleri
0
0
0
0

giriiş

HashiCorp tarafından geliştirilen Consul, modern bir DevOps ortamında birden fazla işlevi yerine getiren çok yönlü bir araçtır. Hizmet keşfi, sağlık kontrolleri, yük dengeleme ve özellikle de dağıtılmış anahtar-değer (KV) deposu olarak yaygın olarak kullanılır. Consul'daki KV deposu, dinamik yapılandırma verilerini, özellik işaretlerini, gizli bilgileri ve meta verileri altyapınız genelinde tamamen erişilebilir ve tutarlı bir şekilde depolamak için uygundur, böylece dağıtılmış bir sistemdeki hizmetler tarafından dinamik olarak erişilebilir. Consul'un KV deposunu yapılandırmak için Docker kullanmak, hızlı dağıtım ve izole ortamlar sağlayarak test ve geliştirme için idealdir.

Bu eğitim, Docker kullanarak bir KV Consul deposu kurma ve yapılandırma sürecinde size rehberlik edecektir. Eğitimin sonunda, KV çiftleri yapılandırılmış ve kullanılabilir durumda olan, tamamen işlevsel bir Docker konsol örneğine sahip olacaksınız. Bu kurulum, dağıtık sistemlerde dinamik hizmet yapılandırması ve durum yönetimi için olmazsa olmazdır.

Ön koşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • Bir DigitalOcean Cloud hesabı.
  • Ubuntu çalıştıran bir sunucu ve sudo ayrıcalıklarına sahip, güvenlik duvarı etkin bir root olmayan kullanıcı.
  • Docker, Ubuntu droplet'inize yüklenmiştir.
  • Linux komut satırına giriş
  • Docker komutları ve konteyner yönetimi hakkında temel bilgi.

Adım 1 – Consul Docker Görüntüsünü Çekme

Docker Hub'dan resmi konsol görüntüsünü alalım. Bu görüntü HashiCorp tarafından yönetilmektedir ve konsolu çalıştırmak için ihtiyacınız olan her şeyi içerir.

Ubuntu Droplet konsolunuza giriş yapın ve şunu çalıştırın:

docker pull hashicorp/consul:latest
Output
latest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

Adım 2 – Consul Konteynerini Çalıştırın

Konsol görüntüsü yüklendiğine göre, yeni bir konsol kapsayıcısı başlatabilirsiniz. Bu kapsayıcı, konsol sunucunuz olarak işlev görecek ve KV deposuyla etkileşim kurmanıza olanak tanıyacaktır.

Konteyneri başlatmak için şunu çalıştırın:

docker run -d --name=consul-server -e 
Output
CONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul
c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba

Bu komutun yaptığı şey şudur:

  • -d, konteyneri ayrık modda (arka planda) çalıştırır.
  • --name=consul-server konteynera bir isim atar.
  • -e CONSUL_BIND_INTERFACE=eth0 Konsolun bağlanması gereken ağ arayüzünü ayarlar. Bu, düzgün ağ iletişimi için gereklidir.
  • -p 8500:8500, Consul web arayüzünü ve API portunu ana bilgisayara eşler.
  • -p 8600:8600/udp, servis keşfi için DNS servis portunu eşler.

Bu adım çok önemlidir çünkü KV mağazasını yapılandırmak için kullanacağınız Consul servisini başlatır.

Adım 3 – Konsol kurulumunu onaylayın

Konsolun düzgün çalıştığından emin olmak için kapsayıcı durumunu doğrulamanız ve konsol arayüzüne erişmeniz gerekir.

Öncelikle docker ps komutunu çalıştırarak çalışan tüm container'ları listeleyelim ve Consul container'ının çalıştığını kontrol edelim.

❯ docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c893b6707686 hashicorp/consul "docker-entrypoint.s…" 51 seconds ago Up 50 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp consul-server

Şimdi konsolun kullanılabilir olup olmadığını kontrol edin, bir web tarayıcısı açın ve http://localhost:8500 adresine gidin. Consul arayüzünü görmelisiniz.

Bu doğrulama adımı, verileri KV deposuna kaydetmeden önce konsol örneğinizin herhangi bir sorun olmadan çalıştığını onaylamak için önemlidir (adım 5).

Adım 4 – Güvenlik Duvarını Yapılandırın (İsteğe bağlı)

Konsol örneğiniz harici erişim gerektiriyorsa (örneğin, bir kümedeki diğer düğümlerden), gerekli bağlantı noktalarında trafiğe izin vermek için güvenlik duvarı ayarlarınızı yapılandırmanız gerekir.

Örneğin, Consul'u bir bulut örneğinde çalıştırıyorsanız, 8500 (HTTP API) ve 8600 (DNS) bağlantı noktalarına gelen trafiğe izin vermeniz gerekebilir. Belirli komutlar, güvenlik duvarı çözümünüze (UFW, iptables vb.) bağlı olarak değişiklik gösterecektir.

Bu adım, dağıtılmış yapılandırmalar için önemli olan konsol örneğinizin diğer makinelerden erişilebilir olmasını sağlar.

Adım 5 – Anahtar-değer çiftlerini depolama

Consul çalışırken, yapılandırma verilerini depolamak için KV deposunu kullanabilirsiniz. Consul CLI veya web arayüzünü kullanarak anahtar-değer çiftleri ekleyebilirsiniz.

Bir anahtar-değer çiftini CLI aracılığıyla depolamak için şunu çalıştırın:

docker exec -it consul-server consul kv put config/db_host 
192.168.1.100
Success! Data written to: config/db_host
docker exec -it consul-server consul kv put config/db_port 3306 
Success! Data written to: config/db_port

Bu komutun yaptığı şey şudur:

  • -it – Yerel sistemden konteynera etkileşimli bir terminal başlatır.
  • consul kv put – kv put komutu, verileri belirtilen yola kaydeder.
  • config/db_host – Değerin depolanacağı yol.
  • 192.168.1.100 – değer.

Web arayüzünü kullanarak,

  1. Consul UI'ye gidin (http://localhost:8500).
  2. “Anahtar/Değer” sekmesine tıklayın.
  3. “Oluştur”a tıklayarak yeni bir anahtar oluşturun.
  4. Anahtarı (örneğin, config/db_host) ve değeri (örneğin, 192.168.1.100) girin.

Bu komutlar ve eylemler, hizmetlerinizin çalışma zamanında dinamik olarak erişebileceği kritik yapılandırma verilerini depolar.

Adım 6 – Anahtar-değer çiftlerini alın

Birkaç KV çiftini kaydettikten sonra, doğru şekilde kaydedildiklerinden emin olmak için bunları geri yüklemek isteyeceksiniz.

CLI'yi kullanarak aşağıdaki komutu kullanarak bir değer alın:

docker exec -it consul-server consul kv get config/db_host 
192.168.1.100

Web arayüzünü kullanarak,

  1. Consul UI'daki "Anahtar/Değer" sekmesine gidin.
  2. Oluşturduğunuz anahtarı bulun ve üzerine tıklayarak saklanan değeri görün.

KV çiftlerini geri yüklemek, verilerinizin düzgün bir şekilde depolandığını ve erişilebilir olduğunu doğrulamak için önemli bir adımdır.

Adım 7 – Docker birimlerini kullanarak kalıcı veriler

Varsayılan olarak, Docker kapsayıcıları geçicidir; yani, kapsayıcı silindiğinde içlerinde depolanan tüm veriler kaybolur. Consul KV verilerinizi kalıcı hale getirmek için Docker birimlerini kullanmanız gerekir.

Mevcut konsol konteynerini durdurun ve çıkın:

docker stop consul-server 
docker rm consul-server 

Şimdi kutuları kontrol ettiğinizde kapatıcının artık işe yaramadığını göreceksiniz.

docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Docker birimiyle yeni bir konsol konteyneri ekleyin:

docker run -d --name=consul-server -e 
Output
CONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp -v consul_data:/consul/data hashicorp/consul
2d2a7d3ff1911c2283e70506d68391a5cbf9c935a2ae447bfb8fa21481989ef1
docker ps 
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d2a7d3ff191 hashicorp/consul "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp consul-server

-v consul_data:/consul/data seçeneği, konteyner üzerine bir Docker birimi bağlar ve KV depolamanızın konteyner genelinde yeniden başlatılmasını sağlar.

Adım 8 – Konsolu otomatik olarak başlatın (isteğe bağlı)

Üretim dağıtımları için, Consul konteynerinizin dağıtımını Docker Compose kullanarak otomatikleştirmek isteyebilirsiniz. Docker Compose, çok konteynerli Docker uygulamalarını basitleştirir ve hizmetleri yönetmeyi kolaylaştırır.

Aşağıdaki içeriğe sahip bir docker-compose.yml dosyası oluşturun:

services:
consul:
image: hashicorp/consul:latest
environment:
- CONSUL_BIND_INTERFACE=eth0
volumes:
- consul_data:/consul/data 
ports:
- "8500:8500"
- "8600:8600/udp"
restart: always
volumes:
consul_data:

Sonra çalıştırın:

docker-compose up -d
Output
[+] Running 2/2
✔ Network work_default Created 0.0s 
✔ Container consul-server Started 0.1s 
docker ps
Output
WARN[0000] /Users/anandhkumar/work/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
work-consul-1 hashicorp/consul:latest "docker-entrypoint.s…" consul 40 seconds ago Up 11 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp

Bu komut Consul'u otomatik olarak başlatır ve arıza durumunda yeniden başlatılmasını sağlayarak üretim kullanımı için daha sağlam hale getirir.

Adım 9 – Temizlik

Konsol örneğinizle işiniz bittikten sonra, kaynakları serbest bırakmak için Docker ortamınızı temizlemeniz gerekir.

Durdurup konsol konteynerini kaldıralım:

docker stop consul-server 
docker rm consul-server
docker ps
output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Konsolla işiniz bittiyse Docker imajını da kaldırabilirsiniz:

docker rmi hashicorp/consul 
output
hashicorp/consul@sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Deleted: sha256:eff8ccb509560987755a70df8d6c0b9410538d503d99498ae1ea9f48066b0439
Deleted: sha256:b5e6402bbb78eb061d538505a30300ef7f612104eaf0f11b17839a9b29bc5603
Deleted: sha256:1c61ada2ad8074615120d13bd805260d766ae8424cafbda4bded529d6a204d6f
Deleted: sha256:9b36da670e2a59f1d81c6e3c9d55906c576b384df51272977e5a9caea7131e74
Deleted: sha256:8c6e52c441c246f60ca146b71204b7d6511df75fa87a0dc0a0f91141964e8fd9
Deleted: sha256:1fce18208235de2be3c419764ec1d469229af5387447d21649c841632c653cef
Deleted: sha256:68e0a114c9c35b9aa8cac31fa32b27f886361bc85fcc63f34e882e9128f33a14
Deleted: sha256:3da5b888208a9b19694bfeaf8c74a432b50f44542d717c9e1f3ab273e505855a
Deleted: sha256:dea73e9287e6e2f3b7f9fcac4f20767d7badeefa24e52f990f1674e98abfa1a3
Deleted: sha256:201fa22d1f4c7d6e7ec43135c63b2260f303f4864f5eb43569faaa1731628799

Temizleme, geliştirme ortamının düzenli tutulmasına yardımcı olur ve Docker kaynaklarının gereksiz yere tüketilmemesini sağlar.

Sonuç

Bu eğitimde, Docker kullanarak Consul'un KV deposunu nasıl kurup yapılandıracağınızı öğrendiniz. Docker'ı kurmayı, Consul konteynerini çalıştırmayı, KV deposunu yapılandırmayı, verileri Docker birimleriyle kalıcı hale getirmeyi ve ortamınızı temizlemeyi ele aldınız. Bu adımlarla artık Consul'u kullanarak, kolay dağıtım ve yönetim için Docker'ın gücünden yararlanarak, dağıtılmış sistemlerinizdeki yapılandırma verilerini dinamik olarak yönetebilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz