Academy and Foundation unixmens | Your skills, Your future
2.28K subscribers
6.65K photos
1.36K videos
1.23K files
5.97K links
@unixmens_support
@yashar_esm
unixmens@gmail.com
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
DevOps.pdf
6.5 MB
کتاب مرجع دواپس نسخه 0.5 را بصورت آزاد منتشر کردم . تقدیم عزیزان

کتاب مرجع Devops
نویسنده : مهندس یاشار اسمعیل دخت

#devops #book #yashar_esmaildokht #linux #k8s #kubernetes #cloud #team #technology

https://t.me/unixmens
ceph radosgw.pdf
2.4 MB
کتاب radosgw که از سالها پیش نوشته بودم . تقدیم عزیزان


نویسنده : مهندس یاشار اسمعیل دخت

#devops #book #yashar_esmaildokht #linux #k8s #kubernetes #cloud #technology
#ceph #storage #sds #rados #radosgw #s3 #swift
https://t.me/unixmens
sdn in proxmox@unixmens.pdf
1.5 MB
مقاله نحوه پیاده سازی sdn در proxmox تقدیم عزیزان

ا Software-Defined Networking (SDN) رویکردی نوین در مدیریت شبکه‌ها می‌باشد که با جداشدن لایه‌های کنترل و لایه‌های انتقال داده، امکان برنامه‌ریزی و کنترل مرکزی‌تر شبکه‌ها را فراهم می‌کند. در شبکه‌های سنتی، تصمیم‌گیری‌های مربوط به مسیریابی و تنظیمات شبکه بر روی دستگاه‌های سوییچ و مسیریاب انجام می‌شود. اما در SDN، این تصمیم‌گیری‌ها از طریق یک کنترلر نرم‌افزاری مرکزی صورت می‌گیرد.

یکی از موارد مهم در SDN، برنامه‌پذیری بالا است. این به معنای این است که مدیران شبکه می‌توانند از طریق استفاده از رابط‌های برنامه‌نویسی (APIs) تنظیمات و کنترل‌های شبکه را به صورت پویا و با تغییرات سریع انجام دهند. این ویژگی باعث افزایش انعطاف‌پذیری شبکه و سازگاری آن با نیازهای مختلف می‌شود.


#proxmox #linux #kvm #book #yashar_esmaildokht #sdn


https://t.me/unixmens
🙏1
ceph csi.pdf
1 MB
مقاله ای که در مورد ceph csi در مقایسه با rook نوشتم و بصورت آزاد منتشر کردم تقدیم عزیزان
نسخه : ۰٫۱
نویسنده : یاشار اسمعیل دخت
در واقع Ceph CSI (Container Storage Interface) یک درایور ذخیره‌سازی برای Kubernetes است که به کاربران این امکان را می‌دهد تا از قابلیت‌های ذخیره‌سازی توزیع‌شده Ceph در کلاسترهای Kubernetes استفاده کنند. Ceph خود یک سیستم ذخیره‌سازی مقیاس‌پذیر و توزیع‌شده است که به طور خاص برای ارائه خدمات ذخیره‌سازی با عملکرد بالا، مقیاس‌پذیری و قابلیت اطمینان طراحی شده است.

ویژگی‌های Ceph CSI:

1. پشتیبانی از انواع ذخیره‌سازی:

2. مقیاس‌پذیری:

3. مدیریت خودکار:

4. قابلیت اطمینان و تحمل خطا:

5. یکپارچگی با Kubernetes:

در حقیقت ▎Ceph CSI یک گزینه قوی برای سازمان‌هایی است که به دنبال یک راهکار ذخیره‌سازی مقیاس‌پذیر و قابل اعتماد برای کلاسترهای Kubernetes هستند. این ابزار با ارائه امکانات متنوع ذخیره‌سازی و قابلیت اطمینان بالا، می‌تواند نیازهای مختلف بارهای کاری را برآورده کند.

#ceph #sds #k8s #storage #yashar_esmaildokht #book
#csi #kubernetes #rook
https://t.me/unixmens
👍2
challenge.pdf
8.8 MB
استفاده از Kubernetes (کوبرنتیز) در سازمان‌ها، علی‌رغم مزایای فراوان، با چالش‌هایی همراه است که درک آن‌ها و یافتن راهکارهای مناسب می‌تواند برای موفقیت پروژه‌های فناوری اطلاعات حیاتی باشد.​

چالش‌های اصلی Kubernetes در سازمان‌ها

پیچیدگی در مدیریت و استقرار: Kubernetes به دلیل ساختار ماژولار و قابلیت‌های گسترده‌اش، نیازمند دانش فنی عمیق برای پیکربندی و نگهداری است.​

نیاز به منابع بالا: اجرای Kubernetes در محیط‌های با منابع محدود، مانند لبه شبکه یا دستگاه‌های IoT، می‌تواند چالش‌برانگیز باشد.​

امنیت و کنترل دسترسی: مدیریت دسترسی‌ها و اطمینان از امنیت در محیط‌های Kubernetes نیازمند تنظیمات دقیق و نظارت مداوم است.​

نظارت و مشاهده‌پذیری: جمع‌آوری و تحلیل لاگ‌ها و متریک‌ها برای تشخیص مشکلات و بهینه‌سازی عملکرد، به ابزارهای اضافی و تخصص نیاز دارد.


در این مقاله به بررسی چالش های کوبرنتیس و راهکار های آن پرداختیم .


نسخه : ۰٫۱

نویسنده : مهندس یاشار اسمعیل دخت


#kubernetes #linux #yashar_esmaildokht



https://t.me/unixmens
با مفاهیم کوبر آشنا شویم :

در واقع Kubernetes (که به اختصار K8s نیز نامیده می‌شود) یک سیستم متن‌باز برای اتوماسیون استقرار، مقیاس‌گذاری و مدیریت برنامه‌های کانتینری است. این سیستم به شما این امکان را می‌دهد که برنامه‌های خود را در یک محیط توزیع‌شده و مقیاس‌پذیر اجرا کنید. در زیر به اجزای اصلی Kubernetes و توضیحات مربوط به هر یک از آن‌ها می‌پردازیم:
1. Pod

تعریف: Pod کوچک‌ترین واحد اجرایی در Kubernetes است و می‌تواند شامل یک یا چند کانتینر باشد که به اشتراک‌گذاری منابع و شبکه می‌پردازند.
ویژگی‌ها: Pods معمولاً برای اجرای یک سرویس یا یک برنامه خاص طراحی می‌شوند و می‌توانند به صورت موقتی یا دائمی باشند.

2. Service

تعریف: Service یک انتزاع است که به شما این امکان را می‌دهد تا به مجموعه‌ای از Pods که یک کار خاص را انجام می‌دهند، دسترسی پیدا کنید.
ویژگی‌ها: Services می‌توانند به عنوان یک نقطه دسترسی ثابت برای Pods عمل کنند و می‌توانند بار ترافیک را بین Pods توزیع کنند. انواع مختلفی از Services وجود دارد، از جمله ClusterIP، NodePort و LoadBalancer.

3. Deployment

تعریف: Deployment یک منبع Kubernetes است که به شما این امکان را می‌دهد تا به راحتی Pods را مدیریت کنید و استقرارهای جدید را انجام دهید.
ویژگی‌ها: با استفاده از Deployment، می‌توانید تعداد Pods را مقیاس‌گذاری کنید، نسخه‌های جدید را به‌روزرسانی کنید و در صورت بروز خطا، به نسخه‌های قبلی برگردید.

4. ReplicaSet

تعریف: ReplicaSet یک منبع Kubernetes است که تضمین می‌کند که تعداد مشخصی از Pods در هر زمان در حال اجرا باشند.
ویژگی‌ها: ReplicaSet معمولاً به عنوان بخشی از Deployment استفاده می‌شود و به شما این امکان را می‌دهد که تعداد Pods را مقیاس‌گذاری کنید.

5. StatefulSet

تعریف: StatefulSet برای مدیریت برنامه‌های Stateful (با وضعیت) طراحی شده است.
ویژگی‌ها: این نوع منبع به شما این امکان را می‌دهد که Pods را با شناسه‌های ثابت و ذخیره‌سازی پایدار مدیریت کنید.

6. ConfigMap و Secret

ConfigMap:

برای ذخیره‌سازی تنظیمات غیر حساس به کار می‌رود و به Pods اجازه می‌دهد تا به این تنظیمات دسترسی پیدا کنند.
Secret:

برای ذخیره‌سازی اطلاعات حساس مانند رمزهای عبور و کلیدهای API استفاده می‌شود و به صورت رمزگذاری شده در Kubernetes ذخیره می‌شود.

7. Volume

تعریف: Volume یک منبع ذخیره‌سازی است که به Pods اجازه می‌دهد تا داده‌ها را به صورت پایدار ذخیره کنند.
ویژگی‌ها: Volumes می‌توانند از انواع مختلفی از منابع ذخیره‌سازی (مانند NFS، AWS EBS و ...) استفاده کنند.

8. Namespace

تعریف: Namespace یک روش برای تقسیم منابع در یک کلاستر Kubernetes است.
ویژگی‌ها: با استفاده از Namespace، می‌توانید منابع را به صورت منطقی جدا کنید و به تیم‌های مختلف اجازه دهید که به صورت مستقل کار کنند.


#k8s #kubernetes #container
https://t.me/unixmens
👍3
KubeKey and K3s are both tools related to Kubernetes, but they serve different purposes and have different use cases. Here's a comparison of the two:
K3s

What it is: K3s is a lightweight, certified Kubernetes distribution designed for resource-constrained environments and edge computing. It is developed by Rancher Labs.
Key Features:
Lightweight: K3s is designed to be easy to install and run with minimal resource requirements.
Simplified: It removes some non-essential features of Kubernetes to streamline the installation and operation.
Single binary: K3s is packaged as a single binary, making it easy to deploy.
Built-in components: It includes components like a local storage provider and a service load balancer out of the box.
Use Cases: Ideal for IoT devices, edge computing, development environments, and scenarios where a full Kubernetes installation would be too heavy.

KubeKey

What it is: KubeKey is a tool for deploying and managing Kubernetes clusters. It is part of the KubeSphere ecosystem and is designed to simplify the installation and management of Kubernetes.
Key Features:
Multi-cluster management: KubeKey can manage multiple Kubernetes clusters and supports various installation methods.
Flexible: It can deploy different Kubernetes distributions, including K3s and standard Kubernetes.
User-friendly: KubeKey provides a simple command-line interface and configuration files to streamline the deployment process.
Use Cases: Suitable for users who want to deploy and manage Kubernetes clusters easily, whether for development, testing, or production environments.

Summary

K3s is a lightweight Kubernetes distribution, while KubeKey is a deployment tool that can install and manage Kubernetes clusters, including K3s.
If you need a lightweight Kubernetes solution, K3s is the way to go. If you want a tool to help you deploy and manage Kubernetes clusters, KubeKey is a good choice.


#k8s #kubernetes #k3s #kubekey

https://t.me/unixmens
با مفهوم kubecni آشنا شویم :


در واقع kube-cni یا به طور دقیق‌تر Container Network Interface (CNI) در Kubernetes یکی از مهم‌ترین اجزای شبکه‌ای‌ست که اغلب کاربران تازه‌کار از آن غافل می‌مانند. در ادامه با زبان ساده برات توضیح می‌دم:
🔷ا kube-cni یا CNI چیست؟

CNI (Container Network Interface)
یک استاندارد شبکه‌ای است که مشخص می‌کند چگونه کانتینرها در Kubernetes با یکدیگر و با دنیای بیرون ارتباط برقرار کنند.

کلمه kube-cni معمولاً اشاره به:

پلاگین‌های شبکه‌ای CNI مورد استفاده در Kubernetes دارد


🧠 چرا Kubernetes به CNI نیاز دارد؟

برخلاف Docker که به‌صورت پیش‌فرض خودش شبکه می‌سازد، Kubernetes مستقل از یک پیاده‌سازی خاص شبکه است. بنابراین:

Kubernetes از پلاگین CNI برای اتصال پادها به یکدیگر استفاده می‌کند.

خود Kubernetes هیچ شبکه‌ای ارائه نمی‌دهد؛ فقط انتظارات را تعریف می‌کند.

🔌 برخی پلاگین‌های معروف CNI

Calico

سریع، با پشتیبانی از امنیت (network policies)، مناسب برای production

Flannel
ساده و سبک، مناسب برای تست و شروع کار

Cilium
مبتنی بر eBPF، بسیار پیشرفته، مناسب برای امنیت و observability بالا

Weave Net
پیکربندی آسان، با encryption داخلی
Canal ترکیب Calico و Flannel
📦 بسته kube-cni چیست؟

در بعضی توزیع‌ها مثل Ubuntu/Debian:

بسته‌ای به نام kubernetes-cni یا kube-cni نصب می‌شود.

این بسته شامل فایل‌های باینری CNI در مسیر /opt/cni/bin است.

kubelet برای کار با شبکه نیاز دارد که این فایل‌ها در آن مسیر وجود داشته باشند.

#k8s #kubernetes
#ebpf

https://t.me/unixmens
DevOps.pdf
6.5 MB
کتاب مرجع دواپس نسخه 0.5 را بصورت آزاد منتشر کردم . تقدیم عزیزان

کتاب مرجع Devops
نویسنده : مهندس یاشار اسمعیل دخت

#devops #book #yashar_esmaildokht #linux #k8s #kubernetes #cloud #team #technology

https://t.me/unixmens
ceph radosgw.pdf
2.4 MB
کتاب radosgw که از سالها پیش نوشته بودم . تقدیم عزیزان


نویسنده : مهندس یاشار اسمعیل دخت

#devops #book #yashar_esmaildokht #linux #k8s #kubernetes #cloud #technology
#ceph #storage #sds #rados #radosgw #s3 #swift
https://t.me/unixmens
sdn in proxmox@unixmens.pdf
1.5 MB
مقاله نحوه پیاده سازی sdn در proxmox تقدیم عزیزان

ا Software-Defined Networking (SDN) رویکردی نوین در مدیریت شبکه‌ها می‌باشد که با جداشدن لایه‌های کنترل و لایه‌های انتقال داده، امکان برنامه‌ریزی و کنترل مرکزی‌تر شبکه‌ها را فراهم می‌کند. در شبکه‌های سنتی، تصمیم‌گیری‌های مربوط به مسیریابی و تنظیمات شبکه بر روی دستگاه‌های سوییچ و مسیریاب انجام می‌شود. اما در SDN، این تصمیم‌گیری‌ها از طریق یک کنترلر نرم‌افزاری مرکزی صورت می‌گیرد.

یکی از موارد مهم در SDN، برنامه‌پذیری بالا است. این به معنای این است که مدیران شبکه می‌توانند از طریق استفاده از رابط‌های برنامه‌نویسی (APIs) تنظیمات و کنترل‌های شبکه را به صورت پویا و با تغییرات سریع انجام دهند. این ویژگی باعث افزایش انعطاف‌پذیری شبکه و سازگاری آن با نیازهای مختلف می‌شود.


#proxmox #linux #kvm #book #yashar_esmaildokht #sdn


https://t.me/unixmens
🙏1
Forwarded from CISO as a Service
#DiyakoSecureBow
————————————
CISO as a Service (vCISO)

Kubernetes
مدیریت مدرن کانتینرها و استقرار خودکار اپلیکیشن‌ ها
دوره‌ ای تخصصی برای DevOps، معماران سیستم و علاقه‌ مندان به فناوری‌ های Cloud Native
در دنیای امروز که مقیاس‌ پذیری، تحویل سریع و پایداری نرم‌افزارها اولویت اصلی سازمان‌ هاست، یادگیری Kubernetes به عنوان هسته اصلی اکوسیستم Cloud Native یک ضرورت حرفه‌ ای به شمار می‌ آید.
این دوره با تمرکز بر مباحث امنیتی در Kubernetes طراحی شده تا شما را برای چالش‌ های واقعی در زیرساخت‌ های ابری آماده کند.
سرفصل‌ های کلیدی دوره:
-آشنایی با مفاهیم پایه Kubernetes
-نصب و راه‌ اندازی اولیه
-کار با منابع اصلی Kubernetes
-مدیریت پیکربندی (ConfigMaps, Secrets, ...)
-شبکه‌ سازی و انتشار سرویس‌ ها (Service, Ingress)
-ذخیره‌ سازی و مدیریت Volumeها
-نظارت، لاگ‌ گیری و دیباگ
-بروزرسانی، Self-Healing و ریکاوری
-امنیت در معماری Kubernetes (RBAC، NetworkPolicy، Pod Security، Secure Image، Secret Management، Audit Logs)

👥 مخاطبان این دوره:
-مهندسان DevOps و Site Reliability Engineers (SREs)
-توسعه‌ دهندگان نرم‌ افزار که می‌خواهند اپلیکیشن‌ های خود را بهتر مدیریت و امن کنند
-مدیران سیستم و زیرساخت
-معماران فنی و Cloud Architects
-علاقه‌ مندان به Cloud Native و مسیرهای حرفه‌ ای در Microservices و Containerization

🗓 تاریخ شروع: یکشنبه، ۳۰ تیر ۱۴۰۴
🕕 زمان برگزاری: دوشنبه و چهارشنبه‌ ها، ساعت ۱۸:۰۰ تا ۲۱:۰۰
🌐 محل برگزاری: به‌ صورت آنلاین

برای دریافت اطلاعات تکمیلی و ثبت‌ نام با ما در ارتباط باشید.
📞 09194348743
☎️ 02191691692 (1)
✉️ Marketing@diyako.io

-Secure Business Continuity-
2025.06.11
——————————————————
#Cybersecurity #vCISO #Kubernetes #DevOps #DevSecOps #Cloud #Infrastructure #CyberSecurityTraining

https://www.linkedin.com/posts/diyako-secure-bow_diyakosecurebow-cybersecurity-vciso-activity-7338436390898102273-3DKg
3
چرا kubekey بهتر است ؟


در واقع KubeKey یک ابزار منبع باز است که برای نصب و مدیریت کلاسترهای Kubernetes طراحی شده است. این ابزار به کاربران این امکان را می‌دهد که به راحتی کلاسترهای Kubernetes را بر روی زیرساخت‌های مختلف، از جمله Bare Metal، ماشین‌های مجازی و همچنین ارائه‌دهندگان ابری راه‌اندازی کنند.

ویژگی‌های KubeKey:

1. نصب آسان: KubeKey فرآیند نصب Kubernetes را ساده می‌کند و به کاربران این امکان را می‌دهد که با چند دستور ساده، کلاستر خود را راه‌اندازی کنند.

2. پشتیبانی از انواع زیرساخت‌ها: KubeKey می‌تواند بر روی زیرساخت‌های مختلفی مانند Bare Metal، VMware، OpenStack و همچنین ارائه‌دهندگان ابری مانند AWS و GCP نصب شود.

3. پیکربندی سفارشی: کاربران می‌توانند پیکربندی‌های مختلفی را برای کلاستر خود انتخاب کنند و به راحتی آن‌ها را سفارشی‌سازی کنند.

4. مدیریت کلاستر: KubeKey همچنین ابزارهایی برای مدیریت و نگهداری کلاسترهای Kubernetes ارائه می‌دهد، از جمله به‌روزرسانی‌ها و مقیاس‌پذیری.

5. دسترس‌پذیری بالا: این ابزار به کاربران کمک می‌کند تا کلاسترهایی با دسترس‌پذیری بالا راه‌اندازی کنند و از قابلیت‌های مقیاس‌پذیری Kubernetes بهره‌مند شوند.

این ابزار تمام CNI کوبر را پشتیبانی می کنه .
فرض کنید شما قبلا با این ابزار کوبرنتیس خودتان را پیاده سازی نکردید . خوب مشکلی نیست . (برای مثال : شما با rancher استفاده کردید ) . این ابزار پشتیبانی میکنه .
باید بگم Kubekey همان Kuberspary است ، از Kubeadm برای استقرار خوشه ها استفاده می کند.
و Kubekey مبتنی بر Go و ansible هست .بنابراین نیازی به تکیه بر برخی از نرم افزارهای اساسی مانند Python Ansible نیست. همچنین این ساختار باعث می شود سرعت نصب Kubekey سریعتر باشد ، که برای نصب خوشه ای در محیط آفلاین مفید است.

اما ویژگی دیگش : میتونید بصورت air-gap هم نصب کنید .
همچنین Kubekey از افزونه ها برای سفارشی سازی ها هنگام نصب کلاستر ها پشتیبانی می کند.
ویژگی قشنگترش اینه که کنسول تحت وب هم داره .
این ابزار ساختار manifestو artifact داره .


./kk artifact export -m manifest-sample.yaml

در واقع در یک محیط آفلاین ، شما با KK برای ساخت config-sample.yaml استفاده میکنید
در یک محیط آفلاین ، هنگام استفاده از دستورات خوشه ای و ارتقاء خوشه ، image ها به طور پیش فرض به رجیستری خصوصی منتقل می شود. اگر رجیستری خصوصی به اطلاعات احراز هویت نیاز دارد ، می توانید آن را در قسمت .spec.registry.auths در پرونده config-sample.yaml پیکربندی کنیم

نکته بعدی : ریجستری ساختن تو kubekey هم دنیایی هست . میتونید ریجستری بسازید . یا artifact هاش را به ریجستری که دوست دارید ارسال کنید : برای مثال :


./kk init registry -f config-sample.yaml -a kubekey-artifact.tar.gz


برای push :

./kk artifact image push -f config-sample.yaml -a kubekey-artifact.tar.gz





دارم کتابی در موردش مینویسم . وقتی تمام شد . بصورت آزاد منتشر خواهم کرد .


#kubekey #k8s #kubernetes


https://t.me/unixmens
👍31
با مفهوم pod و deployment و تفاوت های آن آشنا شویم :

پاد بخشی از کوبرنتیز است که کانتینرها در آن قرار می‌گیرند. دیپلویمنت نیز به عنوان ابزاری برای مشخص‌کردن نحوه عملکرد پاد شناخته می‌شود.

در کوبرنتیز، پاد به یک کانتینر تنها یا مجموعه‌ای از کانتینرهای مرتبط به هم گفته می‌شود که منابع ذخیره‌سازی اپلیکیشن و شبکه‌های مربوط به آن را به اشتراک می‌گذارند. پاد به عنوان کوچک‌ترین و جزئی‌ترین عضو کلاستر در سرویس کوبرنتیز شناخته می‌شود

یک توسعه‌دهنده یا مدیر پروژه یا دواپس مجموعه‌ای از پادهای لازم برای اجرای یک اپلیکیشن را در کوبرنیتز طراحی می‌کند. سرویس کوبرنتیز نیز به واسطه توانایی در مدیریت داده‌ها می‌تواند این اطلاعات گوناگون در پادهای مختلف را مدیریت کند
دیپلویمنت در سرویس کوبرنتیز رفتار یا ویژگی‌های مدنظر درباره یک کانتینر را مشخص می‌کند. مدیران پروژه‌های مختلف از دیپلویمنت برای شخصی‌سازی و تخصصی‌کردن رفتار هر پاد در پروژه خود استفاده می‌کنند. در واقع ویژگی هایی که در deployment هست . در pod نیست !!!

در زیر به برخی از ویژگی‌ها و قابلیت‌هایی که Deployment دارد و Pod ندارد، اشاره میکنم :
1. مدیریت نسخه‌ها (Versioning)

ا Deployment: امکان مدیریت نسخه‌های مختلف یک برنامه را فراهم می‌کند. شما می‌توانید به راحتی نسخه‌های جدید را مستقر کنید و در صورت نیاز به نسخه‌های قبلی برگردید.
ا Pod: فقط یک نمونه از یک کانتینر را اجرا می‌کند و هیچ قابلیت مدیریت نسخه ندارد.

2. تدریجی بودن استقرار (Rolling Updates)

ا Deployment: به شما این امکان را می‌دهد که به‌روزرسانی‌ها را به صورت تدریجی انجام دهید، به طوری که تعداد مشخصی از پادها به‌روزرسانی شوند و در صورت بروز مشکل، به حالت قبلی برگردند.
ا Pod: به‌روزرسانی‌ها را به صورت دستی و بدون کنترل بر روی تعداد پادهای در حال اجرا انجام می‌دهد.

3. خودکارسازی (Self-healing)

ا Deployment: در صورت بروز خطا در یکی از پادها، به طور خودکار آن را جایگزین می‌کند و اطمینان حاصل می‌کند که تعداد مشخصی از پادها همیشه در حال اجرا هستند.
ا Pod: خود به خود نمی‌تواند پادهای معیوب را جایگزین کند و نیاز به مدیریت دستی دارد.

4. مقیاس‌پذیری (Scaling)

ا Deployment: می‌توانید به راحتی تعداد پادها را افزایش یا کاهش دهید و این تغییرات به طور خودکار در کلاستر اعمال می‌شود.
ا Pod: برای مقیاس‌پذیری، باید پادهای جدید را به صورت دستی ایجاد کنید.

5. مدیریت وضعیت (State Management)

ا Deployment: وضعیت فعلی و مورد انتظار پادها را پیگیری می‌کند و در صورت نیاز به طور خودکار به وضعیت مطلوب برمی‌گردد.
ا Pod: فقط وضعیت خود را نشان می‌دهد و هیچ قابلیت مدیریت وضعیت ندارد.

6. استفاده از الگوها (Templates)

ا Deployment: از الگوهای (templates) برای تعریف نحوه ایجاد پادها استفاده می‌کند، که شامل تنظیمات کانتینر، برچسب‌ها و سایر ویژگی‌ها است.
ا Pod: فقط یک نمونه از یک کانتینر را تعریف می‌کند و هیچ الگوی خاصی ندارد.


خب شیرین بود ؟؟؟؟


خب حالا ما فرضا یه pod داریم . آیا میتونیم تبدیلش کنیم به deployments ؟؟؟؟


باید گفت : بلی


مراحل تبدیل Pod به Deployment

دریافت تنظیمات Pod:
ابتدا باید تنظیمات Pod فعلی خود را دریافت کنید. می‌توانید از دستور زیر استفاده کنید:




kubectl get pod <pod-name> -o yaml > pod.yaml


این دستور تنظیمات Pod را در یک فایل به نام pod.yaml ذخیره می‌کند.

فایل pod.yaml را باز کنید و تغییرات اعمال کنید:

تغییر نوع منبع: در بالای فایل، kind: Pod را به kind: Deployment تغییر دهید.
اضافه کردن metadata: یک بخش spec جدید اضافه کنید که شامل تعداد تکرارها (replicas) و الگوی (template) Pod باشد.
تنظیمات selector: یک بخش selector اضافه کنید که برچسب‌های Pod را مشخص کند.

به عنوان مثال، فایل شما ممکن است به شکل زیر باشد:



apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
...


در ادامه


kubectl apply -f deployment.yaml



نکته : اگر دیگر به Pod قدیمی نیاز ندارید، می‌توانید آن را حذف کنید




kubectl delete pod <pod-name>



نکات :

تعداد تکرارها: در بخش replicas می‌توانید تعداد پادهایی که می‌خواهید در حال اجرا باشند را مشخص کنید.
برچسب‌ها: اطمینان حاصل کنید که برچسب‌ها در بخش selector و template یکسان باشند تا Deployment بتواند پادها را به درستی مدیریت کند.

با این مراحل، شما می‌توانید یک Pod را به یک Deployment تبدیل کنید و از قابلیت‌های بیشتر Deployment در کوبرنتیز بهره‌مند شوید.
#kubernetes #k8s #tips

https://t.me/unixmens
👍3
KubeVirt is an innovative tool designed to manage the lifecycle and scheduling of Virtual Machines (VMs) within Kubernetes clusters. It aims to bridge the gap between traditional virtualization and modern container orchestration, allowing for a hybrid environment where both VMs and containers can coexist. Here’s a detailed overview of KubeVirt, its comparisons with other projects, and its use cases.
Overview of KubeVirt
KubeVirt extends Kubernetes by enabling it to manage VMs alongside containerized applications. This integration allows organizations to leverage Kubernetes' orchestration capabilities for both types of workloads, providing a unified platform for managing resources in a datacenter or cloud environment.
KubeVirt vs. Other Projects
Kubernetes:
Kubernetes is primarily focused on automating the deployment and management of containerized applications.
KubeVirt acts as an add-on to Kubernetes, enabling it to manage VMs, thus enhancing Kubernetes' capabilities.
OpenStack:
OpenStack is a comprehensive IaaS platform that includes various components for compute, networking, and storage.
KubeVirt is a single component that specializes in VM scheduling and lifecycle management, relying on other systems for networking and storage.
Nova:
Nova is the VM scheduling component of OpenStack, supporting multiple virtualization technologies.
KubeVirt focuses specifically on KVM managed by Libvirt, allowing for a more streamlined and efficient management of VMs.
oVirt:
oVirt is a virtualization management platform that emphasizes high availability and infrastructure-level guarantees.
KubeVirt aims to provide similar consistency guarantees while also offering the scalability needed for cloud environments.
Libvirt:
Libvirt is a toolkit for managing VMs on a local node, providing lifecycle management and network/storage interface management.
KubeVirt utilizes Libvirt for managing KVM VMs, leveraging its existing capabilities rather than reinventing the wheel.
AWS EC2 and Google GCE:
Both EC2 and GCE are proprietary cloud services that lock users into specific pricing models and infrastructures.
KubeVirt is an open-source project that focuses solely on VM scheduling, providing flexibility and independence from specific cloud providers.
Use Cases
KubeVirt is designed to address several key use cases:
Cloud Virtualization:
It provides a feature set for managing VM scale-out, similar to the abstractions offered by cloud IaaS APIs.
Datacenter Virtualization:
KubeVirt aims to deliver strong infrastructure consistency guarantees, making it suitable for managing large numbers of VMs.
Kubernetes Trusted Workloads:
It allows for the execution of virtualized workloads that require the security guarantees provided by a hypervisor.
Combining Container and Virtualized Workloads:
KubeVirt enables the scheduling of both containerized and virtualized workloads on the same Kubernetes cluster, facilitating a more integrated approach to resource management.
Conclusion
KubeVirt is positioned as a powerful tool for organizations looking to manage VMs within a Kubernetes environment. By focusing on KVM and leveraging existing technologies like Libvirt, KubeVirt aims to provide a robust solution for both cloud and datacenter virtualization, while also supporting the coexistence of containerized applications. Its open-source nature and flexibility make it an attractive option for IaaS providers and enterprises alike.


