प्रौद्योगिकी और बुनियादी ढांचा - Kubernetes समूह और हेल्म चार्ट
कुबर्नेट्स क्लस्टर और हेल्म चार्ट
1) कुबर्नेट्स और हेल्म की भूमिका
Kubernetes एप्लिकेशन प्लेटफॉर्म का आधार है: यह रोलिंग, नेटवर्किंग, कॉन्फ़िग, रहस्य और स्व-चिकित्सा का मानकीकरण करता है। हेल्म एक पैकेज/टेम्पलेट प्रबंधक है जो संस्करण नियंत्रण और निर्भरता के साथ घोषणात्मक अभिव्यक्तियों को पुनरावृत्ति में बदल देता है। साथ में वे अनुमानित प्रेषण, त्वरित रोलबैक और एक एकल बुनियादी ढांचा भाषा प्रदान करते हैं।
2) क्लस्टर डिजाइन
2. 1 टोपोलॉजी और गलती सहिष्णुता
मल्टी-एज़: कंट्रोल प्लेन और वर्कर पूल नोड्स ज़ोन किए गए हैं; एकरूपता के लिए PDB/TopoLogionScrents।
बहु-क्षेत्र/डीआर: स्वतंत्र प्रति-क्षेत्र समूह; इंटररेजनल कॉल - केवल "कोल्ड" पथ (निर्देशिका/टेलीमेट्री), "हॉट" (वॉलेट) - स्थानीय स्तर पर।
प्रोफ़ाइल द्वारा कार्यकर्ता पूल: 'सामान्य', 'गणना', 'io', 'स्पॉट' (पृष्ठभूमि कार्यों के लिए)। NodeSelector/affinity/tains के माध्यम से असाइनमेंट।
2. 2 नेमस्पेस और मल्टी-यूजर मॉडल
डोमेन/कमांड द्वारा नेमस्पेस-अलगाव: 'भुगतान', 'बटुआ', 'गेम', 'रिपोर्टिंग'।
रिसोर्सकोटा + रेंज: बुनियादी सीपीयू/रैम सीमाएं और अधिकतम प्रतिकृतियां; "वैक्यूम क्लीनर" के खिलाफ क्लस्टर सुरक्षा।
RBAC: डिफ़ॉल्ट रूप से केवल पढ़ें, लिखें - केवल CI/CD और ऑन-कॉल।
2. 3 नेटवर्क
नेटवर्किंग पॉलिसी समर्थन के साथ CNI (कैलिको/सिलियम): नीति - नेमस्पेस/लेबल द्वारा।
Ingress Gateway API: कैनरी और मल्टी-टेनेंसी के लिए 'गेटवे क्लास/गेटवे/HTTPRoute' मॉडल पर स्विच करें।
सेवा मेश (वैकल्पिक): एमटीएलएस, रीट्री/ब्रेकर, इलाके-जागरूक; अंतर-सेवा विश्वसनीयता के लिए बिंदु चालू करें।
3) विश्वसनीयता और मापनीयता
3. 1 स्केलिंग
उपयोगकर्ता मैट्रिक्स (आरपीएस/विलंबता/कतार गहराई) द्वारा एचपीए, न केवल सीपीयू।
पृष्ठभूमि लोड वर्ग पर वीपीए; उत्पाद में - "सिफारिश केवल" या विभिन्न मैट्रिक्स पर एचपीए के साथ।
क्लस्टर ऑटोस्केलर: संवेदनशील सेवाओं के लिए अलग नोड समूह; वार्म-पूल टू पिक्स (टूर्नामेंट/मैच)।
3. 2 संसाधन और QoS
प्रत्येक पॉड में अनुरोध/सीमा होती है; ': नवीनतम' और 'असीमित' कंटेनरों से बचें।
वर्ग: महत्वपूर्ण सेवाएं ('बटुआ', 'भुगतान') गैर-महत्वपूर्ण लोगों को विस्थापित करती हैं।
पीडीबी: नोड्स को अपडेट करते समय क्लस्टर को "पैर में खुद को गोली मारने" न दें।
3. डाउनटाइम के बिना 3 अपग्रेड
महत्वपूर्ण रास्तों पर अधिकतम उपलब्ध = 0 के साथ रोलिंगअपडेट।
PodDis बजट + ReadinsProbes ( 'startupProber' तत्परता)।
चोटियों के दौरान तेजी से रिलीज के लिए क्षमता में वृद्धि - सावधानी के साथ।
4) प्लेटफ़ॉर्म सुरक्षा
नेमस्पेस स्तर पर पॉड सिक्योरिटी (बेसलाइन/प्रतिबंधित); 'privileged' अस्वीकृत, hostPath, जड़।
नेटवर्कपॉलिसी: पोर्ट/लेबल द्वारा डिफ़ॉल्ट-इनकार और सफेदी।
Seccomp/AppArmor, गैर-रूट उपयोगकर्ता, केवल पढ़ ने के लिए रूट।
रहस्य: KMS/वॉल्ट प्रदाता (CSI), रहस्यों को 'values में नहीं रखते हैं। यामल 'खुले रूप में।
RBAC न्यूनतम: हम सेवा खाते केवल आवश्यक अधिकार जारी करते हैं; अल्पकालिक टोकन।
प्रवेश नियंत्रण: OPA/गेटकीपर/Kyverno - लेबल, सीमा, नीति उल्लंघन लागू करें।
5) अवलोकन क्षमता
OpenTelemetry: Ingress/Gateway → service → database/cache, अनिवार्य लेबल 'सेवा', 'संस्करण', 'क्षेत्र', 'पार्टनर', 'api _ version' से ट्रेसिंग।
लॉग: संरचित, कोई पीआईआई/पैन नहीं; केंद्रीकृत भंडारण के लिए मार्ग
मेट्रिक्स: RED/USE, SLO-डैशबोर्ड, बर्न-रेट अलर्ट।
सिंथेटिक्स: सही देशों/एएसएन से नमूने; परिधि और आंतरिक स्वास्थ्य-जांच।
6) GitOps - प्रगतिशील वितरण
Argo CD/Flux: वांछित स्थिति Git में संग्रहीत है; प्रत्येक नेमस्पेस का अपना भंडार/फ़ोल्डर है।
कलाकृतियों का प्रचार: पीआर के माध्यम से 'देव स्टेज' प्रोड ', न कि "कुबेक्टल लागू"।
कैनरी/ब्लू-ग्रीन: आर्गो रोलआउट्स/गेटवे एपीआई; सफलता मेट्रिक्स - P95/P99, त्रुटि-दर, व्यवसाय SLI (जमा की सीआर)।
रोलबैक: हेल्म/आर्गो में - बटन द्वारा; चार्ट में - संस्करण तय किए गए हैं।
7) हेल्म: सर्वोत्तम प्रथाएं
7. 1 चार्ट संरचना
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)
सिफारिशें:
- 'वर्शन' - चार्ट संस्करण (SemVer), 'appVersion' - अनुप्रयोग (छवि) संस्करण।
- मजबूत संसाधन नाम '{शामिल' svc हैं। फुलनेम। "} '+ लेबल' ऐप। kubernetes। io/'।
- अपेक्षित अभिव्यक्ति: तैनाती/स्थिति - सेट, सेवा, सेवा खाता, एचपीए (यदि लागू हो), पीडीबी, नेटवर्कपॉलिसी।
7. 2 मान-रणनीति
बुनियादी 'values। yaml '- डिफ़ॉल्ट, बिना रहस्य और पर्यावरण-बारीकियों के।
ओवरराइड: 'values- {stage' prod} .yaml '+ प्रति क्षेत्र फ़ाइलें.
रहस्य: SOPS ('मान-प्रोड। Sops। यामल ') या सीएसआई के माध्यम से तिजोरी इंजेक्शन।
संसाधनों और नमूनों के मापदंड - "उचित" चूक के साथ मूल्यों में।
7. 3 निर्भरता और सामान्य कोड
पैटर्न के लिए सामान्य चार्ट पुस्तकालय (जांच, एनोटेशन, नेटवर्कपॉलिसी)।
निर्भरता ('आवश्यकताएं '/' चार्ट। yaml ') संस्करण द्वारा फिक्स; गहरे "घोंसले के शिकार गुड़िया" से बचें।
7. 4 टैम्प्लेट और चेक
'आवश्यक' तथा 'असफलता' को 'हेल्पर्स' में इस्तेमाल करें। tpl 'for महत्वपूर्ण मूल्य।
मूल्यों का सत्यापन - 'मान योजना। स्कीमा। json '।
यूनिट चार्ट परीक्षण - 'हेल्म यूनिटेस्ट'; स्थैतिक विश्लेषण - kubeconform/kubeval।
स्थानीय डिबगिंग - 'हेल्म टेम्पलेट' + '-values' + 'kubeconform'.
7. 5 रिलीज और भंडारण
चार्ट को OCI कंटेनर रजिस्टरों में धकेलें; SemVer द्वारा टैग।
हेल्मफाइल/' हेल्मफाइल। मल्टी-चार्ट शीव्स का डी 'फोर ऑर्केस्ट्रेशन।
CI कलाकृतियाँ: उत्पन्न प्रकट + लॉकफाइल निर्भरता।
8) उदाहरण: तैनाती (हेल्म टेम्पलेट टुकड़ा)
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) रहस्य और विन्यास
Git भंडार (GPG/KMS कुंजियों) में CSI (वॉल्ट/KMS) या SOPS के माध्यम से रहस्य; 'कुबेक्टल एडिट' निषिद्ध है)।
रोलिंग रिलीज ट्रिगर के लिए कॉन्फ़िगमैप/सीक्रेट चेकसम एनोटेशन।
पैन/पीआईआई संग्रहीत न करें; टोकन का उपयोग करें।
सील किए गए राज की अनुमति है, लेकिन SOPS या डायरेक्ट CSI को पसंद किया जाता है।
10) नेटवर्क और परिधि
L7 रूटिंग, कैनरी और ब्लू-ग्रीन के लिए गेटवे एपीआई; आवश्यक होने पर ही चिपचिपा सत्र।
mTLS जाल/साइडकार-कम (सिलियम) के माध्यम से सेवाओं के बीच - भुगतान कोर के लिए बिंदु।
एग्रेस: बाहरी नोड्स (PSP/KYC), फिक्स्ड NAT-IP, टाइमआउट और रिट्रे बजट की नियंत्रित सूची।
11) राज्यपूर्ण सेवाएं और डेटा
OLTP डेटाबेस के लिए, अलग-अलग समूहों में प्रबंधित क्लाउड सेवाओं या ऑपरेटरों (Postgres/MySQL) का उपयोग करें।
स्नैपशॉट और बैकअप पॉलिसी के साथ पीवीसी/सीएसआई; प्रतिकृतियों के लिए 'PodAntiAffinity'।
कतारों/स्ट्रीमिंग के लिए - प्रबंधित समाधान या समर्पित समूह; एक "सामान्य" अनुप्रयोग क्लस्टर में, न्यूनतम राज्य रखें।
12) सीआई/सीडी कन्वेयर (संदर्भ)
1. बिल्ड (परीक्षण 2) SCA/lint 3) रजिस्टर में छवि (SBOM, हस्ताक्षर)
2. हेल्म चार्ट जनरेशन + 'हेल्म यूनिटेस्ट' + kubeconform →
3. CD → 6 में SOPS डिक्रिप्शन) GitOps रिपॉजिटरी में PR रनटाइम →
4. Argo/Flux → 8) Argo रोलआउट्स कैनरी → 9) SLO ऑटो फैसले → 10) प्रमोशन/रोलबैक लागू करता है।
13) प्लेटफ़ॉर्म परिपक्वता मैट्रिक
GitOps के माध्यम से रिलीज़ का हिस्सा (लक्ष्य: 100%)।
तैयार होने तक रोलिंग टाइम (P95), MTTR रोलबैक।
नेमस्पेस पॉड सिक्योरिटी एंड नेटवर्किंग पॉलिसी का कवरेज (लक्ष्य: 100%)।
HPA के साथ सेवाओं का% और सही अनुरोध/सीमा।
% चार्ट 'values के साथ। स्कीमा। json 'and यूनिट परीक्षण।
"मैनुअल" परिवर्तनों के कारण होने वाली घटनाएं (लक्ष्य: 0)।
14) कार्यान्वयन चेकलिस्ट
1. ज़ोन द्वारा समूह, प्रोफाइल द्वारा नोड्स का पूल; PDB/TopOlyDograyConctrents।
2. नेमस्पेस मॉडल, रिसोर्सकोटा/ Range, RBAC न्यूनतम।
3. पॉड सिक्योरिटी (प्रतिबंधित) и डिफ़ॉल्ट इनकार नेटवर्कपॉलिसी।
4. गेटवे एपीआई/इंग्रेस; प्रदाताओं को नियंत्रण और NAT निर्धारण।
5. अवलोकन: ओटेल ट्रेल्स, RED/USE, भू सिंथेटिक्स; एसएलओ डैशबोर्ड।
6. GitOps (Argo/Flux), कैनरी/ब्लू-ग्रीन, मैट्रिक्स द्वारा ऑटो-प्रमोशन।
7. हेल्म मानक: संरचना, स्कीमा। json, परीक्षण, SOPS/वॉल्ट, OCI रजिस्टर।
8. एचपीए/वीपीए, क्लस्टर ऑटोस्केलर, चोटियों के लिए वार्म-पूल।
9. डेटा ऑपरेशन: सीएसआई स्नैपशॉट, बैकअप ,/प्रबंधित डेटाबेस ऑपरेटर।
10. नियमित डीआर/अराजकता परीक्षण और खेल के दिन।
15) एंटी-पैटर्न
अलगाव और कोटा के बिना हर चीज के लिए एक "विशाल" क्लस्टर।
संसाधन प्रतिबंधों के बिना कंटेनर, 'नवीनतम' टैग, कोई जांच नहीं।
रहस्य में रहस्य। यामल 'स्पष्ट पाठ में,' कुबेक्टल संपादित करें '।
पिछले GitOps को जारी करता है, मैनुअल मैनिट एक लाइव क्लस्टर पर संपादित करता है।
नेटवर्कपॉलिसी/पॉड सिक्योरिटी का अभाव - "फ्लैट" नेटवर्क।
विभिन्न प्रकार के भार के लिए सीपीयू में एक एकल सामान्य एचपीए संकेत।
एक ऑपरेटर और बैकअप के बिना "सामान्य" एप्लिकेशन क्लस्टर के भीतर OLTP डेटाबेस का भंडारण।
16) iGaming संदर्भ/फिनटेक: व्यावहारिक नोट्स
भुगतान वेबहूक: पीएसपी के लिए समर्पित इंग्रेस/गेटवे और संकीर्ण अहंकार; सख्त टाइमआउट/रिट्रेज़; व्यक्तिगत मेजबान पूल।
वीआईपी यातायात: प्राथमिकता और व्यक्तिगत मार्ग; पीडीबी और टोपोलॉजी स्थिरता के लिए फैल गए।
टूर्नामेंट/पिक्स: वार्म-पूल नोड्स + भविष्यवाणी एचपीए; कैश/कनेक्शन वार्मिंग।
रिपोर्टिंग/सीडीसी: अलग क्लस्टर/पूल ताकि ईटीएल प्रोड को प्रभावित न करे।
नियामक: अपरिवर्तनीय लॉग (WORM), PII टोकन, नेटवर्क विभाजन।
कुल
एक मजबूत Kubernetes प्लेटफ़ॉर्म एक "YAML ढेर" नहीं है, लेकिन मानक: अलगाव, सुरक्षा नीति, प्रबंधित संसाधन, अवलोकन और GitOps अनुशासन। हेल्म चार्ट - आपका आपूर्ति अनुबंध: अनुमानित रिलीज, परीक्षण योग्य पैटर्न, सुरक्षित गुप्त हैंडलिंग और सरल किकबैक। इन सिद्धांतों को मजबूत करके, आपको ऐसे समूह मिलते हैं जो चोटियों से बचते हैं, रिलीज में तेजी लाते हैं, और व्यापार और नियामक मांगों का सामना करते हैं।