Takip et

DigitalOcean Yönetilen Kubernetes Kümesi (DOKS) Kurulumu Rehberi

DigitalOcean Yönetilen Kubernetes Kümesi (DOKS) Kurulumu Rehberi DigitalOcean, bulut tabanlı hizmetler sunan popüler bir sağlayıcıdır ve geli

DigitalOcean Yönetilen Kubernetes Kümesi (DOKS) Kurulumu Rehberi

DigitalOcean, bulut tabanlı hizmetler sunan popüler bir sağlayıcıdır ve geliştiricilere yönelik basitliği ve maliyet etkinliği ile bilinir. Modern uygulama geliştirme ve dağıtım süreçlerinin temel taşlarından biri haline gelen konteynerizasyon ve orkestrasyon için DigitalOcean, Yönetilen Kubernetes Kümesi (DOKS) hizmetini sunmaktadır. Bu rehber, DigitalOcean üzerinde bir DOKS kümesini sıfırdan nasıl kuracağınızı, yapılandıracağınızı ve yöneteceğinizi adım adım detaylı bir şekilde açıklayacaktır.

DOKS Nedir ve Neden Kullanmalısınız?

Kubernetes, konteynerize edilmiş iş yüklerini ve hizmetleri yönetmek için açık kaynaklı bir sistemdir. Dağıtım, ölçeklendirme ve uygulama yönetimini otomatikleştiren güçlü bir platform sunar. Ancak Kubernetes’in kendisi karmaşık olabilir; bir kümenin kurulumu, yönetimi ve bakımı önemli bir operasyonel yük getirebilir. İşte burada “yönetilen Kubernetes” hizmetleri devreye girer.

DigitalOcean Managed Kubernetes (DOKS), DigitalOcean tarafından sağlanan, Kubernetes kontrol düzleminin (master düğümler) yönetimini ve bakımını üstlenen bir hizmettir. Bu, kullanıcıların sadece iş yüklerini çalıştıracak düğümler (node’lar) ve uygulamalarının kendisiyle ilgilenmesini sağlar. Kontrol düzlemi yükseltmeleri, güvenlik yamaları ve temel altyapı yönetimi DigitalOcean tarafından yapılır.

DOKS’un Temel Faydaları

* Basitlik ve Hız: DigitalOcean’ın kullanıcı dostu arayüzü ve doctl CLI aracı sayesinde dakikalar içinde bir Kubernetes kümesi kurabilirsiniz. Kontrol düzleminin yönetimiyle uğraşmak zorunda kalmazsınız.
* Maliyet Etkinliği: DigitalOcean, uygun fiyatlandırma modelleri sunar. DOKS’ta kontrol düzlemi için ücret alınmaz, yalnızca çalışan düğümler (worker nodes) ve kullanılan diğer kaynaklar (Load Balancer, depolama vb.) için ödeme yaparsınız.
* Ölçeklenebilirlik: Uygulamalarınızın ihtiyaçlarına göre düğüm havuzlarını kolayca ölçeklendirebilir veya otomatik ölçeklendirme (Cluster Autoscaler) kurallarını ayarlayabilirsiniz.
* Entegrasyonlar: DigitalOcean ekosistemiyle sorunsuz entegrasyon sağlar. DigitalOcean Load Balancer, Block Storage, Container Registry ve Managed Databases gibi hizmetleri DOKS kümelerinizle kolayca kullanabilirsiniz.
* Güvenilirlik: DigitalOcean, yüksek kullanılabilirlik ve güvenilirlik sağlamak için kontrol düzlemini yönetir.
* Geliştirici Dostu: kubectl ve doctl gibi standart araçlarla tam uyumluluk sunar, bu da mevcut Kubernetes bilginizi doğrudan kullanabileceğiniz anlamına gelir.

Bu avantajlar, özellikle DevOps ekiplerinin operasyonel yükünü azaltırken, geliştiricilerin uygulamalarını daha hızlı ve güvenilir bir şekilde dağıtmasına olanak tanır.

Ön Koşullar: Başlamadan Önce

DOKS kümesi kurulumuna başlamadan önce bazı temel araçlara ve bilgilere sahip olmanız gerekmektedir.

DigitalOcean Hesabı

Öncelikle aktif bir DigitalOcean hesabınızın olması gerekir. Eğer yoksa, DigitalOcean web sitesi üzerinden kolayca bir hesap oluşturabilirsiniz. Yeni hesaplar genellikle bir miktar ücretsiz kredi ile gelir, bu da DOKS’u denemeniz için harika bir fırsattır.

doctl CLI Kurulumu

doctl, DigitalOcean API’si ile etkileşim kurmanızı sağlayan komut satırı aracıdır. Küme oluşturma, yönetme ve diğer DigitalOcean kaynaklarını kontrol etme gibi işlemleri bu araçla gerçekleştirebilirsiniz.

* Kurulum: İşletim sisteminize göre doctl kurulum talimatlarını DigitalOcean dokümantasyonunda bulabilirsiniz. Genellikle brew install doctl (macOS), snap install doctl (Linux) veya ikili dosyayı indirip PATH’e ekleyerek yapılır.
* Kimlik Doğrulama: doctl‘ı kurduktan sonra, DigitalOcean hesabınızla kimlik doğrulaması yapmanız gerekir. Bunun için bir kişisel erişim belirteci (Personal Access Token) oluşturmanız ve doctl auth init komutunu çalıştırmanız gerekmektedir:

doctl auth init

Bu komut sizi DigitalOcean kontrol paneline yönlendirecek ve bir API anahtarı oluşturmanızı isteyecektir. Oluşturduğunuz anahtarı komut satırına yapıştırdığınızda doctl kimlik doğrulaması tamamlanmış olacaktır.

kubectl Kurulumu

kubectl, Kubernetes kümeleriyle etkileşim kurmak için standart komut satırı aracıdır. Uygulama dağıtımı, kaynak sorgulama ve küme yönetimi gibi tüm Kubernetes işlemlerini kubectl ile yaparsınız.

* Kurulum: kubectl kurulum talimatları da Kubernetes dokümantasyonunda detaylı olarak yer alır. macOS için brew install kubernetes-cli, Linux için sudo apt-get install kubectl veya sudo yum install kubectl gibi yöntemler kullanılabilir.
* Doğrulama: Kurulumdan sonra kubectl version --client komutu ile kubectl‘ın doğru kurulduğunu doğrulayabilirsiniz.

Temel Kubernetes Bilgisi

DOKS’u kullanmak için ileri düzey Kubernetes uzmanlığına ihtiyacınız olmasa da, temel kavramlara (Pod, Deployment, Service, Namespace, Node, YAML yapılandırması) aşina olmak, kümenizi daha verimli kullanmanıza yardımcı olacaktır.

DOKS Kümesi Oluşturma Yöntemleri

DigitalOcean Managed Kubernetes kümesi oluşturmanın iki ana yolu vardır: DigitalOcean kontrol paneli üzerinden veya doctl komut satırı aracıyla. Her iki yöntem de benzer yapılandırma seçenekleri sunar.

DigitalOcean Kontrol Paneli Üzerinden Küme Oluşturma

Bu yöntem, özellikle DigitalOcean’a yeni başlayanlar veya görsel bir arayüzü tercih edenler için oldukça basittir.

1. Giriş Yapın: DigitalOcean hesabınıza giriş yapın.
2. Kubernetes Bölümüne Gidin: Sol menüden “Kubernetes” seçeneğine tıklayın.
3. Küme Oluştur’a Tıklayın: “Create a Kubernetes Cluster” düğmesine tıklayın.
4. Bölge Seçimi (Choose a Datacenter Region): Kümenizin fiziksel olarak nerede barındırılacağını seçin. Uygulama kullanıcılarınıza yakın bir bölge seçmek gecikmeyi azaltacaktır. Örneğin, Frankfurt (fra1) veya Amsterdam (ams3) gibi Avrupa bölgeleri veya New York (nyc3) gibi ABD bölgeleri mevcuttur.
5. Kubernetes Sürümü Seçimi (Choose a Kubernetes Version): DigitalOcean, genellikle en son birkaç kararlı Kubernetes sürümünü sunar. Uygulamalarınızın uyumluluğuna ve güvenlik güncellemelerine dikkat ederek bir sürüm seçin. Genellikle en son kararlı sürümü seçmek iyi bir başlangıçtır.
6. Node Havuzu Yapılandırması (Configure Node Pools): Node havuzları, iş yüklerinizin çalışacağı sanal makinelerin (droplet’ler) gruplarıdır.
* Makine Tipi (Droplet Plan): Düğümlerinizin boyutunu (CPU, RAM, Disk) seçin. Genel amaçlı (General Purpose), CPU optimize edilmiş (CPU-Optimized) veya bellek optimize edilmiş (Memory-Optimized) gibi farklı planlar bulunur. Uygulamanızın gereksinimlerine göre uygun bir plan seçin. Başlangıç için “Basic” veya “General Purpose” altında küçük bir plan (örn. 2 vCPU, 4GB RAM) yeterli olabilir.
* Disk Boyutu: Seçilen Droplet planına göre disk boyutu otomatik olarak belirlenir. Kalıcı depolama için genellikle Block Storage kullanılır.
* Düğüm Sayısı (Node Count): Bu havuzda kaç adet düğüm olacağını belirtin. Yüksek kullanılabilirlik için en az 3 düğümle başlamak iyi bir uygulamadır.
* Otomatik Ölçeklendirme (Enable Autoscaling): İsteğe bağlı olarak, bu node havuzu için Cluster Autoscaler’ı etkinleştirebilirsiniz. Bu, kümenizdeki pod’ların kaynak ihtiyaçlarına göre düğüm sayısını otomatik olarak artırıp azaltır. Minimum ve maksimum düğüm sayısını belirtmeniz gerekir.
* Birden fazla node havuzu ekleyerek farklı iş yükleri için farklı özelliklere sahip düğümler kullanabilirsiniz (örn. GPU’lu düğümler, daha fazla RAM’e sahip düğümler).
7. VPC Ağı Seçimi (Choose a VPC Network): Eğer bir özel ağ (VPC) yapılandırdıysanız, kümenizi bu ağa dahil edebilirsiniz. Bu, kümenizin diğer DigitalOcean kaynaklarınızla (örn. Managed Databases) güvenli bir şekilde iletişim kurmasını sağlar.
8. Etiketler (Add Tags): Kümenizi organize etmek ve maliyet takibi yapmak için etiketler ekleyebilirsiniz. Örneğin, proje:uygulama-adı, ortam:dev gibi etiketler.
9. Küme Adı (Choose a Name): Kümenize açıklayıcı bir ad verin. Örneğin, my-prod-cluster veya dev-k8s.
10. Oluştur’a Tıklayın: Tüm ayarları gözden geçirdikten sonra “Create Cluster” düğmesine tıklayın. DigitalOcean, kümenizi ve düğümlerinizi oluşturmaya başlayacaktır. Bu işlem birkaç dakika sürebilir.

doctl CLI Üzerinden Küme Oluşturma

doctl komut satırı aracı, otomasyon senaryoları ve tekrarlanabilir kurulumlar için idealdir.

1. Gerekli Bilgileri Toplama: Küme oluşturmadan önce, kullanabileceğiniz bölgeleri, Kubernetes sürümlerini ve Droplet planlarını bilmeniz gerekir.
* Bölgeleri Listele:

doctl compute region list

* Kubernetes Sürümlerini Listele:

doctl kubernetes options versions

* Droplet Planlarını Listele:

doctl compute droplet-plan list

Bu komutlar size --region, --version ve --node-pool parametreleri için kullanabileceğiniz değerleri sağlayacaktır.
2. Küme Oluşturma Komutu: Aşağıdaki gibi bir komut kullanarak bir DOKS kümesi oluşturabilirsiniz:

doctl kubernetes cluster create \
      --name my-cli-cluster \
      --region fra1 \
      --version 1.28.2-do.0 \
      --node-pool name=default-pool,size=s-2vcpu-4gb,count=3,auto-scale=true,min-nodes=2,max-nodes=5 \
      --vpc-uuid  \
      --tag environment:production,project:myapp

* --name: Kümenizin adı.
* --region: Kümenizin oluşturulacağı veri merkezi bölgesi (örn. fra1, nyc3).
* --version: Kubernetes sürümü (örn. 1.28.2-do.0).
* --node-pool: Node havuzu yapılandırması. Birden fazla node havuzu tanımlayabilirsiniz.
* name: Node havuzunun adı.
* size: Droplet planının slug’ı (örn. s-2vcpu-4gb).
* count: Başlangıç düğüm sayısı.
* auto-scale: true veya false. Otomatik ölçeklendirmeyi etkinleştirir.
* min-nodes: Otomatik ölçeklendirme için minimum düğüm sayısı.
* max-nodes: Otomatik ölçeklendirme için maksimum düğüm sayısı.
* --vpc-uuid: (İsteğe bağlı) Kümenizi belirli bir VPC ağına bağlamak için VPC’nin UUID’si. doctl compute vpc list ile bulabilirsiniz.
* --tag: (İsteğe bağlı) Kümenize etiketler ekler.