#ovirt #kubevirt #linux #k8s #kubernetes #lcm #virtualization


https://t.me/unixmens
KubeVirt is an innovative tool designed to manage the lifecycle and scheduling of Virtual Machines (VMs) within Kubernetes clusters. It aims to bridge the gap between traditional virtualization and modern container orchestration, allowing for a hybrid environment where both VMs and containers can coexist. Here’s a detailed overview of KubeVirt, its comparisons with other projects, and its use cases.
Overview of KubeVirt
KubeVirt extends Kubernetes by enabling it to manage VMs alongside containerized applications. This integration allows organizations to leverage Kubernetes' orchestration capabilities for both types of workloads, providing a unified platform for managing resources in a datacenter or cloud environment.
KubeVirt vs. Other Projects
Kubernetes:
Kubernetes is primarily focused on automating the deployment and management of containerized applications.
KubeVirt acts as an add-on to Kubernetes, enabling it to manage VMs, thus enhancing Kubernetes' capabilities.
OpenStack:
OpenStack is a comprehensive IaaS platform that includes various components for compute, networking, and storage.
KubeVirt is a single component that specializes in VM scheduling and lifecycle management, relying on other systems for networking and storage.
Nova:
Nova is the VM scheduling component of OpenStack, supporting multiple virtualization technologies.
KubeVirt focuses specifically on KVM managed by Libvirt, allowing for a more streamlined and efficient management of VMs.
oVirt:
oVirt is a virtualization management platform that emphasizes high availability and infrastructure-level guarantees.
KubeVirt aims to provide similar consistency guarantees while also offering the scalability needed for cloud environments.
Libvirt:
Libvirt is a toolkit for managing VMs on a local node, providing lifecycle management and network/storage interface management.
KubeVirt utilizes Libvirt for managing KVM VMs, leveraging its existing capabilities rather than reinventing the wheel.
AWS EC2 and Google GCE:
Both EC2 and GCE are proprietary cloud services that lock users into specific pricing models and infrastructures.
KubeVirt is an open-source project that focuses solely on VM scheduling, providing flexibility and independence from specific cloud providers.
Use Cases
KubeVirt is designed to address several key use cases:
Cloud Virtualization:
It provides a feature set for managing VM scale-out, similar to the abstractions offered by cloud IaaS APIs.
Datacenter Virtualization:
KubeVirt aims to deliver strong infrastructure consistency guarantees, making it suitable for managing large numbers of VMs.
Kubernetes Trusted Workloads:
It allows for the execution of virtualized workloads that require the security guarantees provided by a hypervisor.
Combining Container and Virtualized Workloads:
KubeVirt enables the scheduling of both containerized and virtualized workloads on the same Kubernetes cluster, facilitating a more integrated approach to resource management.
Conclusion
KubeVirt is positioned as a powerful tool for organizations looking to manage VMs within a Kubernetes environment. By focusing on KVM and leveraging existing technologies like Libvirt, KubeVirt aims to provide a robust solution for both cloud and datacenter virtualization, while also supporting the coexistence of containerized applications. Its open-source nature and flexibility make it an attractive option for IaaS providers and enterprises alike.


#kubevirt #linux #k8s #kubernetes #vm #virtualization

https://t.me/unixmens
DevOps.pdf
6.5 MB
کتاب مرجع دواپس نسخه 0.5 را بصورت آزاد منتشر کردم . تقدیم عزیزان

کتاب مرجع Devops
نویسنده : مهندس یاشار اسمعیل دخت

#devops #book #yashar_esmaildokht #linux #k8s #kubernetes #cloud #team #technology

https://t.me/unixmens