Yüksek seviyelerde kullanılabilirlik ve platform güvenilirliği arıyorsanız, muhtemelen cluster’lar ile ilgileniyorsunuzdur. Cluster’lar; sunucuları tek ve yönetilmesi kolay bir şekilde birleştirmenin bir yoludur. Rancher, production’daki birden fazla Kubernetes kümesi için açık kaynaklı bir yönetim panelidir. Merkezi kimlik doğrulama ve erişim denetimi altında küme denetimlerini tüm sağlayıcılar arasında birleştirir. Rancher, tüm kubernetes kümeleriniz tek bir yönetilebilir ekrana taşır, böylece yeni başlayan bir kullanıcıda olsanız belirli bir seviyede cluster’ları yönetebilirsiniz. Bu yazıda, yeni bir Rancher sunucusunun nasıl kurulacağını, yapılandırılacağını ve yeni bir kümenin nasıl dağıtılacağını göstereceğiz.

Cloud üzerindeki yeni bir sunucuda dağıtım!

Rancher, bulutta clusterlar oluşturmak ve yönetmek için kullanılır ancak yaşamak için bir bulut sunucusuna ihtiyacı vardır. Henüz bir bulut sağlayıcısından hesabını yoksa, kaydolarak başlayabilirsiniz. Bu yazı içerisinde bulut alt yapısı olarak DigitalOcean kullanacağız. DigitalOcean paneline gidin ve Rancher’ı barındırmak için yeni bir sunucu oluşturun.

Oluşturacağınız sunucunun ayalarını aşağıdaki gibi yapınız.

  • Sunucunun hangi konumda(ülkede) kurulacağını belirleyiniz. Genellikle size yakın konum en iyi seçim olur.
  • Basit bir yapılandırma planı seçin. Basit bir web sunucusu için 1 CPU – 1 GB RAM yeterli olacaktır.
  • En sevdiğiniz Linux dağıtımını seçin. Bu yazıda Ubuntu 18.04 kullanacağız, ancak herhangi bir dağıtımda da en iyi şekilde çalıştırabilirsiniz.
  • Rancher sunucusunda oturum açma işleminizi rahat ve basit hale getirmek için SSH anahtarı tanımlamayı unutmayın.

Her şey ayarlandıktan sonra, sayfanın alt kısmında yer alan “Deploy” alanına tıklayarak makineyi oluşturup çalıştırabilirsiniz.

Yeni sunucunuz oluşturulurken, Rancher sunucunuzun IP adres’ini bir etki alanına kaydetmeniz (yönlendirmeniz) gerekir. Bu işlem test ortamları için gerekli değildir, ancak deneyimi çok daha iyi hale getirir ve daha fazla güvenlik için HTTPS’i etkinleştirmenizi sağlar.

API Erişimini yapılandırma

Şimdi, Rancher’ın DigitalOcean hesabınıza cluster’ları dağıtmasına ve yönetmesine izin vermek için önce API izinlerini ayarlamanız gerekiyor. Kullanacağınız her hizmet için kendi kullanıcı adı ve parolanız ile API kullanımı için yeni bir hesap oluşturmanızı öneririz. Bu, API Erişimini sınırlamanızı ve daha fazla güvenlik için izinleri belirlemenize olanak tanır.

DigitalOcean API’ı için başlangıç kılavuzundan API kimlik bilgilerinin nasıl oluşturulacağına ilişkin ayrıntılı talimatları{.rank-math-link} bulabilirsiniz.

Rancher API erişimi için bir hesap oluşturduğunuzda, kılavuzdaki sonraki adımlarla devam edin.

Ön Gereksinimlerin Tamamlanması

Rancher konteynerleri sever ve Docker konteynerlerinde çalışır. Rancher’ı kurabilmek için, önce Kubernetes tarafından desteklenen 18.09.2 veya daha yeni bir Docker sürümünü yüklemeniz gerekir. Başlamak için aşağıdaki Docker kurulum talimatlarını izleyin.

Docker’ı kurulum adımları, bu kılavuzun işletim sistemi seçiminize bağlı olarak değişen tek bölümüdür. Docker CE’yi Ubuntu’dan başka bir dağıtım üzerine kurmak istiyorsanız, alternatifler için talimatları{.rank-math-link} Docker belgelerinde bulabilirsiniz.

Docker CE

Docker kullanışlı komut dosyaları kullanılarak kurulabilir, ancak önerilen yaklaşım kendi depolarını kurmaktır. Bu, yazılımı daha sonra yüklemeyi ve yükseltmeyi çok daha kolay hale getirecektir.

İlk olarak, apt’nin HTTPS üzerinden bir depo kullanmasına izin vermek için aşağıdaki paketleri yükleyin.

sudo apt-get install apt-transport-https ca-certificates curl \
gnupg-agent software-properties-common

Ardından Docker’ın resmi GPG anahtarını ekleyin.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Ardından, parmak izinin son 8 karakterini arayarak 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 anahtarının bulunabildiğini doğrulayın.

sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <[email protected]>
sub rsa4096 2017-02-22 [S]

Ardından, aşağıdaki komutla Docker deposunu indirebilmek için işletim sistemi içerisinde yer alan depolara ekleyin.

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Docker depoları yapılandırıldığında, depo listenizi güncelleyin.

sudo apt-get update

Son olarak Docker Community Edition’ın kendisini yükleyin.

sudo apt-get install docker-ce docker-ce-cli containerd.io

Artık docker yüklendi, isteklerinize yanıt verdiğini kontrol edin ve sürümün 18.09.2 veya daha yeni olduğunu doğrulayın.

sudo docker -v
Docker version 18.09.6, build 481bc77

Bu kadar! Gelecekte, Docker’ı normal update && upgrade komutlarıyla güncelleyebilirsiniz.

SSL’yi Yapılandırma (İsteğe bağlı)

Artık Docker’ı yüklediğimiz ve hazır olduğuna göre, doğrudan Rancher konteynerini dağıtmaya başlayabilirsiniz. Ancak, clusterlarınızı Rancher üzerinde yapılandırırken güvenli bağlantı için HTTPS’yi etkinleştirmek üzere SSL sertifikaları almanızı ve yüklemenizi öneririz. Neyse ki, Let’s Encrypt sayesinde bu hızlı ve acısız bir adım haline geldi.

Rancher sunucunuzu belirtecek şekilde yapılandırılmış bir alan adınızın olması gerektiğini unutmayın.

Let’s Encrypt

Let’s Encrypt, ücretsiz SSL sertifikaları sunar ve Certbot ile kurulumu kolaylaştırır. İstemci çoğu Linux dağıtımına kendi başına yüklenebilir, ancak zaten Docker’a sahip olduğumuzdan bunu iyi bir şekilde kullanabiliriz!

Konteyner için bir Let’s Encrypt Certbot kullanarak SSL sertifikaları alın.

İlk olarak, sertifikalarınızı saklamak için yeni bir dizin oluşturun.

mkdir -p ~/docker/letsencrypt

Ardından, bağımsız bir certonly modunda yeni bir Certbot kapsayıcısı başlatmak için aşağıdaki komutu çalıştırın. “*example.com” ile vurgulanmış örnek alanı kendi alan adınızla değiştirin.

docker run -it --rm -p 80:80 -v ~/docker/letsencrypt:/etc/letsencrypt \
certbot/certbot certonly --standalone -d rancher.example.com

Certbot istemcisi başladığında, birkaç ayarı onaylamanızı ister.

  • SSL’in sona ermesine yakın bildirimleri almak için bir e-posta adresi girin
  • Hizmet Şartlarını okuyun ve kabul etmek için A’yı seçin
  • Sertifikanın başarıyla oluşturulduğunu kontrol edin

Sertifikaları edindiğimize göre, Rancher sunucunuzun bunları kullanması için bir yol (dizin) ayarlamanız gerekecek. Rancher konteynerlerinde zaten bir web sunucusu bulunmasına rağmen, sertifikaları bir Nginx proxy konteynerine yükleyeceğiz.