Bu komutu çalıştırdıktan sonra, doctl kümenizi oluşturmaya başlayacak ve işlemin tamamlandığını belirten bir çıktı verecektir. Kümenin tamamen kullanıma hazır hale gelmesi birkaç dakika sürebilir.

Küme Yapılandırması ve Bağlantı

Kümenizi oluşturduktan sonra, yerel makinenizden kubectl aracını kullanarak bu kümeye bağlanmanız gerekir.

kubectl İçin Kimlik Doğrulama

DigitalOcean, kümenize güvenli bir şekilde bağlanmak için bir kubeconfig dosyası sağlar. Bu dosya, kümenizin API sunucusuna nasıl erişileceği ve kimlik doğrulaması yapılacağı bilgilerini içerir.

1. Kubeconfig Dosyasını Kaydetme: Kümenizin kubeconfig dosyasını yerel makinenize indirmek ve kubectl‘ın kullanabileceği şekilde yapılandırmak için doctl kullanın:

doctl kubernetes cluster kubeconfig save 

yerine oluşturduğunuz kümenin adını yazın (örn. my-cli-cluster). Bu komut, kubeconfig dosyasını varsayılan olarak ~/.kube/config dizinine kaydeder ve kubectl‘ın bu kümeyi varsayılan bağlam olarak kullanmasını sağlar.
2. Bağlamı Kontrol Etme: Birden fazla Kubernetes kümesiyle çalışıyorsanız, doğru kümeye bağlı olduğunuzdan emin olmak için mevcut bağlamı kontrol edebilirsiniz:

kubectl config current-context

3. Küme Bağlamını Değiştirme: Farklı bir kümeye geçmek isterseniz:

kubectl config use-context do-fra1-my-cli-cluster # Küme adı ve bölgeye göre değişir

Kümenin Durumunu Kontrol Etme

Kubeconfig dosyasını yapılandırdıktan sonra, kümenizin durumunu kontrol edebilirsiniz:

* Düğümleri Listele:

kubectl get nodes

Bu komut, kümenizdeki tüm worker düğümlerini listeler ve durumlarını (Ready olmaları beklenir) gösterir.
* Pod’ları Listele:

kubectl get pods -A

Bu komut, tüm namespace’lerdeki (sistem pod’ları dahil) pod’ları gösterir. Sistem pod’larının Running durumda olduğundan emin olun.
* Küme Bilgisi:

kubectl cluster-info

Bu komut, Kubernetes master servisinin nerede çalıştığı gibi temel küme bilgilerini gösterir.

DigitalOcean kontrol panelinden de kümenizin genel durumunu, düğümlerini ve kaynak kullanımını izleyebilirsiniz.

Uygulama Dağıtımı

Kümeniz hazır ve bağlı olduğuna göre, üzerine bir uygulama dağıtabiliriz. Basit bir Nginx web sunucusu örneği ile başlayalım.

Basit Bir Uygulama Dağıtımı

Kubernetes’te uygulamalar genellikle Deployment ve Service kaynakları kullanılarak dağıtılır.

1. nginx-deployment.yaml Oluşturma: Aşağıdaki içeriğe sahip bir dosya oluşturun:

apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3 # 3 adet Nginx pod'u çalıştır
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest # Nginx'in en son sürümünü kullan
            ports:
            - containerPort: 80 # Nginx'in dinlediği port

Bu dosya, nginx etiketine sahip 3 adet Nginx pod’u çalıştıracak bir Deployment tanımlar.
2. nginx-service.yaml Oluşturma: Uygulamaya dışarıdan erişim sağlamak için bir Service tanımlayın:

apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx # Bu servis, "app: nginx" etiketine sahip pod'lara yönlenecek
      type: LoadBalancer # DigitalOcean Load Balancer oluşturulacak
      ports:
        - protocol: TCP
          port: 80 # Servisin dinleyeceği port
          targetPort: 80 # Pod'ların dinlediği port

type: LoadBalancer seçeneği, DigitalOcean’ın otomatik olarak bir bulut yük dengeleyici (Load Balancer) oluşturmasını ve trafiği Nginx pod’larınıza yönlendirmesini sağlar.
3. Uygulamayı Dağıtma: YAML dosyalarını kümeye uygulamak için kubectl apply komutunu kullanın:

kubectl apply -f nginx-deployment.yaml
    kubectl apply -f nginx-service.yaml

Bu komutlar, Deployment ve Service kaynaklarını kümenizde oluşturacaktır.
4. Dağıtımı Kontrol Etme:

kubectl get deployments
    kubectl get pods -l app=nginx # Sadece Nginx pod'larını listele
    kubectl get services

kubectl get services komutu çıktısında nginx-service için bir EXTERNAL-IP adresi göreceksiniz. Bu IP adresi, DigitalOcean Load Balancer tarafından atanmıştır.

Uygulamaya Erişme

kubectl get services komutuyla elde ettiğiniz nginx-service‘in EXTERNAL-IP adresini bir web tarayıcısına yapıştırarak Nginx’in varsayılan karşılama sayfasını görmeniz gerekir. Bu, uygulamanızın başarıyla dağıtıldığı ve dışarıdan erişilebilir olduğu anlamına gelir.

Not: EXTERNAL-IP adresinin atanması birkaç dakika sürebilir. Eğer hemen görünmezse, bir süre bekleyip tekrar kontrol edin.

Daha karmaşık uygulamalar için Ingress Controller (örn. Nginx Ingress Controller) kullanarak birden fazla uygulamanın tek bir Load Balancer arkasında farklı yollar veya alan adları üzerinden erişilebilir olmasını sağlayabilirsiniz.

DOKS Yönetimi ve Bakımı

Bir DOKS kümesi kurmak sadece başlangıçtır. Uygulamalarınızın sorunsuz çalışmasını sağlamak için kümenizi yönetmeniz ve bakımını yapmanız gerekir.

Node Havuzlarını Yönetme

Uygulama gereksinimleriniz değiştikçe, düğüm havuzlarınızın boyutunu veya yapısını değiştirmeniz gerekebilir.

* Yeni Node Havuzu Ekleme: Farklı iş yükleri veya kaynak gereksinimleri için yeni bir node havuzu ekleyebilirsiniz.

doctl kubernetes cluster node-pool create  \
      --name gpu-pool \
      --size g-2vcpu-8gb \ # GPU destekli bir Droplet planı
      --count 1

* Mevcut Node Havuzunu Ölçeklendirme: Bir node havuzundaki düğüm sayısını artırabilir veya azaltabilirsiniz.

doctl kubernetes cluster node-pool update  \
      --node-pool-id  \ # veya --name 
      --count 5

Otomatik ölçeklendirme etkinse, min-nodes ve max-nodes değerlerini de güncelleyebilirsiniz.
* Node Havuzu Silme: Artık ihtiyacınız olmayan bir node havuzunu silebilirsiniz.

doctl kubernetes cluster node-pool delete  \
      --node-pool-id 

Dikkat: Bir node havuzunu silmek, üzerindeki tüm pod’ları sonlandırır ve verileri kaybolabilir. Öncesinde pod’ları başka havuzlara taşıdığınızdan emin olun.

Kubernetes Sürümünü Yükseltme

Kubernetes sürekli geliştiği için, kümenizi düzenli olarak güncel tutmak önemlidir. DigitalOcean, sürüm yükseltmelerini basitleştirir.

* Yükseltme Yöntemleri:
* Kontrol Paneli: DigitalOcean kontrol panelindeki Kubernetes bölümünden kümenizi seçerek “Upgrade” seçeneğini kullanabilirsiniz.
* doctl CLI:

doctl kubernetes cluster upgrade  \
          --version 

* Yükseltme Süreci: Yükseltme işlemi sırasında DigitalOcean, kontrol düzlemini günceller ve ardından node havuzlarındaki düğümleri sırayla günceller. Bu süreç, düğümleri tek tek boşaltıp (drain) yeni sürüme sahip düğümlerle değiştirerek kesintiyi en aza indirmeye çalışır. Ancak, uygulamalarınızın yükseltme sırasında dayanıklı olduğundan (örn. PDB – Pod Disruption Budget ile) emin olmalısınız.
* Dikkat Edilmesi Gerekenler: Yükseltmeden önce uygulamanızın ve kullandığınız araçların (Helm, Ingress Controller vb.) yeni Kubernetes sürümüyle uyumlu olduğundan emin olun. Küçük bir geliştirme kümesinde yükseltmeyi test etmek iyi bir uygulamadır.

Otomatik Ölçeklendirme

DOKS, iki ana otomatik ölçeklendirme türünü destekler:

* Cluster Autoscaler: Node havuzlarını yapılandırırken etkinleştirdiğiniz bu özellik, kümedeki kaynak yetersizliği (pending pod’lar) durumunda düğüm sayısını otomatik olarak artırır ve kaynaklar boşaldığında düğümleri azaltır.
* Horizontal Pod Autoscaler (HPA): Bu, belirli bir metrik (örn. CPU kullanımı) eşiğine ulaşıldığında pod’larınızın sayısını otomatik olarak artırıp azaltan bir Kubernetes özelliğidir. kubectl autoscale deployment --cpu-percent=80 --min=2 --max=10 gibi komutlarla yapılandırılır.

Yedekleme ve Felaket Kurtarma

Kalıcı veriler için yedekleme stratejileri hayati öneme sahiptir.

* DigitalOcean Block Storage: Kalıcı birimler (Persistent Volumes) için DigitalOcean Block Storage kullanmak, verilerinizin düğümlerden bağımsız olarak saklanmasını sağlar. Block Storage anlık görüntüleri (snapshots) ile veri yedeklemesi yapabilirsiniz.
* Velero: Kubernetes kümesi kaynaklarını (Deployment, Service vb.) ve Persistent Volumes’ları yedeklemek ve geri yüklemek için Velero gibi üçüncü taraf araçları kullanabilirsiniz.

İzleme ve Loglama

Uygulamalarınızın ve kümenizin sağlığını izlemek ve sorunları gidermek için loglara erişmek önemlidir.

* DigitalOcean Monitoring: DigitalOcean, Droplet’leriniz ve kümeniz için temel izleme metrikleri sunar.
* Prometheus & Grafana: Daha gelişmiş izleme ve görselleştirme için kümenize Prometheus ve Grafana kurabilirsiniz.
* ELK Stack (Elasticsearch, Logstash, Kibana): Log toplama, depolama ve analiz için ELK Stack gibi merkezi loglama çözümleri entegre edilebilir.
* Harici Loglama Hizmetleri: Datadog, Splunk gibi harici loglama ve izleme hizmetleri de DOKS ile entegre edilebilir.

DOKS Entegrasyonları ve Ek Özellikler

DigitalOcean ekosistemi, DOKS kümelerinizin yeteneklerini genişletmek için çeşitli hizmetler sunar:

* DigitalOcean Load Balancer: type: LoadBalancer servisleri otomatik olarak bir DO Load Balancer oluşturur. Bu, trafiği kümenizdeki pod’lara eşit şekilde dağıtır.
* DigitalOcean Block Storage: Kalıcı depolama ihtiyaçları için Persistent Volumes olarak kullanılabilir. Yüksek performanslı ve ölçeklenebilir diskler sunar.
* DigitalOcean Container Registry: Konteyner imajlarınızı depolamak ve yönetmek için özel bir Docker kayıt defteri hizmetidir. DOKS ile kolayca entegre olur.
* DigitalOcean Managed Databases: PostgreSQL, MySQL, Redis gibi yönetilen veritabanı hizmetleri, DOKS üzerindeki uygulamalarınız için güvenilir ve ölçeklenebilir bir veritabanı katmanı sağlar. VPC üzerinden güvenli bağlantı kurabilirler.
* Spaces Object Storage: S3 uyumlu bir nesne depolama hizmetidir. Statik dosyalar, yedekler ve büyük veri setleri için kullanılabilir.
* Cloud Firewalls: Kümenizin düğümleri için özel güvenlik duvarı kuralları tanımlayarak ağ trafiğini daha hassas bir şekilde kontrol edebilirsiniz.

Bu entegrasyonlar, bir uygulamanın tüm katmanlarını DigitalOcean üzerinde kurmanızı ve yönetmenizi kolaylaştırır.

Maliyet Yönetimi

DOKS’un maliyet etkinliği önemli bir avantaj olsa da, bütçenizi kontrol altında tutmak için bazı noktalara dikkat etmelisiniz:

* Düğüm Tipleri ve Fiyatlandırma: Farklı Droplet planları farklı maliyetlere sahiptir. Uygulamanızın gerçek ihtiyaçlarına uygun en küçük Droplet planını seçmeye çalışın. CPU optimize edilmiş Droplet’ler genellikle daha pahalıdır.
* Load Balancer Maliyetleri: Her oluşturulan DigitalOcean Load Balancer’ın sabit bir saatlik maliyeti vardır. Birden fazla servis için Ingress Controller kullanarak tek bir Load Balancer arkasında birden fazla uygulama barındırmak maliyetleri düşürebilir.
* Depolama Maliyetleri: Block Storage ve Spaces Object Storage kullanımları GB başına ücretlendirilir. Anlık görüntülerin de maliyeti olduğunu unutmayın.
* Otomatik Ölçeklendirme ile Optimizasyon: Cluster Autoscaler’ı doğru yapılandırmak, yalnızca ihtiyaç duyduğunuzda düğümleri çalıştırmanızı sağlayarak maliyetleri optimize eder. Gereksiz yere fazla düğüm çalıştırmaktan kaçının.
* Kaynak İstekleri ve Limitleri: Pod’larınız için doğru kaynak istekleri (requests) ve limitleri (limits) tanımlamak, düğümlerinizin verimli kullanılmasını sağlar ve gereksiz ölçeklendirmeyi önler.

DigitalOcean kontrol panelindeki faturalandırma bölümünden kaynak kullanımınızı ve maliyetlerinizi düzenli olarak takip edin.

Sıkça Sorulan Sorular ve İpuçları

* Hangi Kubernetes sürümünü seçmeliyim? Genellikle en son kararlı sürümü seçmek iyi bir başlangıçtır. Ancak, uygulamanızın veya kullandığınız üçüncü taraf araçların belirli bir Kubernetes sürümüyle uyumluluğunu kontrol edin.
* Kaç düğümle başlamalıyım? Yüksek kullanılabilirlik için en az 3 düğümle başlamak önerilir. Bu, bir düğümün çökmesi durumunda uygulamanızın çalışmaya devam etmesini sağlar. Geliştirme ortamları için 1-2 düğüm yeterli olabilir.
* Güvenlik en iyi uygulamaları nelerdir?
* Kümelerinizi özel VPC ağlarına yerleştirin.
* Cloud Firewalls kullanarak düğümlerinize gelen ve giden trafiği kısıtlayın.
* Kubernetes RBAC (Role-Based Access Control) kullanarak kullanıcıların ve servis hesaplarının küme kaynaklarına erişimini sınırlayın.
* Konteyner imajlarınızı düzenli olarak güncelleyin ve güvenlik açıklarını tarayın.
* Duyarlı verileri (parolalar, API anahtarları) Kubernetes Secrets ile yönetin.
* Performans ipuçları:
* Uygulamanızın ihtiyaçlarına uygun Droplet planlarını seçin.
* Pod’larınız için doğru kaynak istekleri ve limitleri tanımlayın.
* Kalıcı veriler için Block Storage veya Managed Databases kullanın.
* Uygulamanızın performansını izleyin ve darboğazları belirleyin.

Sonuç

DigitalOcean Yönetilen Kubernetes Kümesi (DOKS), konteynerize edilmiş uygulamalarınızı dağıtmak ve yönetmek için güçlü, esnek ve maliyet etkin bir çözüm sunar. Kontrol düzlemi yönetimini DigitalOcean’a bırakarak, ekipleriniz uygulama geliştirmeye ve yeniliğe odaklanabilir. Bu rehberde, bir DOKS kümesini oluşturmaktan, uygulamaları dağıtmaya ve kümenizi yönetmeye kadar tüm temel adımları detaylı bir şekilde ele aldık.

İster küçük bir proje ister büyük ölçekli bir üretim ortamı için olsun, DOKS, modern bulut tabanlı uygulamalarınızı güvenilir bir şekilde çalıştırmanız için gerekli altyapıyı sağlar. DigitalOcean’ın entegre hizmetleri ve kullanıcı dostu araçları sayesinde, Kubernetes’in gücünden tam olarak yararlanırken operasyonel karmaşıklığı en aza indirebilirsiniz. Şimdi sıra sizde; DOKS ile uygulamalarınızı buluta taşıyın ve geleceğin teknolojilerini keşfedin!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.