Cluster federation
- Docker & Kubernetes kursu
- Uzman
- Ders 26/47
- 4 dk
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: magazaArgo 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-trUygulama 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
# buraya yazÖrnek çözüm
argocd cluster add uretim-tr
argocd app list
argocd app sync magaza-uretim-trBeklenen çı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.
argocd cluster ____ uretim-eu
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 |