روز 37: استفاده از Kustomize برای مدیریت تنظیمات Kubernetes

Summarize this content to 400 words in Persian Lang
در Kubernetes، استقرار برنامهها در محیطهای متعدد – مانند توسعه، مرحلهبندی و تولید – اغلب به تغییراتی در پیکربندی نیاز دارد. این تغییرات می تواند منجر به تکرار و نگهداری فایل های YAML شود. وارد کنید سفارشی کردن، ابزاری است که برای ساده کردن این فرآیند با فعال کردن طراحی شده است سفارشی سازی ها بدون تغییر تنظیمات اصلی
Kustomize چیست؟
سفارشی کردن یک ابزار مدیریت پیکربندی بومی Kubernetes است که از a رویکرد اعلامی برای اعمال سفارشی سازی های خاص محیط. به جای کپی کردن فایل های YAML خود برای هر محیط، Kustomize به شما اجازه می دهد تا a را تعریف کنید پیکربندی پایه و هدفمند اعمال کنید پوشش ها برای نیازهای خاص
این تضمین می کند که تنظیمات شما خشک باقی می مانند (خودت را تکرار نکن) و قابل نگهداری است.
چرا Kustomize؟
مدیریت تغییرات خاص محیط اغلب به تغییراتی مانند موارد زیر نیاز دارد:
تنظیم تعداد ماکت برای بهینه سازی منابع.
تغییر متغیرهای محیطی برای اشکال زدایی یا تولید.
تغییر محدودیت های منابع یا انواع خدمات.
Kustomize این تغییرات را آسان و مقیاس پذیر می کند و در عین حال خطاهای ناشی از به روز رسانی دستی را کاهش می دهد.
مفاهیم کلیدی در Kustomize
پیکربندی پایه:منابع اصلی و قابل استفاده مجدد Kubernetes، قابل استفاده در همه محیط ها (به عنوان مثال، استقرار، سرویس).
پوشش:سفارشیسازیها یا وصلههای خاص محیط (به عنوان مثال، تغییر نسخهها، انواع خدمات).
فایل شخصی سازی (kustomization.yaml):قلب Kustomize که منابع و وصله ها را اعلام می کند.
دست به کار با Kustomize
مرحله 1: پیکربندی پایه را تنظیم کنید
با تعریف منابع مشترک برای همه محیط ها شروع کنید.
ساختار پوشه:
kustomize/
└── base/
├── deployment.yaml
├── service.yaml
└── kustomization.yaml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
deployment.yaml: یک Nginx Deployment را با 2 کپی تعریف می کند.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
– name: nginx
image: nginx:latest
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
service.yaml: یک سرویس برای افشای برنامه Nginx ایجاد می کند.
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
– protocol: TCP
port: 80
targetPort: 80
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
kustomization.yaml: منابع موجود در پیکربندی پایه را فهرست می کند.
resources:
– deployment.yaml
– service.yaml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
پیکربندی پایه را اجرا کنید:
kubectl apply -k base/
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مرحله 2: اضافه کردن پوشش های خاص محیط
در مرحله بعد، همپوشانی های خاص محیط را ایجاد کنید (به عنوان مثال، dev و prod). هر لایه با استفاده از وصله ها، پیکربندی پایه را تغییر می دهد.
ساختار پوشه:
kustomize/
├── base/
└── overlays/
├── dev/
│ ├── kustomization.yaml
│ └── replica-count.yaml
└── prod/
├── kustomization.yaml
└── replica-count.yaml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
replica-count.yaml (پوشش برنامه نویس): کپی ها را برای توسعه کاهش می دهد.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
kustomization.yaml (پوشش برنامه نویس): به پایه اشاره دارد و پچ را اعمال می کند.
resources:
– ../../base
patches:
– replica-count.yaml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
استقرار روکش توسعه دهنده:
kubectl apply -k overlays/dev/
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مرحله 3: تست روکش ها
برای تایید تغییرات:
استقرار را بررسی کنید:
kubectl get deployment nginx -o yaml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توجه داشته باشید که کپی ها به پیکربندی پوشش به روز شده اند.
مقیاسبندی بیشتر یا اعمال وصلههای اضافی (مثلاً محدودیتهای منابع، متغیرهای محیطی).
فراتر رفتن از اصول
در حالی که این راهنما قابلیت های اصلی Kustomize را معرفی می کند، می توانید استفاده از آن را در سناریوهای پیچیده تر گسترش دهید:
برای قالب بندی و مدیریت بسته های پیشرفته، Kustomize را با Helm ترکیب کنید.
استفاده کنید ConfigMapGenerator یا SecretGenerator برای ConfigMaps و Secrets پویا.
برای استقرار یکپارچه با خطوط لوله CI/CD ادغام شود.
در Kubernetes، استقرار برنامهها در محیطهای متعدد – مانند توسعه، مرحلهبندی و تولید – اغلب به تغییراتی در پیکربندی نیاز دارد. این تغییرات می تواند منجر به تکرار و نگهداری فایل های YAML شود. وارد کنید سفارشی کردن، ابزاری است که برای ساده کردن این فرآیند با فعال کردن طراحی شده است سفارشی سازی ها بدون تغییر تنظیمات اصلی
Kustomize چیست؟
سفارشی کردن یک ابزار مدیریت پیکربندی بومی Kubernetes است که از a رویکرد اعلامی برای اعمال سفارشی سازی های خاص محیط. به جای کپی کردن فایل های YAML خود برای هر محیط، Kustomize به شما اجازه می دهد تا a را تعریف کنید پیکربندی پایه و هدفمند اعمال کنید پوشش ها برای نیازهای خاص
این تضمین می کند که تنظیمات شما خشک باقی می مانند (خودت را تکرار نکن) و قابل نگهداری است.
چرا Kustomize؟
مدیریت تغییرات خاص محیط اغلب به تغییراتی مانند موارد زیر نیاز دارد:
- تنظیم تعداد ماکت برای بهینه سازی منابع.
- تغییر متغیرهای محیطی برای اشکال زدایی یا تولید.
- تغییر محدودیت های منابع یا انواع خدمات.
Kustomize این تغییرات را آسان و مقیاس پذیر می کند و در عین حال خطاهای ناشی از به روز رسانی دستی را کاهش می دهد.
مفاهیم کلیدی در Kustomize
-
پیکربندی پایه:
منابع اصلی و قابل استفاده مجدد Kubernetes، قابل استفاده در همه محیط ها (به عنوان مثال، استقرار، سرویس).
-
پوشش:
سفارشیسازیها یا وصلههای خاص محیط (به عنوان مثال، تغییر نسخهها، انواع خدمات).
-
فایل شخصی سازی (
kustomization.yaml
):قلب Kustomize که منابع و وصله ها را اعلام می کند.
دست به کار با Kustomize
مرحله 1: پیکربندی پایه را تنظیم کنید
با تعریف منابع مشترک برای همه محیط ها شروع کنید.
ساختار پوشه:
kustomize/
└── base/
├── deployment.yaml
├── service.yaml
└── kustomization.yaml
-
deployment.yaml
: یک Nginx Deployment را با 2 کپی تعریف می کند.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
-
service.yaml
: یک سرویس برای افشای برنامه Nginx ایجاد می کند.
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
-
kustomization.yaml
: منابع موجود در پیکربندی پایه را فهرست می کند.
resources:
- deployment.yaml
- service.yaml
پیکربندی پایه را اجرا کنید:
kubectl apply -k base/
مرحله 2: اضافه کردن پوشش های خاص محیط
در مرحله بعد، همپوشانی های خاص محیط را ایجاد کنید (به عنوان مثال، dev و prod). هر لایه با استفاده از وصله ها، پیکربندی پایه را تغییر می دهد.
ساختار پوشه:
kustomize/
├── base/
└── overlays/
├── dev/
│ ├── kustomization.yaml
│ └── replica-count.yaml
└── prod/
├── kustomization.yaml
└── replica-count.yaml
-
replica-count.yaml
(پوشش برنامه نویس): کپی ها را برای توسعه کاهش می دهد.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
-
kustomization.yaml
(پوشش برنامه نویس): به پایه اشاره دارد و پچ را اعمال می کند.
resources:
- ../../base
patches:
- replica-count.yaml
استقرار روکش توسعه دهنده:
kubectl apply -k overlays/dev/
مرحله 3: تست روکش ها
برای تایید تغییرات:
- استقرار را بررسی کنید:
kubectl get deployment nginx -o yaml
توجه داشته باشید که کپی ها به پیکربندی پوشش به روز شده اند.
- مقیاسبندی بیشتر یا اعمال وصلههای اضافی (مثلاً محدودیتهای منابع، متغیرهای محیطی).
فراتر رفتن از اصول
در حالی که این راهنما قابلیت های اصلی Kustomize را معرفی می کند، می توانید استفاده از آن را در سناریوهای پیچیده تر گسترش دهید:
- برای قالب بندی و مدیریت بسته های پیشرفته، Kustomize را با Helm ترکیب کنید.
- استفاده کنید
ConfigMapGenerator
یاSecretGenerator
برای ConfigMaps و Secrets پویا. - برای استقرار یکپارچه با خطوط لوله CI/CD ادغام شود.