CodeBlanks Logo Icon CodeBlanks

Cluster federation

Cluster federation yaklaşımlarını öğrenirsin.

Cluster federation

Federasyon, birden çok cluster'a tek bir merkezden iş yükü dağıtmaktır: "bu uygulamadan uretim-eu'da 4, uretim-tr'de 2 kopya". Eski KubeFed projesi bırakıldı; bugün bu iş genellikle iki yolla yapılır:

  • GitOps: Argo CD ApplicationSet ya da Flux, her cluster'a aynı chart'ı ortama özel değerlerle uygular.
  • Çok cluster'lı yöneticiler: Karmada, Open Cluster Management; yayılım politikalarıyla dağıtım.
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: magaza
spec:
  generators:
    - list:
        elements:
          - cluster: uretim-eu
            url: https://eu.k8s.sirket.com
          - cluster: uretim-tr
            url: https://tr.k8s.sirket.com
  template:
    metadata:
      name: 'magaza-{{cluster}}'
    spec:
      source:
        repoURL: https://github.com/ali/platform.git
        path: uygulamalar/magaza
        helm:
          valueFiles: ['values-{{cluster}}.yaml']
      destination:
        server: '{{url}}'
        namespace: magaza

Argo CD ile çalışmak

Argo CD her Application'ın Git'teki istenen durumunu cluster'daki gerçek durumla karşılaştırır: Synced/OutOfSync ve Healthy/Degraded. Cluster'lar Argo CD'ye kaydedilir:

argocd cluster add uretim-eu
argocd app list
NAME              CLUSTER                     STATUS   HEALTH
magaza-uretim-eu  https://eu.k8s.sirket.com   Synced   Healthy
magaza-uretim-tr  https://tr.k8s.sirket.com   Synced   Healthy
argocd app sync magaza-uretim-tr

Uygulama Uygulamaları eşitle

Üç komut yaz: uretim-tr context'ini Argo CD'ye kaydet; Argo CD uygulamalarını listele; magaza-uretim-tr uygulamasını eşitle.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
argocd cluster add uretim-tr
argocd app list
argocd app sync magaza-uretim-tr

Beklenen çıktı

Cluster 'https://tr.k8s.sirket.com' added
NAME              CLUSTER                     STATUS     HEALTH
magaza-uretim-eu  https://eu.k8s.sirket.com   Synced     Healthy
magaza-uretim-tr  https://tr.k8s.sirket.com   OutOfSync  Healthy
Operation:          Sync
Phase:              Succeeded

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 ApplicationSet'teki list generator ne üretir?

  • Bir Helm chart'ı
  • Her öğe için şablondan bir Argo CD Application Doğru cevap
  • Bir Deployment
  • Bir cluster

Açıklama: Öğedeki alanlar {{cluster}} gibi şablon değişkenlerine dolar.

2 Bir cluster'ı Argo CD'ye kaydet.

Soru
argocd cluster ____ uretim-eu
Cevap
argocd cluster add uretim-eu

Açıklama: cluster add kubeconfig context'ini kullanır.

3 Eşleştir.

Kavram Anlamı
ApplicationSet Çok cluster'a şablon
Synced Git ile aynı
OutOfSync Git'ten farklı
Karmada Çok cluster yöneticisi

Uzman bölümündeki tüm dersler