Bulut Sunucularına Konsol ile Nomad Kümesi Kurulumu

0 Hisse senetleri
0
0
0
0

giriiş

Bu eğitimde, hizmetleri ve düğümleri keşfetmek için konsolu kullanarak bir HashiCorp Nomad kümesi kuracağız. 3 sunucu düğümü ve istediğiniz sayıda istemci düğümü kullanarak, bu eğitim büyüyen projeler için iyi bir temel oluşturabilir. Ayrıca, müşterilerimiz için Hetzner Cloud'da bir Anlık Görüntü oluşturacağız; bu, manuel olarak yapılandırmamıza gerek kalmadan daha fazla istemci eklememize olanak tanıyacak. Bu küme, sunucular arasında özel bir ağ üzerinde çalışacak ve hizmet keşfi ve birimler gibi tüm varsayılan Nomad ve konsol özelliklerini destekleyecektir.

Bu eğitim kısmen Consul ve Nomad'ın resmi kurulum kılavuzlarında önerilen adımları takip etmektedir.

Ön koşullar
  • Bir Hetzner Cloud hesabı
  • Linux ve Terminal Komutlarına Giriş
  • Sunucuya ssh üzerinden bağlanma yeteneği

Bu eğitim Hetzner Cloud'daki Ubuntu 24.04 sunucularında Nomad 1.9.3 ve Consul 1.20.1 sürümleriyle test edilmiştir.

Terimler ve semboller

Komutlar:

local$ <دستور> # این دستور باید در ماشین محلی شما اجرا شود

server$ <دستور> # این دستور باید در سرور به‌عنوان کاربر root اجرا شود

 

Adım 1 – Bir temel görüntü oluşturun

Bu adımda aşağıdaki kaynaklar kullanılacaktır:

  • 1 Hetzner Bulut Sunucusu Modeli CX22

Hetzner Cloud'da yeni bir CX22 sunucusunda bir Consul/Nomad sunucusu kurarak başlayacağız. Elde edilen anlık görüntü, sonraki adımlarda tüm küme sunucuları ve istemcileri için temel görüntü olarak kullanılacaktır.

Adım 1.1 – Consul'u Yükleme

Consul'u yüklemek için aşağıdaki komutları çalıştırın:

server$ wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
server$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/hashicorp.list
server$ apt update && apt install consul

Consul'a otomatik tamamlama işlevini eklemek için (isteğe bağlı):

server$ consul -autocomplete-install

Adım 1.2 – Nomad ikili dosyasını yükleyin

Nomad'ı yüklemek için aşağıdaki komutları çalıştırın:

server$ wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
server$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/hashicorp.list
server$ apt update && apt install nomad

Nomad'a otomatik tamamlama işlevini eklemek için (isteğe bağlı):

server$ nomad -autocomplete-install

Adım 1.3 – systemd servislerini hazırlama

Consul ve Nomad önyükleme sırasında otomatik olarak başlamalıdır. Bu özelliği etkinleştirmek için her biri için bir systemd hizmeti oluşturun.

server$ chown consul:consul dc1-server-consul*
server$ chown consul:consul dc1-client-consul*
server$ chown -R consul:consul /opt/consul
server$ chown -R nomad:nomad /opt/nomad
server$ mkdir -p /opt/alloc_mounts && chown -R nomad:nomad /opt/alloc_mounts

Daha sonra aşağıdaki içerikle /etc/systemd/system/consul.service yapılandırma dosyasını oluşturun:

