Teknoloji ve Altyapı - Kubernetes kümeleri ve Dümen grafikleri
Kubernetes kümeleri ve Dümen grafikleri
1) Kubernetes ve Helm'in Rolü
Kubernetes, uygulama platformunun temelidir: yuvarlanma, ağ oluşturma, yapılandırma, sırlar ve kendi kendini iyileştirme işlemlerini standartlaştırır. Helm, bildirimsel manifestoları sürüm denetimi ve bağımlılıklarla tekrarlanabilir sürümlere dönüştüren bir paket/şablon yöneticisidir. Birlikte öngörülebilir gönderimler, hızlı geri dönüşler ve tek bir altyapı dili sağlarlar.
2) Küme tasarımı
2. 1 Topoloji ve hata toleransı
Multi-AZ: kontrol düzlemi ve işçi havuzu düğümleri imarlı; PDB/TopologySpreadConditions for uniformity. - Tekdüzelik için PDB/TopologySpreadConditions
Çok bölgeli/DR: bölge başına bağımsız kümeler; Bölgeler arası aramalar - sadece "soğuk" yollarda (dizinler/telemetri), "sıcak" (cüzdan) - yerel olarak.
İşçi havuzları profile göre:'genel ',' hesaplama ',' io ',' spot '(arka plan görevleri için). NodeSelector/affinity/tains aracılığıyla atama.
2. 2 Ad alanları ve çok kullanıcılı model
Etki alanlarına/komutlara göre ad alanı yalıtımı: 'ödemeler', 'cüzdan', 'oyunlar', 'raporlama'.
ResourceCota + LimitRange: temel CPU/RAM limitleri ve maksimum kopyalar; "Elektrikli süpürgelere" karşı küme koruması.
RBAC: salt okunur roller varsayılan olarak, write - sadece CI/CD ve on-call.
2. 3 Ağ
NetworkPolicy destekli CNI (Calico/Cilium): Ad alanı/etiketle L3/L4 ilke.
Ingress> Gateway API: kanaryalar ve çoklu kiracılık için 'GatewayClass/Gateway/HTTPRoute' modeline geçin.
Servis Ağı (isteğe bağlı): mTLS, yeniden deneme/kırıcı, yerellik bilincine sahip; Servisler arası güvenilirlik için açma noktası.
3) Güvenilirlik ve ölçeklenebilirlik
3. 1 Ölçekleme
Kullanıcı ölçümlerine göre HPA (RPS/gecikme/kuyruk derinliği), sadece CPU değil.
Arka plan yükleme sınıfında VPA; üründe - "yalnızca öneri" veya farklı metriklerde HPA ile birlikte.
Cluster Autoscaler: hassas hizmetler için ayrı düğüm grupları; Seçmek için sıcak havuz (turnuvalar/maçlar).
3. 2 Kaynaklar ve QoS
Her Pod'un istekleri/sınırları vardır; ': en son've' sınırsız 'kaplardan kaçının.
PriorityClass: kritik hizmetler ('cüzdan', 'ödemeler') kritik olmayanların yerini alır.
PDB: Düğümleri güncellerken kümenin "ayağınızı vurmasına" izin vermeyin.
3. 3 Kesinti olmadan yükseltmeler
Kritik yollarda maxUnavailable = 0 ile RollingUpdate.
PodDisruptionBudget + ReadinessProbes (не 'startupProbe' вместо hazır olma).
Zirveler sırasında hızlı salınımlar için dalgalanma kapasitesi - dikkatle.
4) Platform güvenliği
Pod Güvenliği (Baseline/Restricted) ad alanı düzeyinde; 'ayrıcalıklı' izin vermeme, hostPath, root.
NetworkPolicy: varsayılan reddetme ve port/etikete göre beyaz listeye alma.
Seccomp/AppArmor, root olmayan kullanıcılar, salt okunur rootflar.
Sırlar: KMS/Vault sağlayıcısı (CSI), 'değerlerinde sır saklamayın. Yaml 'açık formda.
RBAC minimum: hizmet hesaplarını yalnızca gerekli hakları veriyoruz; Kısa ömürlü jetonlar.
Kabul kontrolü: OPA/Gatekeeper/Kyverno - etiketleri, sınırları, politika ihlallerini uygulayın.
5) Gözlemlenebilirlik
OpenTelemetry: tracing from Ingress/Gateway - service - database/cache, mandatory label 'service', 'version', 'region', 'partner', 'api _ version'.
Günlükler: yapılandırılmış, PII/PAN yok; Merkezi depolamaya yönlendirme
Metrikler: KIRMIZI/KULLANIM, SLO panoları, yanma oranı uyarıları.
Sentetikler: doğru ülkelerden/ASN'den örnekler; Çevre ve iç sağlık kontrolleri.
6) GitOps и aşamalı teslimat
Argo CD/Flux: Git'te istenen durum depolanır; Her ad alanının kendi deposu/klasörü vardır.
Eserlerin tanıtımı: "Kubectl uygula'değil, PR yoluyla" dev "sahne" prod ".
Kanarya/Mavi-Yeşil: Argo Rollouts/Gateway API; Başarı metrikleri - P95/P99, hata oranı, iş SLI (mevduat CR).
Geri dönüşler: Dümen/Argo'da - düğme ile; Grafiklerde - versiyonlar sabittir.
7) Dümen: en iyi uygulamalar
7. 1 Grafik yapısı
my-service/
Chart. yaml # name, version (SemVer), appVersion values. yaml # base values (no secrets)
values-prod. yaml # prod overrides (no secrets)
templates/
_helpers. tpl # naming, common deployment templates. yaml service. yaml hpa. yaml pdb. yaml networkpolicy. yaml serviceaccount. yaml ingress_or_gateway. yaml charts/# dependencies (opcional)
Öneriler:
- 'sürüm' - grafik sürümü (SemVer), 'appVersion' - uygulama (resim) sürümü.
- Güçlü kaynak adları '{{include' svc'dir. tam adı. "}} '+ labels' app. kubernetes. io/'.
- Gerekli manifestolar: Deployment/StatefulSet, Service, ServiceAccount, HPA (varsa), PDB, NetworkPolicy.
7. 2 Değerler-strateji
Temel 'değerler. yaml '- varsayılanlar, sırlar ve çevre özellikleri olmadan.
Geçersiz kılma: 'değerler- {stage' prod} .yaml '+ bölge dosyaları.
Sırlar: SAPS ('değerler-prod. Sops. yaml ') veya CSI aracılığıyla Vault enjeksiyonu.
Kaynak ve örnek parametreleri - "makul" varsayılanlara sahip değerlerde.
7. 3 Bağımlılıklar ve ortak kod
Desenler için ortak grafik kitaplıkları (problar, ek açıklamalar, NetworkPolicy).
Bağımlılıklar ('gereksinimler'/' Grafik. yaml ') versiyona göre düzeltin; Derin "yuvalama bebekleri'nden kaçının.
7. 4 Şablonlar ve kontroller
'Required've' fail 'In' _ helpers 'kullanın. tpl 'kritik değerler için.
Değerlerin doğrulanması - 'değerler şeması. şema. Json '.
Birim grafik testleri - 'helm unittest'; Statik analiz - kubeconform/kubeval.
Yerel hata ayıklama - 'dümen şablonu' + '--values' + 'kubeconform'.
7. 5 Sürümler ve depolama
Grafiği OCI konteyner kayıtlarına itin; Etiketler SemVer.
Helmfile/' helmfile. Çok grafikli demetlerin d 'for orkestrasyonu.
CI artifaktları: oluşturulan manifestolar + lockfile bağımlılıkları.
8) Örnek: Dağıtım (Dümen şablonu parçası)
yaml apiVersion: apps/v1 kind: Deployment metadata:
name: {{ include "svc. fullname". }}
labels: {{ include "svc. labels". nindent 4 }}
spec:
replicas: {{.Values. replicas default 3 }}
strategy:
type: RollingUpdate rollingUpdate:
maxSurge: 1 maxUnavailable: 0 selector:
matchLabels: {{ include "svc. selectorLabels". nindent 6 }}
template:
metadata:
labels: {{ include "svc. selectorLabels". nindent 8 }}
annotations:
checksum/config: {{ include (print $.Template. BasePath "/configmap. yaml"). sha256sum }}
spec:
serviceAccountName: {{ include "svc. serviceAccountName". }}
securityContext:
runAsNonRoot: true containers:
- name: app image: "{{.Values. image. repository }}:{{.Values. image. tag }}"
imagePullPolicy: IfNotPresent ports:
- name: http containerPort: {{.Values. ports. http }}
resources:
requests:
cpu: {{.Values. resources. requests. cpu }}
memory: {{.Values. resources. requests. memory }}
limits:
cpu: {{.Values. resources. limits. cpu }}
memory: {{.Values. resources. limits. memory }}
readinessProbe:
httpGet:
path: /healthz port: http periodSeconds: 5 envFrom:
- secretRef:
name: {{ include "svc. secretsName". }}
9) Sırlar ve konfigürasyonlar
Git deposunda CSI (Vault/KMS) veya SOP aracılığıyla sırlar (GPG/KMS anahtarları; 'kubectl edit' is forbidden).
ConfigMap/Yuvarlanan serbest bırakma tetikleyicisi için gizli sağlama toplamı ek açıklamaları.
PAN/PII'yi saklamayın; tokenization kullanın.
Mühürlü Sırlara izin verilir, ancak SOP veya doğrudan CSI tercih edilir.
10) Ağ ve çevre
L7 yönlendirme, kanaryalar ve mavi-yeşil için ağ geçidi API'si; Sadece gerektiğinde yapışkan seanslar.
Mesh/sidecar-less (Cilium) üzerinden hizmetler arasında mTLS - ödeme çekirdeği için nokta.
Çıkış: harici düğümlerin kontrollü listesi (PSP/KYC), sabit NAT-IP, zaman aşımları ve bütçeyi yeniden ödeme.
11) Durumsal hizmetler ve veriler
OLTP veritabanları için, yönetilen bulut hizmetlerini veya operatörlerini (Postgres/MySQL) ayrı kümelerde kullanın.
Anlık görüntüler ve yedekleme politikası ile PVC/CSI; Kopyalar için 'PodAntiAffinity'.
Kuyruklar/akış için - yönetilen çözümler veya özel kümeler; "Ortak'bir uygulama kümesinde, minimum durum tutun.
12) CI/CD konveyör (referans)
1. Yapı ve test 2) SCA/tiftik 3) Görüntü kayıt (SBOM, imza)
2. Dümen grafik üretimi + 'dümen unittest' + kubeconform
3. CD'de SAPS şifre çözme - 6) GitOps deposunda PR çalışma zamanı
4. Argo/Flux uygulanır 8) Argo Rollouts kanarya 9) SLO Auto Verdict 10) Promosyon/Rollback.
13) Platform olgunluk metrikleri
GitOps aracılığıyla sürümlerin paylaşımı (hedef: %100).
Yuvarlanma süresi (P95) hazır olana kadar, MTTR geri alma.
Namespace Pod Security ve NetworkPolicy'nin kapsamı (hedef: %100).
HPA ve doğru istekleri/sınırları olan hizmetlerin yüzdesi.
'values'ile % grafiği. şema. Json've birim testleri.
"Manuel" değişikliklerden kaynaklanan olaylar (hedef: 0).
14) Uygulama kontrol listesi
1. Bölgelere göre kümeler, profillere göre düğüm havuzu; PDB/TopologySpreadRestrictions.
2. Ad alanı modeli, ResourceCota/LimitRange, RBAC minimum.
3. Pod Security (Restricted) и default-deny NetworkPolicy.
4. Ağ Geçidi API/Giriş; Sağlayıcılara çıkış kontrolü ve NAT fiksasyonu.
5. Gözlemlenebilirlik: OTel izleri, KIRMIZI/KULLANIM, coğrafi sentetikler; SLO panoları.
6. GitOps (Argo/Flux), kanarya/mavi-yeşil, metriklere göre otomatik tanıtım.
7. Dümen standartları: yapı, şema. Json, testler, SAPS/Vault, OCI kayıtları.
8. HPA/VPA, Cluster Autoscaler, zirvelere sıcak havuz.
9. Veri işlemleri: CSI anlık görüntüleri, yedeklemeler ,/yönetilen veritabanı operatörleri.
10. Düzenli DR/kaos testleri ve oyun günleri.
15) Anti-desenler
İzolasyon ve kota olmadan her şey için bir "dev" küme.
Kaynak kısıtlaması olmayan konteynerler,'en son "etiketler, sonda yok.
Değerlerdeki sırlar. Açık metinde yaml ', prod'da' kubectl edit '.
Geçmiş GitOps, manuel manifesto düzenlemelerini canlı bir kümede yayınlar.
NetworkPolicy/Pod Security - "düz" ağ eksikliği.
Farklı yük türleri için CPU genelinde tek bir ortak HPA sinyali.
OLTP veritabanlarının bir operatör ve yedekleme olmadan "ortak'bir uygulama kümesi içinde depolanması.
16) iGaming bağlamı/fintech: pratik notlar
Ödeme web kitapları: PSP'ye özel giriş/ağ geçidi ve dar çıkış; Sıkı zaman aşımları/retrays; Bireysel ev sahibi havuzu.
VIP trafiği: önceliklendirme ve bireysel rotalar; Kararlılık için PDB ve topoloji yayılımı.
Turnuvalar/seçimler: sıcak havuz düğümleri + öngörücü HPA; Önbellekleri/bağlantıları ısıtmak.
Raporlama/CDC: ETL'nin Prod'u etkilememesi için ayrı küme/havuz.
Düzenleyici: değişmez günlükler (WORM), PII tokenization, ağ segmentasyonu.
Toplam
Güçlü bir Kubernetes platformu bir "YAML yığını'değil, standartlardır: izolasyon, güvenlik politikası, yönetilen kaynaklar, gözlemlenebilirlik ve GitOps disiplini. Dümen Grafikleri - Tedarik Sözleşmeniz: Öngörülebilir Sürümler, Test Edilebilir Desenler, Güvenli Gizli Kullanım ve Basit Geri Tepmeler. Bu ilkeleri birleştirerek, zirvelerden kurtulan, sürümleri hızlandıran ve iş ve düzenleyici taleplere dayanan kümeler elde edersiniz.