DevOps Expert
✔️نکته مهم Logging در Kubernetes 🔶 در Kubernetes، لاگهایی که در standard output پادها قابل مشاهده هستند به ۲ صورت: ۱. روزانه ۲.زمانی که حجم فایل لاگ به ۱۰ مگابایت میرسد پاک میشوند. برای اینکه لاگ کانتینرها و پادها در کوبرنتیز رو از دست ندید به فکر…
DevOps Expert
To make a pod’s logs available even after the pod is deleted, you need to set up centralized, cluster-wide logging, which stores all the logs into a central store. #کوبرنتیز #Kubernetes #k8s #k3s #نکته #logging #log #pod 〰️〰️〰️〰️〰️〰️ © @DevOpsEx
✔️ نحوه کارکرد Replication Controll در Kubernetes
ریسورس Replication Controller در کوبرنتیز ابزاری قدرتمند برای مدیریت پادها روی نودهای مختلف است. برای مثال اگر یک نود از کلاستر از بین برود، RC پادهای جدید را روی نودهای جدید مستقر خواهد کرد.
در این شکل نحوه کارکرد RC در کوبرنتیز را مشاهده میکنیم.
#کوبرنتیز #Kubernetes #k8s #k3s #نکته #logging #log #pod #RC #ReplicationController
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
ریسورس Replication Controller در کوبرنتیز ابزاری قدرتمند برای مدیریت پادها روی نودهای مختلف است. برای مثال اگر یک نود از کلاستر از بین برود، RC پادهای جدید را روی نودهای جدید مستقر خواهد کرد.
در این شکل نحوه کارکرد RC در کوبرنتیز را مشاهده میکنیم.
#کوبرنتیز #Kubernetes #k8s #k3s #نکته #logging #log #pod #RC #ReplicationController
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
[ Universal Repository Manager ]
📌یکی از مهم ترین ابزار ها تو بحث اتوماسیون و CI/CD ابزاری برای مدیریت مخازن و میرور رجیستری های مختلف است. از جمله این مخازن، مخازن مربوط به توزیع های مختلف لینوکسی یا مخازن پکیج منیجر های مختلف مثل rpm یا ایمیج های داکر و یا ... است.
برای انجام این کار یکی از بهترین ابزار هایی که میتوان به آن اشاره کرد ابزار Artifactory از شرکت JFrog است.
◼️استفاده از ابزار های مدیریت مخازن یکی از بهترین روشها برای استفاده از هرگونه ابزار ساختی مثل maven و Gradle یا Ant نیز میباشد.
◼️با Artifactory میتوانید به راحتی باینری های خود را مدیریت کنید و به محیط CI خود وصل شوید درحالی که با Git میتوانید سورس کد باینری های خود را مدیریت کنید.
Links:
✅https://medium.com/@foxutech/what-is-jfrog-artifactory-its-component-and-features-d0dbe85482ff
Installation:
1️⃣https://computingforgeeks.com/how-to-install-jfrog-artifactory-on-centos/
2️⃣https://www.centlinux.com/2019/01/install-jfrog-artifactory
#ci #docker #devops #jfrog #repository #build #package
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
📌یکی از مهم ترین ابزار ها تو بحث اتوماسیون و CI/CD ابزاری برای مدیریت مخازن و میرور رجیستری های مختلف است. از جمله این مخازن، مخازن مربوط به توزیع های مختلف لینوکسی یا مخازن پکیج منیجر های مختلف مثل rpm یا ایمیج های داکر و یا ... است.
برای انجام این کار یکی از بهترین ابزار هایی که میتوان به آن اشاره کرد ابزار Artifactory از شرکت JFrog است.
◼️استفاده از ابزار های مدیریت مخازن یکی از بهترین روشها برای استفاده از هرگونه ابزار ساختی مثل maven و Gradle یا Ant نیز میباشد.
◼️با Artifactory میتوانید به راحتی باینری های خود را مدیریت کنید و به محیط CI خود وصل شوید درحالی که با Git میتوانید سورس کد باینری های خود را مدیریت کنید.
Links:
✅https://medium.com/@foxutech/what-is-jfrog-artifactory-its-component-and-features-d0dbe85482ff
Installation:
1️⃣https://computingforgeeks.com/how-to-install-jfrog-artifactory-on-centos/
2️⃣https://www.centlinux.com/2019/01/install-jfrog-artifactory
#ci #docker #devops #jfrog #repository #build #package
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ فواید DevOps بودن چیست؟!
➕ دواپس از ترکیب دو واژه Development بهمعنای «توسعه نرمافزار» و OperationS بهمعنای «عملیات فناوری اطلاعات» تشکیل شده است. دواپس یک فرآیند تولید نرمافزار است که بر ارتباط و همکاری هرچه بیشتر تیمهای توسعه نرمافزار با تیمهای اجرایی تمرکز و تأکید دارد.
+ ادامه مطلب این مقاله را از اینجا بخوانید +
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
➕ دواپس از ترکیب دو واژه Development بهمعنای «توسعه نرمافزار» و OperationS بهمعنای «عملیات فناوری اطلاعات» تشکیل شده است. دواپس یک فرآیند تولید نرمافزار است که بر ارتباط و همکاری هرچه بیشتر تیمهای توسعه نرمافزار با تیمهای اجرایی تمرکز و تأکید دارد.
+ ادامه مطلب این مقاله را از اینجا بخوانید +
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
خب به درخواست دوستان عزیز RoadMap مربوط به DevOps گذاشته شد و همینطور در سایت زیر نقشه راه فیلد های دیگر نیز بصورت کامل قرار داشته و هر روز آبدیت میشود ...
امیدوارم مفید باشه برای دوستان پیروز باشید🌹
Link:
https://roadmap.sh/
#roadmap #devops
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
امیدوارم مفید باشه برای دوستان پیروز باشید🌹
Link:
https://roadmap.sh/
#roadmap #devops
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
راه اندازی پروژه جنگو با دیتابیس Postgresql بر بستر داکر
بهترین راه برای ادامه توسعه پروژه جنگو اینه که حتما یک dockerfile و docker-compose در دایرکتوری قرار بدین. در پست زیر تمام کار ها بصورت دستی انجام شده که خیلی توصیه نمیشه اما برای آشنایی با مفاهیم داکرایز کردن در جنگو و اینکه دقیقا چه اتفاقی در کانتینر میوفته میتونه گزینه خوبی باشه.
https://quberty.pythonanywhere.com/authors/@lnxpy/Local%20Django%20Project%20with%20Postgres%20Docker%20Container/
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
بهترین راه برای ادامه توسعه پروژه جنگو اینه که حتما یک dockerfile و docker-compose در دایرکتوری قرار بدین. در پست زیر تمام کار ها بصورت دستی انجام شده که خیلی توصیه نمیشه اما برای آشنایی با مفاهیم داکرایز کردن در جنگو و اینکه دقیقا چه اتفاقی در کانتینر میوفته میتونه گزینه خوبی باشه.
https://quberty.pythonanywhere.com/authors/@lnxpy/Local%20Django%20Project%20with%20Postgres%20Docker%20Container/
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1
در کوبرنتیز هنگام عملیات Port Forwarding برای Expose کردن Service ها باید نام انتخاب کنیم. (در داکر اینطور نیست)
جالب است که بدانیم در هنگام عملیات Port Forwarding در کوبرنتیز، میتوانیم نامهای اختصاصی برای Port پادهای کوبرنتیز انتخاب کنیم و سرویس کوبرنتیز را به پورتهایی بر اساس نام (نه پورت نامبر) به پادها متصل کنیم و فایل yaml تر و تمیزتری داشته باشیم. :)
در تصویر، پورت ۸۰ سرویس کوبرنتیز درخواستها را به پورت http کانتینر forward میکند و پورت ۴۴۳ سرویس به پورت https کانتینر.
#کوبرنتیز #Kubernetes #k8s #k3s #نکته #pod #services
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
جالب است که بدانیم در هنگام عملیات Port Forwarding در کوبرنتیز، میتوانیم نامهای اختصاصی برای Port پادهای کوبرنتیز انتخاب کنیم و سرویس کوبرنتیز را به پورتهایی بر اساس نام (نه پورت نامبر) به پادها متصل کنیم و فایل yaml تر و تمیزتری داشته باشیم. :)
در تصویر، پورت ۸۰ سرویس کوبرنتیز درخواستها را به پورت http کانتینر forward میکند و پورت ۴۴۳ سرویس به پورت https کانتینر.
#کوبرنتیز #Kubernetes #k8s #k3s #نکته #pod #services
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
DevOps Expert
در کوبرنتیز هنگام عملیات Port Forwarding برای Expose کردن Service ها باید نام انتخاب کنیم. (در داکر اینطور نیست) جالب است که بدانیم در هنگام عملیات Port Forwarding در کوبرنتیز، میتوانیم نامهای اختصاصی برای Port پادهای کوبرنتیز انتخاب کنیم و سرویس کوبرنتیز…
ممکنه از خودتون بپرسین کدوم آدم عاقلی پورتهارو اسم گذاری میکنه وقتی همه جاها از port number استفاده میشه؟ :)
سناریو: ممکنه شما هزاران پاد کوبرنتیز داشته باشید که روی پورت ۸۰ سرویس دهی میکنند، پادها دچار تغییراتی میشوند و سرویس جدیدی روی پورت ۸۰۸۰ اجرا میشود و سرویس قبلی روی پورت ۸۰ از کار میافتد، حالا اگر از نام گذاری پورتها استفاده کرده باشید در لایه انتزاع pod های کوبرنتیز لازم هست pod spec را تغییر بدید، اما اگر از روش نام گذاری پورتها استفاده نکرده باشید مجبور هستید علاوه بر آن service spec های کوبرنتیز را نیز برای این تطابق با این تغییر، تغییر دهید.
حذف تغییرات غیرضروری = زندگی راحتتر :)
#کوبرنتیز #Kubernetes #k8s #k3s #نکته #pod #services
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
سناریو: ممکنه شما هزاران پاد کوبرنتیز داشته باشید که روی پورت ۸۰ سرویس دهی میکنند، پادها دچار تغییراتی میشوند و سرویس جدیدی روی پورت ۸۰۸۰ اجرا میشود و سرویس قبلی روی پورت ۸۰ از کار میافتد، حالا اگر از نام گذاری پورتها استفاده کرده باشید در لایه انتزاع pod های کوبرنتیز لازم هست pod spec را تغییر بدید، اما اگر از روش نام گذاری پورتها استفاده نکرده باشید مجبور هستید علاوه بر آن service spec های کوبرنتیز را نیز برای این تطابق با این تغییر، تغییر دهید.
حذف تغییرات غیرضروری = زندگی راحتتر :)
#کوبرنتیز #Kubernetes #k8s #k3s #نکته #pod #services
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
شیوه اکسپورت کردن کانتینر های داکر از docker.io به quay.io.
با این ترفند میشه کانتینر ها رو روی Cloud Provider ها هم اکسپوز کرد و دسترسی ها رو حسابی ایمن کرد.
https://www.redhat.com/sysadmin/moving-openstack-containers
#داکر #docker
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
با این ترفند میشه کانتینر ها رو روی Cloud Provider ها هم اکسپوز کرد و دسترسی ها رو حسابی ایمن کرد.
https://www.redhat.com/sysadmin/moving-openstack-containers
#داکر #docker
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
Enable Sysadmin
Moving containers from docker.io to quay.io
Learn more with this short example on how to move container images from the docker.io registry to quay.io.
مراحل دیپلوی و سرو داکر کانتینر به روی Azure، همچنین استفاده از Github Actions برای تست و دیپلوی.
https://dockr.ly/34D6Wvn
#docker #Azure #cloud #github #گیت_هاب #داکر
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
https://dockr.ly/34D6Wvn
#docker #Azure #cloud #github #گیت_هاب #داکر
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
Docker Blog
Setting Up Cloud Deployments Using Docker, Azure and Github Actions
A few weeks ago I shared a blog about how to use GitHub Actions with Docker, prior to that Guillaume has also shared his blog post on using Docker and ACI. I thought I would bring these two together to look at a single flow to go from your code in GitHub…
Kubernetes Learning Path | Version 2.0.pdf
2.6 MB
مسیر یادگیری کوبرنتیز از دید مایکروسافت.
در عرض 50 روز، مباحث مهم و بیسیک کوبرنیتز رو با استفاده از کورس های مایکروسافت یاد بگیرید!
اطلاعات بیشتر در ریپازیتوری زیر:
https://github.com/microsoft/kubernetes-learning-path
#kubernetes #docker #Microsoft #github #گیت_هاب #داکر #کوبرنتیز
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
در عرض 50 روز، مباحث مهم و بیسیک کوبرنیتز رو با استفاده از کورس های مایکروسافت یاد بگیرید!
اطلاعات بیشتر در ریپازیتوری زیر:
https://github.com/microsoft/kubernetes-learning-path
#kubernetes #docker #Microsoft #github #گیت_هاب #داکر #کوبرنتیز
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
راه اندازی گیتلب شخصی با استفاده از داکر. در این پست از تعریف مفاهیم پایه ای تا راه اندازی، توضیحاتی مختصر داده شده است.
دوستانی که به تازگی این تخصص رو شروع کردن این مقاله رو حتما بخونن.
پست از احمد رفیعی.
https://vrgl.ir/xTvW7
#docker #gitlab #virgool #داکر #گیت_لب #ویرگول
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
دوستانی که به تازگی این تخصص رو شروع کردن این مقاله رو حتما بخونن.
پست از احمد رفیعی.
https://vrgl.ir/xTvW7
#docker #gitlab #virgool #داکر #گیت_لب #ویرگول
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
ویرگول
راهاندازی گیتلب با استفاده از داکر و استفاده از آن
در این پست در مورد نحوهی راهاندازی گیتلب با استفاده از داکر صحبت شده است و در ادامهی یک پروژه و gitlab-ci برای آن آماده میکنیم.
تفاوت Unit Test و Integration Test و Function Test
در Unit Test، بخش هایی از کد که بصورت مستقل کاری انجام میدن تست میشه. برای مثال میتوان به توابع یا ماژول هایی اشاره کرد که فقط یک اپریشن کوچک انجام میدن تا یک دیتای استاتیک رو برگردونن و هیچ وابستگی به ماژول ها یا اسکریپت های دیگه ندارن.
در Integration Test، تست ها بصورت کلی تر و جامع تر انجام میشه. تست ها بشکلی انجام میشن که عملکرد چندین تابع که با هم در تعامل هستن مورد بررسی قرار میگیره.
در Function Test عملکرد پروژه مورد بررسی قرار میگیره. نمیشه گفت با مفهوم توابعی که در برنامه نویسی داریم یکی هست اما بیشتر معنی اون مهمه. در این تست، تعدادی تسک آماده میکنید و سیستم خودش رو به عنوان یوزر قرار میده و اون تسک ها رو انجام میده. میدونم یکم گیج شدین. به مثال زیر دقت کنین. 😅
فرض کنید یک محصول ساختید مثل تبلت. در Unit Test شما تست میکنید آیا دوربین به خوبی کار میکنه؟ آیا ماژول صدا اوکی هست؟ هر کدوم از این تست ها در واحد های مختلف نوشته و انجام میشن.
در بخش Integration Test، تست میکنید آیا در موقع ضبط ویدئو، دوربین و میکروفن با هم به خوبی کار میکنن؟ آیا سیم کارت با درایور شبکه تبلت به خوبی در ارتباط هستن؟ آیا الکتریسیته از باتری به خوبی به ماژول های سخت افزاری میرسه؟
در Function Test هم یک سری تسک ها برای سیستم در نظر میگیرم تا اونا رو انجام بده و اگر به مشکلی خورد سریع سرویس رو اصلاح کنیم. مثلا تست میکنیم آیا سلامتی باتری و سیم کارت به خطر میوفته؟ آیا وقتی ضبط صدا تمام شد، فایل به خوبی در دایرکتوری خودش سیو میشه؟
خلاصه: در یونیت تست، ما اجزای برنامه رو بصورت تکی تست میکنیم اما در Integration Test میایم ارتباط اون اجزا و functionality رو در مقایس بزرگتر مورد بررسی قرار میدیم. در فانکشن تست هم تنها تسک هایی رو میسازیم تا بصورت کلی، عملکرد محصول رو بسنجیم.
امیدورام مفید واقع شده باشه. به زودی در وبلاگم مثال های عملی و ملموس تری از انواع تست ها قرار میدم و همینجا واستون به اشتراک میذارم. ❤️👌
#testing #function_test #integration_test #unit_test #تست
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
در Unit Test، بخش هایی از کد که بصورت مستقل کاری انجام میدن تست میشه. برای مثال میتوان به توابع یا ماژول هایی اشاره کرد که فقط یک اپریشن کوچک انجام میدن تا یک دیتای استاتیک رو برگردونن و هیچ وابستگی به ماژول ها یا اسکریپت های دیگه ندارن.
در Integration Test، تست ها بصورت کلی تر و جامع تر انجام میشه. تست ها بشکلی انجام میشن که عملکرد چندین تابع که با هم در تعامل هستن مورد بررسی قرار میگیره.
در Function Test عملکرد پروژه مورد بررسی قرار میگیره. نمیشه گفت با مفهوم توابعی که در برنامه نویسی داریم یکی هست اما بیشتر معنی اون مهمه. در این تست، تعدادی تسک آماده میکنید و سیستم خودش رو به عنوان یوزر قرار میده و اون تسک ها رو انجام میده. میدونم یکم گیج شدین. به مثال زیر دقت کنین. 😅
فرض کنید یک محصول ساختید مثل تبلت. در Unit Test شما تست میکنید آیا دوربین به خوبی کار میکنه؟ آیا ماژول صدا اوکی هست؟ هر کدوم از این تست ها در واحد های مختلف نوشته و انجام میشن.
در بخش Integration Test، تست میکنید آیا در موقع ضبط ویدئو، دوربین و میکروفن با هم به خوبی کار میکنن؟ آیا سیم کارت با درایور شبکه تبلت به خوبی در ارتباط هستن؟ آیا الکتریسیته از باتری به خوبی به ماژول های سخت افزاری میرسه؟
در Function Test هم یک سری تسک ها برای سیستم در نظر میگیرم تا اونا رو انجام بده و اگر به مشکلی خورد سریع سرویس رو اصلاح کنیم. مثلا تست میکنیم آیا سلامتی باتری و سیم کارت به خطر میوفته؟ آیا وقتی ضبط صدا تمام شد، فایل به خوبی در دایرکتوری خودش سیو میشه؟
خلاصه: در یونیت تست، ما اجزای برنامه رو بصورت تکی تست میکنیم اما در Integration Test میایم ارتباط اون اجزا و functionality رو در مقایس بزرگتر مورد بررسی قرار میدیم. در فانکشن تست هم تنها تسک هایی رو میسازیم تا بصورت کلی، عملکرد محصول رو بسنجیم.
امیدورام مفید واقع شده باشه. به زودی در وبلاگم مثال های عملی و ملموس تری از انواع تست ها قرار میدم و همینجا واستون به اشتراک میذارم. ❤️👌
#testing #function_test #integration_test #unit_test #تست
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
An Angry Docker Whale Whos Attacking The Iptables
داشتم مقالهای رو مطالعه میکردم از اینکه چرا داکر با فایروال به خوبی کنار نمیاد برام جالب بود چون آخر مقاله یک لینک از داکیومنت اصلی داکر قرار داد و گفت که تمام مشکلات از چه چیزی هست و روش درست کردنش هم گفته جمله هم این بود
"Prevent Docker From Manipulating IPtables"
حتما مطالعه کنید:
✅Link1: https://medium.com/@erfansahaf/why-docker-and-firewall-dont-get-along-with-each-other-ddca7a002e10
2️⃣Link2: https://docs.docker.com/network/iptables/
#container #docker #firewall #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
داشتم مقالهای رو مطالعه میکردم از اینکه چرا داکر با فایروال به خوبی کنار نمیاد برام جالب بود چون آخر مقاله یک لینک از داکیومنت اصلی داکر قرار داد و گفت که تمام مشکلات از چه چیزی هست و روش درست کردنش هم گفته جمله هم این بود
"Prevent Docker From Manipulating IPtables"
حتما مطالعه کنید:
✅Link1: https://medium.com/@erfansahaf/why-docker-and-firewall-dont-get-along-with-each-other-ddca7a002e10
2️⃣Link2: https://docs.docker.com/network/iptables/
#container #docker #firewall #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
برای نوشتن داکرفایل، شما باید هر ایمیج رو به روی یک بیس ایمیج پیاده کنید. اگر دقت کرده باشین اکثر ایمیج ها، از ایمیج اسکرچ (scratch) بعنوان base image استفاده میکنن.
این ایمیج دقیقا چیه؟ محتوای ایمیج چیه؟
این ایمیج کوچک ترین، سبک ترین و مینیمال ترین ایمیجی هست که در داکرهاب وجود داره و هیچ محتوایی درش قرار نداره. درست مثل ایمیج هایی که اکثرا به عنوان بیس استفاده میشن، این ایمیج هم بیس ایمیج اکثر ایمیج های اصلی هست. بعنوان مثال ایمیج Debian از بیس ایمیج اسکرچ استفاده میکنه.
وقتی شما در داکرفایلتون مینویسید
پس اگر داکرفایلی داشته باشین که 3 خط باشه در اصل دو لایه هست. به همین دلیله که شما نمیتونید این ایمیج رو از داکرهاب پول کنید و یا ازش کانتینری بسازید.
به مثال های زیر دقت کنید. یک ایمیج خیلی ساده ساختیم با بیس ایمیج اسکرچ. (3 خط، 2 لایه)
این هم یک ایمیج بر پایه پایتون. (3 خط، 3 لایه)
#docker #scratch #python #داکر #اسکرچ #پایتون
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
این ایمیج دقیقا چیه؟ محتوای ایمیج چیه؟
این ایمیج کوچک ترین، سبک ترین و مینیمال ترین ایمیجی هست که در داکرهاب وجود داره و هیچ محتوایی درش قرار نداره. درست مثل ایمیج هایی که اکثرا به عنوان بیس استفاده میشن، این ایمیج هم بیس ایمیج اکثر ایمیج های اصلی هست. بعنوان مثال ایمیج Debian از بیس ایمیج اسکرچ استفاده میکنه.
وقتی شما در داکرفایلتون مینویسید
From scratch
درواقع داکر این خط رو یک لایه در نظر نمیگیره، بلکه بعنوان اولین پوینت در نوشتن ایمیجتون از 0 در نظر میگیره و دومین کامندی که در داکرفایل نوشتین درواقع اولین لایه ایمیج شماست.پس اگر داکرفایلی داشته باشین که 3 خط باشه در اصل دو لایه هست. به همین دلیله که شما نمیتونید این ایمیج رو از داکرهاب پول کنید و یا ازش کانتینری بسازید.
به مثال های زیر دقت کنید. یک ایمیج خیلی ساده ساختیم با بیس ایمیج اسکرچ. (3 خط، 2 لایه)
FROM scratch
COPY hello /
CMD ["/hello"]
این هم یک ایمیج بر پایه پایتون. (3 خط، 3 لایه)
FROM python:3.9.0
WORKDIRD /test
COPY ./* .
#docker #scratch #python #داکر #اسکرچ #پایتون
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
هر زمان که فکر کردید کوبرنتیز به دردتون میخوره، یک سر به این سایت بزنید:
https://kubernetes.works
Now let’s lay down our admin hats and put our developer hats back on.
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
https://kubernetes.works
Now let’s lay down our admin hats and put our developer hats back on.
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
چطور یک ایمیج رو در داکر آپدیت کنیم؟
فرض کنید یک ایمیج Ubuntu نسخه 18 دارید و پروژتون درش قرار داره. همه چیز اوکیه و حالا میخواید اون Ubuntu 18 رو اپدیت کنید به نسخه 20.
شاید خیلیا تون فکر کنید که خب کاری نداره. میریم توی کانتینر این خط ها رو ران میکنیم:
اما.. نه!! به 2 دلیل.
1. شما الان در یک کانتینر قرار داری و تغییراتی که اعمال میکنی به روی کانتینر اعمال میشه. (مگر اینکه ای کانتینر یک ایمیج دیگه بسازین)
2. ممکنه در روند اپدیت، تعدادی از پکیج های اساسی اپدیت نشن که ممکنه واستون مشکل ساز شه.
خب چیکار کنیم؟ معمولا افرادی که یکم حرفه ای تر دنبال میکنن، از docker-compose برای ران گرفتن از ایمیج هاشون استفاده میکنن. یک سری هم هستن که دستی اینکارو میکنن و فرقی نداره.
شما باید Dockerfile خودتون رو ادیت کنید. همونطور که قبلا گفتیم، هر ایمیج از بیس ایمیجی استفاده میکنه. کافیه نسخه base image رو تغییر بدیم و یک بار دیگه بیلد کنیم.
👇
و اولین بار که میخواین ران کنین به این شکل کانتینر ها رو بسازین:
Simple Way:
Using docker-compose:
حالا لایه اول ایمیج شما rebuild شده و از ایمیجتون یک کانتر در حال ران هست.
#docker #ubuntu #update #upgrade #image #compose
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
فرض کنید یک ایمیج Ubuntu نسخه 18 دارید و پروژتون درش قرار داره. همه چیز اوکیه و حالا میخواید اون Ubuntu 18 رو اپدیت کنید به نسخه 20.
شاید خیلیا تون فکر کنید که خب کاری نداره. میریم توی کانتینر این خط ها رو ران میکنیم:
$ sudo apt-get upgrade
$ sudo dist-upgrade
اما.. نه!! به 2 دلیل.
1. شما الان در یک کانتینر قرار داری و تغییراتی که اعمال میکنی به روی کانتینر اعمال میشه. (مگر اینکه ای کانتینر یک ایمیج دیگه بسازین)
2. ممکنه در روند اپدیت، تعدادی از پکیج های اساسی اپدیت نشن که ممکنه واستون مشکل ساز شه.
خب چیکار کنیم؟ معمولا افرادی که یکم حرفه ای تر دنبال میکنن، از docker-compose برای ران گرفتن از ایمیج هاشون استفاده میکنن. یک سری هم هستن که دستی اینکارو میکنن و فرقی نداره.
شما باید Dockerfile خودتون رو ادیت کنید. همونطور که قبلا گفتیم، هر ایمیج از بیس ایمیجی استفاده میکنه. کافیه نسخه base image رو تغییر بدیم و یک بار دیگه بیلد کنیم.
FROM ubuntu:18
👇
FROM ubuntu:20
و اولین بار که میخواین ران کنین به این شکل کانتینر ها رو بسازین:
Simple Way:
$ docker build && docker run -d -t ...
Using docker-compose:
$ docker-compose up -d --build
حالا لایه اول ایمیج شما rebuild شده و از ایمیجتون یک کانتر در حال ران هست.
#docker #ubuntu #update #upgrade #image #compose
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
معرفی وبسایت ping.eu
ممکنه در خیلی از مواقع، هنگام Trouble Shoot به ابزاری نیاز داشته باشید تا از یک جای دیگه به سرویسهای شما متصل بشه و مواردی مثل Port های باز یا Ping یا Traceroute یا Reverse lookup و ... رو چک بکنه.
وبسایت https://ping.eu گزینه خوبی برای این کار هست، برای مثال ممکنه بخواهید بدونید آیا سرویس داکری که روی پورت ۸۰۸۰ بالا آوردید، پورت سرور از بیرون به درستی open هست یا نه؟ میتونید در https://ping.eu/port-chk این مورد رو چک کنید.
شما هم اگر ابزارهای خوبی میشناسید معرفی کنید. ✌️
#معرفی #معرفی_ابزار #docker #داکر
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
ممکنه در خیلی از مواقع، هنگام Trouble Shoot به ابزاری نیاز داشته باشید تا از یک جای دیگه به سرویسهای شما متصل بشه و مواردی مثل Port های باز یا Ping یا Traceroute یا Reverse lookup و ... رو چک بکنه.
وبسایت https://ping.eu گزینه خوبی برای این کار هست، برای مثال ممکنه بخواهید بدونید آیا سرویس داکری که روی پورت ۸۰۸۰ بالا آوردید، پورت سرور از بیرون به درستی open هست یا نه؟ میتونید در https://ping.eu/port-chk این مورد رو چک کنید.
شما هم اگر ابزارهای خوبی میشناسید معرفی کنید. ✌️
#معرفی #معرفی_ابزار #docker #داکر
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
ping.eu
Online Ping, Traceroute, DNS lookup, WHOIS, Port check, Reverse lookup, Proxy checker, Bandwidth meter, Network calculator, Network…
Easy to use web-based service.
DevOps Expert
معرفی وبسایت ping.eu ممکنه در خیلی از مواقع، هنگام Trouble Shoot به ابزاری نیاز داشته باشید تا از یک جای دیگه به سرویسهای شما متصل بشه و مواردی مثل Port های باز یا Ping یا Traceroute یا Reverse lookup و ... رو چک بکنه. وبسایت https://ping.eu گزینه خوبی…
KeyCDN
KeyCDN Tools - Simplify problem resolution
Free web, network, and security tools to help troubleshoot website, network, and CDN issues for fast resolutions.
تفاوت Proxy و Reverse Proxy به زبان ساده (با مثال)
پروکسی سرور ها، ریورس پروکسی ها و لود بلنسر ها از مفاهیم مهم آرشیتکت client/server هستن که در اکثر توپولوژی های پیشرفته میبینید.
در پست زیر به تفاوت این دو مبحث مهم می پردازیم. کمی هم درباره Load Balancer ها و ارتباط لود بلنسر با ریورس پراکسی رو درک میکنیم.
https://quberty.pythonanywhere.com/authors/@lnxpy/Proxy%20vs%20Reverse%20Proxy/
#proxy #reverse_proxy #quberty #load_balancer #architect #infrastructure
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
پروکسی سرور ها، ریورس پروکسی ها و لود بلنسر ها از مفاهیم مهم آرشیتکت client/server هستن که در اکثر توپولوژی های پیشرفته میبینید.
در پست زیر به تفاوت این دو مبحث مهم می پردازیم. کمی هم درباره Load Balancer ها و ارتباط لود بلنسر با ریورس پراکسی رو درک میکنیم.
https://quberty.pythonanywhere.com/authors/@lnxpy/Proxy%20vs%20Reverse%20Proxy/
#proxy #reverse_proxy #quberty #load_balancer #architect #infrastructure
〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx