GH GambleHub

Kubernetes: Clusters और Helm चार्ट

Kubernetes: Clusters और Helm चार्ट

1) क्लस्टर आर्किटेक्चर - टॉप व्यू

नियंत्रण विमान: 'क्यूब-एपिसर्वर', 'आदि', 'क्यूब-शेड्यूलर', 'क्यूब-कंट्रोलर-मैनेजर', (भाग नियंत्रित बादलों में छिपा हुआ है)।

कार्यकर्ता: 'कुबलेट', CRI रनटाइम (कंटेनर/CRI-O), CNI प्लगइन, kube-proxy/ebpf-proxy।

इंट्राक्लस्टर नेटवर्क: पॉड-टू-पॉड, सर्विस-वीआईपी/क्लस्टरआईपी, डीएनएस कोरडीएनएस।

भंडारण: सीएसआई ड्राइवर, गतिशील पीवीसी → पीवी प्रावधान (स्टोरेज क्लास)।

विफलता सीमा: नोड/AZ/क्षेत्र। क्षेत्र द्वारा प्रतिकृतियाँ रखें (ToploySuderConctrents/anti-affinity)।

विशिष्ट भूमिकाएँ

प्लेटफ़ॉर्म कमांड: CNI/CSI/Ingress, पॉलिसी और GitOps बनाता/अपग्रेड करता है।

उत्पाद टीमें: चार्ट/रिलीज़जमा करें, सुरक्षा नीतियों और संसाधनों का पालन करें।

2) क्लस्टर जीवनचक्र

निर्माण: kOps, kubeadm, Rancher, EKS/AKS/GKE। OIDC सत्यापन और ऑडिटिंग तुरंत सक्षम करें.

उन्नयन: बदले में मामूली संस्करण (नियंत्रण विमान → नोड्स), मैक्सअनुपलब्ध द्वारा नियंत्रित, मंचन पर परीक्षण।

ऐड-ऑन (सभी हेल्म/GitOps के माध्यम से): CNI (Calico/Cilium), CSI ड्राइवर, इंग्रेस कंट्रोलर (NGINX/गेटवे API/Contour/Traefik), मेट्रिक्स्स-सर, क्टर-ऑटोसर नोड-लोकल डीएनएस, लॉगिंग/मेट्रिक्स/ट्रेस।

बैकअप: etcd स्नैपशॉट (यदि स्व-प्रबंधित हो), वेलेरो फॉर नेमस्पेस/पीवीसी।

3) नेटवर्क, सेवाएं और इंग्रेस

CNI: कैलिको (नेटवर्कपॉलिसी), सिलियम (eBPF/servicemesh- фичи)।

सेवा: 'ClusterIP', 'NodePort', 'LoadBalancer' (L4 क्लाउड बैलेंसिंग), ' Name'।

इंग्रेस/गेटवे एपीआई: परिधि पर एल 7 रूटिंग, टीएलएस, दर-सीमा/डब्ल्यूएएफ इतिहास।

नेटवर्किंग पॉलिसी: नेमस्पेस/लेबल द्वारा डिफ़ॉल्ट रूप से इनकार करें।

स्टेटलेस सेट और सर्विस खोज के लिए हेडलेस-सर्विस ('क्लस्टरआईपी: कोई नहीं')।

4) भंडारण (सीएसआई) और राज्य

स्टोरेज क्लास: 'पुनः प्राप्त नीति', 'BinaleMode' (बेहतर प्लेसमेंट के लिए ' ForFirstComment')।

Stat Set: स्थिर नाम/वॉल्यूम (' ComplayTemplates'), त्वरित स्कैन के लिए 'पॉड्सपॉलिसी: समानांतर'।

Read ThereMony: वितरित फ़ाइल (EFS/Filestore) का सावधानीपूर्वक उपयोग करें - विलंबता का आकलन करें।

स्नैपशॉट्स: ' SnapShotClass' + क्रॉन बैकअप।

5) बहु-किरायेदारी और राजनीति

उत्पाद/पर्यावरण द्वारा नामस्थान।

RBAC: जहां संभव हो, 'क्लस्टररोल' के बजाय न्यूनतम भूमिकाएं, अलग सेवा खाते, 'रोल '/' भूमिका'।

PSA (पॉड सिक्योरिटी एडमिशन): 'बेसलाइन '/' प्रतिबंधित' मोड (PSP रिप्लेसमेंट)।

रिसोर्सकोटा/ रेंज: सीपीयू/मेमोरी/पीवीसी/लोडबैलेंसर।

