İçeriğe geç

Kubernetes, Argo CD ve Flux

Servis Kataloğu’nun “bu servis nerede çalışıyor, sağlıklı mı” boyutu üç kaynaktan beslenir: doğrudan Kubernetes cluster okuması, Argo CD ve Flux. Üçü de 10 dakikada bir arka planda eşitlenir; Entegrasyonlar sayfasındaki Şimdi eşitle düğmesi beklemeden tetikler.

Cluster’daki Deployment, StatefulSet, DaemonSet ve CronJob iş yükleri doğrudan Kubernetes API’sinden okunur - GitOps aracı olmayan ortamlar dahil çalışan her şeyi kapsar. Pod sayıları (hazır/istenen) ve iş yükü sağlığı bu okumadan gelir.

  1. Entegrasyonlar → Kubernetes → Bağlan’a tıklayın.
  2. API sunucu adresini (https://...) ve bir ServiceAccount token’ı girin.
  3. Token şifreli saklanır; bağlantı önce doğrulanır, sonra kaydedilir.

Salt-okunur bir ServiceAccount yeterlidir. list iş yüklerini toplu okumak için, get ise tekil iş yükü durumunu (pod sayıları) okumak için gereklidir - ikisini birden verin:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: apparch-reader
rules:
- apiGroups: ["apps"]
resources: ["deployments", "statefulsets", "daemonsets"]
verbs: ["list", "get"]
- apiGroups: ["batch"]
resources: ["cronjobs"]
verbs: ["list"]
# Flux kullanıyorsanız bu üç kural da gereklidir (aşağıya bakın):
- apiGroups: ["source.toolkit.fluxcd.io"]
resources: ["gitrepositories"]
verbs: ["list"]
- apiGroups: ["kustomize.toolkit.fluxcd.io"]
resources: ["kustomizations"]
verbs: ["list"]
- apiGroups: ["helm.toolkit.fluxcd.io"]
resources: ["helmreleases"]
verbs: ["list"]

Rolü bir ServiceAccount’a bağlayıp token’ını AppArch’a verin:

Terminal window
kubectl create serviceaccount apparch-reader
kubectl create clusterrolebinding apparch-reader \
--clusterrole=apparch-reader --serviceaccount=default:apparch-reader
kubectl create token apparch-reader --duration=8760h

Argo CD, Application başına ortam bilgisi, sync/sağlık durumu ve çalışan commit’i verir. Entegrasyonlar → Argo CD → Bağlan ile Argo CD sunucu adresi ve (anonim okuma kapalıysa) bir API token girilir. Pod sayıları her Application’ın resource tree’sinden okunur.

Flux için ayrı bağlantı gerekmez - Flux, cluster’ınızda custom resource (Kustomization, HelmRelease) olarak yaşar ve mevcut Kubernetes bağlantısı üzerinden okunur. Tek yapmanız gereken, yukarıdaki RBAC örneğindeki üç Flux kuralının token’ınızda bulunmasıdır. Flux tespit edildiğinde Entegrasyonlar sayfasındaki Kubernetes satırında bir Flux rozeti görünür.