Nginx

Nginx en popüler web sunucularından biridir ve web proxy olarak yapılandırılacak seçenekleri var. Proxy’ler, bir yazılımdaki veya konteynerdaki bağlantıları dinlemenizi, kabul etmenizi ve bağlantıyı gerçek hizmete iletmenizi sağlar.

Başlamak için proxy yapılandırmanızı barındırmak üzere yeni bir dizin oluşturmanız gerekir.

mkdir -p ~/docker/nginx

Ardından, metin düzenleyicinizi kullanarak bir yapılandırma dosyası oluşturun, örneğin Ubuntu’daki nano’yu kullanabilirsiniz.

nano ~/docker/nginx/default.conf

Ardından dosyaya içerisine aşağıdaki yapılandırmayı girin. Yine, “*example.com” ile vurgulanmış örnek alanları kendi alan adınızla değiştirin.

upstream rancher {
    server rancher-server;
}

map $http_upgrade $connection_upgrade {
    default Upgrade;
    ''      close;
}

server {
    listen 443 ssl http2;
    server_name rancher.example.com;
    ssl_certificate /etc/letsencrypt/live/rancher.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/rancher.example.com/privkey.pem;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://rancher;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_read_timeout 900s;
    }
}

server {
    listen 80;
    server_name rancher.example.com;
    return 301 https://$server_name$request_uri;
}

Tamamlandığında, dosyayı kaydedin ve editörden çıkın.

Ardından, aşağıdaki komutu kullanarak ko bağlamak için bir ağ oluşturun. Bu kapların birbirleriyle iletişim kurmasını sağlayacaktır.

sudo docker network create rancher-network

Ardından, aşağıdaki komutla Nginx proxy konteynerini oluşturun, ancak hemen başlatmayın.

sudo docker create -p 443:443 -p 80:80 \
-v ~/docker/letsencrypt:/etc/letsencrypt \
-v ~/docker/nginx:/etc/nginx/conf.d \
--restart=unless-stopped \
--network=rancher-network \
--name=nginx-proxy nginx

Proxy artık hazır olduğuna göre, proxy’yi çalıştırmadan önce Rancher konteynerini ayarlamanız gerekir. Rancher’ı dağıtma işlemini bir sonraki bölümde gerçekleştireceğiz.

Rancher Konteynerini Dağıtmak

Rancher’ın kendisini kurmak, sadece servis konteynerini dağıtmak kadar kolaydır. SSL için bir proxy yapılandırıp yapılandırmamanıza bağlı olarak, konteyneri varsayılan HTTP bağlantı noktası 80’de veya proxy yapılandırmanıza göre alternatif bir bağlantı noktasında çalıştırmak isteyebilirsiniz.

İlk olarak, kalıcılığı sağlamak için Rancher dosyalarınız için bir dizin oluşturun.

mkdir -p ~/docker/rancher

Bir sonraki komutu kullanarak Rancher’ı proxy ile çalışacak şekilde dağıtın.

sudo docker run -d -p 8080:80 \
-v ~/docker/rancher:/var/lib/rancher \
--restart=unless-stopped \
--network=rancher-network \
--name=rancher-server rancher/rancher

Daha sonra HTTPS’i etkinleştirmek için, daha önceden oluşturduğunuz Nginx proxy kapsayıcısını aşağıdaki komutla başlatın. Bu, Rancher konteynerine ulaşmanıza izin verecektir.

sudo docker start nginx-proxy

Artık bir web tarayıcısında alan adınıza giderek Rancher kontrol paneline erişebilmelisiniz.

Rancher için DigitalOcean Sürücüsünü Yapılandırma

Rancher, kümelerinizi yapılandırmanıza ve yönetmenize olanak tanıyan basit ama güçlü bir web kontrol paneli sağlar. Web tarayıcınızdan Rancher sunucusuna erişerek kuruluma başlayın.

https://rancher.example.com

İlk kurulduğunda, Rancher Welcome sayfası tarafından karşılanacaksınız. İlk adım olarak, yönetici hesabınız için bir parola belirleyin, ardından Devam düğmesini tıklayın.