OPA गेटकीपर/Kyverno: प्रवेश नीति (जैसे) निषेध ': नवीनतम', आवश्यकता 'संसाधन', 'ReadOlnRootFilesystem')।

Image caption/webhooks: छवि हस्ताक्षर सत्यापन (cosign/police-control)।

6) अवलोकन और संचालन

मेट्रिक्स: प्रोमेथियस स्टैक, क्यूब-स्टेट-मेट्रिक्स, नोड निर्यातक।

लॉग: फ्लूएंट बिट/वेक्टर → ऑब्जेक्ट/ईएस/ओपनसर्च, नोड्स पर रोटेशन।

ट्रेल्स: ओपनटेलीमेट्री कलेक्टर।

SLO डैशबोर्ड: प्रवेश और प्रमुख सेवाओं पर RED मॉडल।

ऑटोस्केल: एचपीए (एप्लिकेशन मैट्रिक्स द्वारा), पृष्ठभूमि के लिए वीपीए, नोड्स के लिए क्लस्टर-ऑटोस्केलर।

7) मैनिफेस्ट पैटर्न (चीट शीट)

तैनाती:
yaml apiVersion: apps/v1 kind: Deployment metadata: { name: api, labels: { app: api } }
spec:
replicas: 3 strategy: { type: RollingUpdate, rollingUpdate: { maxUnavailable: 0, maxSurge: 1 } }
selector: { matchLabels: { app: api } }
template:
metadata:
labels: { app: api }
spec:
serviceAccountName: api-sa securityContext: { runAsNonRoot: true, fsGroup: 2000 }
containers:
- name: api image: registry. example. com/api:1. 2. 3 ports: [{ containerPort: 8080 }]
resources: { requests: { cpu: "200m", memory: "256Mi" }, limits: { cpu: "1", memory: "512Mi" } }
readinessProbe: { httpGet: { path: /healthz, port: 8080 }, periodSeconds: 5 }
livenessProbe: { httpGet: { path: /livez,  port: 8080 }, initialDelaySeconds: 20 }
स्थिति सेट (स्निपेट):
yaml apiVersion: apps/v1 kind: StatefulSet metadata: { name: db }
spec:
serviceName: db replicas: 3 podManagementPolicy: Parallel selector: { matchLabels: { app: db } }
template:
metadata: { labels: { app: db } }
spec:
containers:
- name: db image: postgres:16-alpine volumeMounts: [{ name: data, mountPath: /var/lib/postgresql/data }]
volumeClaimTemplates:
- metadata: { name: data }
spec:
accessModes: ["ReadWriteOnce"]
resources: { requests: { storage: 100Gi } }
storageClassName: fast-ssd
PDB (PodDis बजट):
yaml apiVersion: policy/v1 kind: PodDisruptionBudget metadata: { name: api-pdb }
spec:
minAvailable: 2 selector: { matchLabels: { app: api } }
इंग्रेस (Nginx, संक्षिप्त):
yaml apiVersion: networking. k8s. io/v1 kind: Ingress metadata:
name: api annotations:
nginx. ingress. kubernetes. io/proxy-read-timeout: "30"
spec:
tls: [{ hosts: ["api. example. com"], secretName: api-tls }]
rules:
- host: api. example. com http:
paths:
- path: /
pathType: Prefix backend: { service: { name: api, port: { number: 80 } } }

8) हेल्म v3 - मूल बातें और संरचना

चार्ट = टेम्पलेट + मान + मेटाडेटा।


mychart/
Chart. yaml     # name, version (semver), type (application/library), dependencies values. yaml # default values. schema. json # (recommended) validation values templates/# .yaml. gotmpl (Deployment, Service, Ingress, …)
templates/tests/  # helm tests (smoke)
charts/# local dependencies (or OCI dependencies)
चार्ट। yaml (उदाहरण):
yaml apiVersion: v2 name: api description: API service type: application version: 1. 4. 0 # chart version (semver)
appVersion: "1. 2. 3" # dependencies application version:
- name: redis version: 17. x.x repository: "oci://registry. example. com/charts"

9) हेल्म टेम्पलेट - अभ्यास

'हेल्पर्स' में सहायकों का उपयोग करें। tpl 'नाम/लेबल/एनोटेशन के लिए।

हर जगह 'संसाधन', 'संदर्भ', 'तत्परता/जीवन' निर्दिष्ट करें।

मानकीकृत योजना ('app. kubernetes' के अनुसार लेबल उत्पन्न करें। io/')।

'values' (ingress/hpa/pdb/servicemonitor) के माध्यम से सुविधाएँ वैकल्पिक बनाएं।

'values शामिल करें। स्कीमा। json '- गलत कॉन्फ़िग से बंद करो।

संवेदनशील डेटा के लिए - बाहरी ऑपरेटरों से रहस्य (बाहरी रहस्य, एसओपीएस), और मूल्यों में संग्रहीत नहीं।

उदाहरण 'हेल्पर्स (_ A) tpl '(टुकड़ा):
gotmpl
{{- define "api. fullname" -}}
{{- printf "%s-%s".Chart. Name. Release. Name      trunc 63      trimSuffix "-" -}}
{{- end -}}
तैनाती। tpl (टुकड़ा):
gotmpl apiVersion: apps/v1 kind: Deployment metadata:
name: {{ include "api. fullname". }}
labels: {{- include "api. labels". nindent 4 }}
spec:
replicas: {{.Values. replicaCount }}
strategy:
rollingUpdate:
maxSurge: 1 maxUnavailable: 0 selector:
matchLabels: {{- include "api. selectorLabels". nindent 6 }}
template:
metadata:
labels: {{- include "api. selectorLabels". nindent 8 }}
spec:
serviceAccountName: {{ include "api. serviceAccountName". }}
securityContext: {{- toYaml. Values. podSecurityContext      nindent 8 }}
containers:
- name: {{.Chart. Name }}
image: "{{.Values. image. repository }}:{{.Values. image. tag }}"
imagePullPolicy: IfNotPresent ports: [{ containerPort: {{.Values. service. port }} }]
resources: {{- toYaml. Values. resources      nindent 10 }}
envFrom:
- secretRef: { name: {{.Values. secretsRef }} }

10) निर्भरता, भंडार और ओसीआई

हेल्म वी 3 ओसीआई रजिस्टरों का समर्थन करता है: 'ओसी ://रजिस्ट्री/ओआरजी/चार्ट'।

लॉक निर्भरता संस्करण ('^ 1। 2. 0`, `~1. 2 ') और' हेल्म डिपेंडेंसी बिल्ड 'चलाएं।

चार्ट (नीति) पर हस्ताक्षर करें, सीआई कलाकृतियों में कलाकृतियों को संग्रहीत करें।

लाइब्रेरी चार्ट: पुन: उपयोग के लिए सामान्य टेम्पलेट (इंग्रेस/सर्विसमॉनिटर)।

11) हुक, सीआरडी और संचालन का आदेश

हुक: 'प्री-इंस्टॉल', 'पोस्ट-इंस्टॉल', 'प्री-अपग्रेड', 'पोस्ट-अपग्रेड', 'टेस्ट'। नीतियां जोड़ें ('पहले हुक-निर्माण', 'हुक-सफल')।

CRD: 'crds/' (टेम्पलेट्स पर सेट) में डालें, मक्खी पर CRD अपडेट से बचें - अलग से माइग्रेट करें।

डेटाबेस माइग्रेशन/इनिशियलाइजेशन - जॉब-हुक साथ आइडेम्पोटेंसी और टाइमआउट।

12) चार्ट और सीआई परीक्षण

योजना का 'हेलम लिंट' + सत्यापन।

हेल्म यूनिटेस्ट (यूनिट), चार्ट-परीक्षण (सीटी) - सीआई में तरह/मिनीक्यूब में असेंबली/इंस्टॉलेशन।

टेम्पलेट के स्नैपशॉट परीक्षण ('हेल्म टेम्पलेट' - टेम्पलेट के साथ तुलना करें)।

स्मोक टेस्ट 'हेल्म टेस्ट' ('पॉडविथ चेक उठाएं)।

13) GitOps (Argo CD/Flux)

सत्य का स्रोत भंडार है। चार्ट को हेल्मरिलीज ़/हेल्मचार्ट (फ्लक्स) या एप्लिकेशन (आर्गो) के रूप में संग्रहीत किया जाता है।

सिंक नीतियां: प्रून/सेल्फ-हील, स्टेटस और हेल्थ-चेक के साथ ऑटो-सिंक।

प्रमोशन संस्करण: टैग-बॉट्स/सेवर-रेंज, पीआर-फ्लो।

रेपो को एप्लिकेशन (चार्ट) और एनवी (ओवरराइड/मान) में विभाजित करें।

गुप्त प्रबंधन: SOPS (आयु/KMS), बाहरी रहस्य।

14) सुरक्षा: न्यूनतम आवश्यक

PSA प्रतिबंधित: कोई विशेषाधिकार, कोई hostPath, सीमित क्षमताएं, केवल पढ़ ने-लिखने की जड़ें नहीं।