[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl
[Service]
EnvironmentFile=-/etc/consul.d/consul.env
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

Ve aşağıdaki içerikle /etc/systemd/system/nomad.service yapılandırma dosyasını oluşturun:

[Unit]
Description=Nomad
Documentation=https://www.nomadproject.io/docs/
Wants=network-online.target
After=network-online.target
[Service]
User=nomad
Group=nomad
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/nomad agent -config /etc/nomad.d
KillMode=process
KillSignal=SIGINT
LimitNOFILE=65536
LimitNPROC=infinity
Restart=on-failure
RestartSec=2
OOMScoreAdjust=-1000
TasksMax=infinity
[Install]
WantedBy=multi-user.target

Kurulum henüz tamamlanmadığından bu aşamada bu hizmetleri etkinleştirmeyin.

Adım 1.5 – Temel Bir Anlık Görüntü Oluşturun

Son olarak, Hetzner Cloud konsolundaki sunucuyu durdurun ve bir Anlık Görüntü oluşturun. Bu Anlık Görüntü, küme sunucularını ve istemcilerini kurmak için temel olarak kullanılacaktır.

Adım 2 – Küme sunucularını kurma

Bu adımda, temel görüntüden 3 küme sunucusu oluşturacaksınız. Bu sunucular kümenizin temelleri olacak ve otomatik olarak bir küme lideri seçecektir.

Aşağıdaki kaynakları kullanacağız:

  • 1 Hetzner Bulut Ağı
  • 3 Hetzner Bulut Sunucusu Model CX22

Hetzner Cloud Console'da, 1. Adımda oluşturulan Snapshot'tan 3 CX22 sunucusu oluşturun ve bunları paylaşımlı bir bulut ağına bağlayın. Bu eğitimde 10.0.0.0/8 ağı kullanılacaktır, ancak daha küçük ağlar da kullanılabilir.

Adım 2.1 – Simetrik Şifreleme Anahtarı Oluşturun

Öncelikle, tüm sunucular arasında paylaşılacak simetrik bir şifreleme anahtarı oluşturun. Bu anahtarı güvenli bir yerde saklayın, çünkü sonraki adımlarda buna ihtiyacımız olacak.

server$ consul keygen

Adım 2.2 – Sertifikaları dağıtın

Artık 1. adımdaki doğru sertifikaları Consul yapılandırma dizinine kopyalayabiliriz. Tüm sunucularda aşağıdaki komutu çalıştırın:

server$ cp consul-agent-ca.pem /etc/consul.d/

1. adımda oluşturulan 3 sunucu sertifikasının, her sunucunun ilgili anahtara sahip kendi benzersiz sertifikasını alması için dağıtılması gerekir. Bu eğitimde, farklı sunucular için aşağıdaki komutlar verilmektedir:

[10.0.0.2] server$ cp -a dc1-server-consul-0* /etc/consul.d/
[10.0.0.3] server$ cp -a dc1-server-consul-1* /etc/consul.d/
[10.0.0.4] server$ cp -a dc1-server-consul-2* /etc/consul.d/

Adım 2.3 – Consul Yapılandırmasını Düzenle

Tüm sunucularda, /etc/consul.d/consul.hcl yapılandırma dosyasını düzenleyin ve aşağıdaki içeriği ekleyin:

datacenter = "dc1"
data_dir = "/opt/consul"
encrypt = "your-symmetric-encryption-key"
tls {
defaults {
ca_file = "/etc/consul.d/consul-agent-ca.pem"
cert_file = "/etc/consul.d/dc1-server-consul-0.pem"
key_file = "/etc/consul.d/dc1-server-consul-0-key.pem"
verify_incoming = true
verify_outgoing = true
},
internal_rpc {
verify_server_hostname = true
}
}
retry_join = ["10.0.0.2"]
bind_addr = "{{ GetPrivateInterfaces | include \"network\" \"10.0.0.0/8\" | attr \"address\" }}"
acl = {
enabled = true
default_policy = "allow"
enable_token_persistence = true
}
performance {
raft_multiplier = 1
}

Adım 2.4 – Consul ve Nomad'ı Kurma

Yapılandırmalar doğru şekilde yapıldıktan sonra Consul ve Nomad servislerini başlatabilirsiniz.

server$ systemctl enable consul
server$ systemctl start consul
server$ systemctl enable nomad
server$ systemctl start nomad

Servislerin durumunu kontrol etmek için aşağıdaki komutları kullanabilirsiniz:

server$ systemctl status consul
server$ systemctl status nomad
 

Eğer her şey doğru çalışıyorsa Consul ve Nomad servisleri çalışıyor olmalı ve küme düzgün bir şekilde kurulmuş olmalı.

Adım 2.5 – Diğer düğümleri kümeye bağlama

Artık ana küme sunucuları çalışır durumda olduğuna göre, diğer düğümleri bağlamanın zamanı geldi. İstemci düğümlerini kümeye bağlamak için, yeni düğümler için Consul ve Nomad yapılandırmalarına aynı ayarları uygulamanız yeterlidir.

İstemci düğümlerinin her birinde, ana sunucuyla aynı yapılandırma dosyalarını oluşturun ve ardından hizmetleri başlatın:

client$ cp consul-agent-ca.pem /etc/consul.d
/client$ cp dc1-client-consul-* /etc/consul.d
/client$ systemctl enable consul client$ systemctl start consul
client$ systemctl enable nomad client$ systemctl start nomad

Adım 3 – Kümeyi ve yapılandırmayı doğrulayın

Sunucuları ve istemcileri başlattıktan sonra, aşağıdaki komutları kullanarak kümenin durumunu kontrol edebilirsiniz:

client$ consul members

Bu komut, kümedeki düğümlerin bir listesini görüntülemelidir. Ayrıca, aşağıdaki komutu kullanarak Nomad'ın durumunu ve ayarlarını kontrol edebilirsiniz:

client$ nomad status

4. Adım – Küme Yönetimi

Artık Consul ve Nomad kümeniz düzgün bir şekilde kurulduğuna göre onu yönetebilir ve çeşitli özelliklerinden yararlanabilirsiniz.

Küme durumunu görüntülemek ve yönetim isteklerini çalıştırmak için aşağıdaki komutları kullanın:

  • konsolos bilgisi Konsolos kümesi hakkında genel bilgi almak için #
  • göçebe iş durumu Nomad iş durumunu görüntülemek için #
  • göçebe tahsis durumu Nomad kümesindeki tahsislerin durumunu görüntülemek için #

Nomad Cluster'ı Kullanma

Nomad, işleri yönetme, podları konuşlandırma ve hizmetleri keşfetmek için Consul ile koordinasyon sağlama gibi çeşitli görevleri gerçekleştirmenize olanak tanır.

Hizmetleri keşfetmek için Consul'u kullanma

Consul, otomatik hizmet keşfi sağlar. Consul web arayüzünü (varsayılan olarak 8500 numaralı portta mevcuttur) kullanarak, mevcut hizmetleri görüntüleyebilir ve gerekirse yapılandırabilirsiniz.

Sonuç

Bu eğitimde, Hetzner Cloud kullanarak özel bir bulut ağında HashiCorp Nomad ve Consul sunucularından oluşan bir küme oluşturdunuz. Bu küme, çeşitli büyük ölçekli iş yüklerini yönetmek için kullanılabilir. Bu eğitimde ayrıca, Snapshot aracılığıyla yeni düğümlerin nasıl başlatılacağı ve sunucuların nasıl ayrıntılı olarak yapılandırılacağı da ele alındı.

Bir yanıt yazın

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

Ayrıca Şunları da Beğenebilirsiniz