</figure>

Ardından, yükleme için kullanılacak URL’yi ayarlamak için Rancher alanınızı girin. Sunucu URL’sinin cluster tarafından kullanıldığını ve tüm nodelar tarafından erişilebilir olması gerektiğini unutmayın.

Ardından onaylamak için URL’yi Kaydet düğmesini tıklayın.

</figure>

İlk iki adım tamamlandığında Rancher kontrol panelinize yönlendirilirsiniz.

</figure>

Cluster şimdilik boş, ancak nodeları dağıtmaya başlamadan önce DigitalOcean sürücülerini yüklemeniz gerekecek.

Gezinme çubuğunda bulunan Araçlar ve Sürücüler menüleri altındaki Sürücüleri kategorisine gidiniz. Ardından, yapılandırma iletişim kutusunu açmak için “Add Node Driver” düğmesine tıklayın.

Gerekli olan bilgileri bu adresten{.rank-math-link} edinebilir ve son adıma gelebilirsiniz.

Gerekli bilgileri girdikten sonra “Oluştur” düğmesine tıklayarak onaylayın ve kaydedin.

Rancher, DigitalOcean’ın altyapısına konumlandırmanıza izin vermek için gerekli sürücüleri indirip yükleyecektir. Tamamlandığında, DigitalOcean sürücüsünün Aktif olarak listelendiğini görmelisiniz.

</figure>

Kurulum için bu kadar, şimdi ilk cluster’ı dağıtmaya hazırsınız!

Cluster Dağıtımı

Yükleme tamamlandığında, ilk cluster dağıtımınızda çatlama olabilir. Cluster’lar sayfasındaki Cluster Ekle düğmesini tıklayın.

</figure>

Cluster ayarlarında, altyapı sağlayıcınız olarak DigitalOcean’ı seçin. Ardından, ayarların geri kalanına gidin.

Ardından, cluster’a bir isim verin.

Ardından, Node Havuzları ayarlarının altında “Add Node Template” düğmesini tıklayın.

</figure>

Bu, DigitalOcean API erişiminizi yapılandırmak için ayarları açar. API kullanıcı adınızı ve parolanızı daha önce ayarladığınız şekilde girin, ardından kimlik bilgilerini doğrulamak için Kimlik Doğrulama düğmesini tıklayın.

Bağlantı testi başarılı olursa, Rancher bulut sunucusu yapılandırma seçeneklerini görüntüler.

  • Açılır menüdeki Basit planlardan birini seçin veya özel yapılandırmayı kullanın.
  • Bu şablonu kullanan nodeların dağıtılmasını istediğiniz konumu seçin.
  • Şablonu açıklayıcı bir adla adlandırın, ör. rnc-plan olarak.

Tamamlandığında, şablon yapılandırmasını kaydetmek için Oluştur düğmesine tıklayın.

</figure>

Clusterda farklı rol nodeları için farklı yapılandırmalara izin vermek üzere birden çok düğüm şablonu oluşturabilirsiniz. Ancak bu örnekte minimum kaynaklara sahip tek bir şablon yeterlidir.

Ardından, üç rolü en az bir node’a atayarak node’ları cluster gereksinimlerini karşılayacak şekilde yapılandırın. Uygulamada, rollerin altında gösterilen gereksinimler yeşil bir tik ile belirtildiği şekilde roller istenildiği gibi tanımlanabilir.

</figure>

Cluster yapılandırmanız ayarlandıktan sonra, sayfanın altındaki Oluştur düğmesini tıklayın.

Cluster’ınız daha sonra dağıtılacak, bağlanacak ve yapılandırılacaktır. Dağıtımın ilerlemesi Clusterlar sayfasında gösterilir. Tamamlandığında, cluster’ın durumu Etkin olarak gösterilir.

Artık tüm adımlar tamamlandı ve istemiş olduğumuz gibi bir Rancher cluster oluşturduk. Cluster tamamen ayarlanmış ve uygulamaları dağıtmaya başlamanız için hazır.