छवि नीति - केवल हस्ताक्षरित/विश्वसनीय छवियाँ।

नेटवर्कपॉलिसी: "डिफ़ॉल्ट रूप से बंद".

RBAC: प्रति-ऐप सेवा खाता, नेमस्पेस में 'रोल '/' भूमिका बाइंडिंग'।

प्रवेश नियंत्रण: गेटकीपर/किवर्नो नियम (संसाधन/सीमा, लेबल, नवीनतम नहीं)।

राज: SOPS/बाहरी रहस्य; मान/सादे गिट में रहस्य न रखें।

15) एंटी-पैटर्न

': नवीनतम' चार्ट और इमेजरी में; 'values की अनुपस्थिति। स्कीमा। json '।

मॉड्यूलर के बजाय एक विशाल चार्ट "सब कुछ के लिए"।

CRD को 'टेम्पलेट/' में टेम्पलेट के साथ अपडेट किया जाता है।

टेम्पलेट में हार्ड-कोडित नाम/पोर्ट/नेमस्पेस।

संसाधनों/सीमाओं और नमूनों की कमी - विलंबता बहाव और अस्थिरता।

नाली/उन्नयन के साथ कोई पीडीबी → शून्य डाउनटाइम संभव नहीं है।

एन्क्रिप्शन के बिना गिट में रहस्य; बिना चेक पॉलिसी के प्रकट होता है।

16) कार्यान्वयन चेकलिस्ट (0-45 दिन)

0-10 दिन

'हेल्पर्स' के साथ एक मूल चार्ट कंकाल बनाएँ। tpl ', लेबल, जांच, संसाधन, PDB/Ingress वैकल्पिक।

पीएसए प्रतिबंधित, नेटवर्किंग पॉलिसी इनकार-सभी, रिसोर्सकोटा/ रेंज।

GitOps (Argo/Flux), निजी रजिस्टर, छवि/चार्ट हस्ताक्षर कॉन्फ़िगर करें।

11-25 दिन

चार्ट को मॉड्यूल/निर्भरता में विभाजित करें, 'values जोड़ें। स्कीमा। json ', परीक्षण (' हेल्म लिंट ', इकाई, ct)।

कनेक्ट करें वेधशाला (Service Monitor/PodMonitor), लॉग एजेंट, OTEl.

उन्नयन प्रक्रिया दर्ज करें: मंचन → कैनरी → prod, रोलबैक के साथ हुक माइग्रेशन।

26-45 दिन

स्वचालित निर्भरता अपडेट (बॉट्स/सेवर-रेंज + पीआर)।

CI में गेटकीपर/Kyverno पॉलिसी और पॉलिसी रिपोर्ट जोड़ें।

दस्तावेज़ क्लस्टर उन्नयन रनबुक, डीआर प्रक्रियाएँ (वेलेरो/etcd स्नैपशॉट)।

17) परिपक्वता मैट्रिक्स

100% अनुप्रयोग हेल्म/GitOps के माध्यम से समाप्त हो जाते हैं, बिना 'कुबेक्टल लागू' मैन्युअल रूप से।

सभी चार्ट में 'values' हैं। स्कीमा। json ', परीक्षण, हस्ताक्षर और प्रतिबद्ध निर्भरता संस्करण।

पीएसए प्रतिबंधित/नेटवर्किंग पॉलिसी सभी नेमस्पेस में सक्षम है।

पीडीबी और एचपीए सभी महत्वपूर्ण सेवाओं में मौजूद हैं।

SOPS/बाहरी रहस्य, कोई नवीनतम नीति नहीं, छवि हस्ताक्षर।

क्लस्टर और चार्ट अपग्रेड डाउनटाइम (कैनरी/ब्लू-ग्रीन) के बिना किए जाते हैं, बहाल परीक्षण नियमित हैं।

18) निष्कर्ष

मजबूत Kubernetes फाउंडेशन = मजबूत क्लस्टर आर्किटेक्चर + सख्त नीतियां + औद्योगिक गुणवत्ता हेल्म चार्ट GitOps द्वारा प्रबंधित। टेम्पलेट को मानकीकृत करें, पीएसए/नेटवर्कपॉलिसी/आरबीएसी वातावरण को सुरक्षित करें, मान्य करें और परीक्षण, हस्ताक्षर और प्रचार को स्वचालित करें। फिर उन्नयन और रिलीज़ पूर्वानुमानित हो जाएगा, और प्लेटफ़ॉर्म उत्पाद टीमों के लिए स्थिर और सुविधाजनक हो जाएगा।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।