اردیبهشت ۵ ۱۳۹۷

زیر پوست داکر چه خبر است

اینم یه تجربه پراکنده دیگه! این پست قرار بود جای دیگه‌ای منتشر بشه اما خب نشد. پس اینجا منتشرش میکنم. این متن رفرنس‌های زیادی کم داره که انشالا بعدا اضافه‌شون میکنم

در این پست قرار است که به زیرساخت‌هایی که داکر مبتنی بر آن ساخته شده است اشاره شود. هدف نهایی نشان‌دادن این موضوع است که داکر امکانات خود را به چه صورت ارائه می‌کند.

مقدمه

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

کرنل لینوکس

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

  • فضای نام(namespace)ها در لینوکس: فضا‌های نام این امکان را بوجود می‌آورند که بتوانند بخشی از منابع سیستم را بصورت ایزوله به پروسه‌هایی که درون آنها قرار دارند ارائه دهند. این منابع تنها توسط پروسه‌های درون آن قابل روئیت است. فضاهای نامی در داکر مورد استفاده قرار گرفته‌اند عبارتند از
    • فضای‌نام PID: که باعث می‌شود پروسه تنها پروسه‌های درون خود را ببینند
    • فضای‌نام NET: که باعث می‌شود بتوان کارت‌شبکه، پشته شبکه و سایر موارد را بصورت ایزوله ارائه کرد.
    • فضای‌نام IPC: که روندهای ارتباطی بین پروسه‌های مختلف را ایزوله می‌کند.
    • فضای‌نام MNT: که نحوه اتصال(mount) واسط‌های ذخیره سازی را ایزوله می‌کند.
    • فضای‌نام UTS: که نام کامپیوتر(hostname) و دامنه(NIS) را ایزوله می‌کند.
  • گروه‌های کنترلی یا cgroups: کرنل لینوکس این امکان را فراهم می‌اورد که پروسه‌ها در یک ساختار سلسله مراتبی قرار گفته و دسترسی آن به منابع سیستم محدود شود و مورد پایش قرار گیرد. این باعث می‌شود بتوان به عنوان مثال میزان استفاده از سی پی یو یا رم را کنترل کرد.

فایل سیستم

تکنولوژی دیگری که در داکر مورد استفاده قرار گرفته است، استفاده از یک سیستم فایل خاص به ویژگی copy on write است. سیستم فایلهای با این ویژگی را می‌توان بصورت لایه لایه ذخیره کرد و هنگام انتقال در صورت وجود داشتن نسخه قبلی تنها تفاوت‌ها را ارسال نمود. همچنین این امکان به ما این اجازه را میدهد که بتوانیم تغییرات را نسخه متفاوت همانند یک سیستم مدیریت نسخه پیگیری نماییم. سیستم فایلی که داکر از آن استفاده union file system است که ویژگی‌های زیر را دارد:
– بصورت لایه‌ایست
– هر لایه بایستی commit شود
– هر لایه بصورت فقط خواندنی ذخیره می‌شود.
– تنها فایلهای تغییر یافته در آن لایه ذخیره می‌شوند.

اجرا یک کانتینر

برای اجرای کانتیر و مشخص کردن تمام مشخصات آن بایستی این مشخصات را به فرمتی توصیف کرد. در داکر این فرمت container format نام داشته و داکر سعی در استاندارد کردن آن را دارد.

نوشته زیر پوست داکر چه خبر است اولین بار در تجربه های پراکنده پدیدار شد.


بهمن ۱۱ ۱۳۹۶

آموزش نصب OpenStack Pike بر روی CentOS 7.4

openstack

 

بی شک OpenStack یکی از قدرتمندترین نرم افزارها جهت پیاده سازی زیرساخت ابری و یا همان Cloud می باشد.آخرین نسخه ی OpenStack تا این لحظه نسخه ی Pike می باشد که در آگوست ۲۰۱۷ منتشر شده است.

برای انتشار نسخه ی Pike که شانزدهمین نسخه از OpenStack می باشد بیش از ۱۸۲۵ مشارکت کننده با یکدیگر همکاری داشته اند که یکی از سردمداران این شرکت های توسعه دهنده، شرکت ردهت می باشد.

 

openstack-pike-contributors

 

جهت اطلاعات بیشتر در مورد مشارکت کننده های OpenStack می توانید به لینک پایین مراجعه نمایید :

 

http://stackalytics.com/?release=pike

نصب OpenStack Pike با روش RDO :

 

برای نصب اوپن استک روش های گوناگونی وجود دارد.یکی از این روش ها RDO می باشد که سرنام واژه های RedHat Distribution OpenStack می باشد.RDO روشی است که شرکت RedHat آن را ارائه نموده است که نصب OpenStack را ساده تر و سریع تر انجام می دهد.RDO شامل مجموعه اسکریپتی به نام packstack می باشد که بوسیله ی آن می توان آخرین نسخه از OpenStack را بر روی توزیع های RedHat,CentOS,Scientific Linux و توزیع هایی از این خانواده نصب کرد.

ما در این مطلب قصد داریم تا نسخه ی OpenStack Pike را بر روی توزیع CentOS 7.4-x86-64 Minimal به صورت all-in-one نصب کنیم.به همین خاطر ما فرض می کنیم که شما CentOS 7.4-x86-64 minimal را نصب کرده اید و به آن یک IP اختصاص داده اید.به عنوان نمونه فایل پیکربندی کارت شبکه ی آن به صورت زیر می باشد :


TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=enp0s3

UUID=78ab42f4-9221-4a5e-bfb2-f83386922326

DEVICE=enp0s3

ONBOOT=yes

IPADDR=10.10.22.191

PREFIX=24

GATEWAY=10.10.22.254

DNS1=10.200.100.201

DNS2=10.200.100.199

IPV6_PRIVACY=no

 

همانطور که مشاهده می کنید نام رابط کارت شبکه ی سرور en90s3 می باشد و IP آن ۱۰٫۱۰٫۲۲٫۱۹۱ می باشد.اکنون در این مرحله سرویس NetworkManager را disable کنید و سرویس network را enable کنید :

# systemctl disable NetworkManager

# systemctl enable network

 

اکنون مخزن RDO را نصب کنید :

 

#yum install -y https://rdoproject.org/repos/rdo-release.rpm

 

همچنین مخرن OpenStack را نصب کنید :

 

 

#yum install -y centos-release-openstack-pike

 

اکنون کل سیستم را بروزرسانی کنید :

 

#yum update -y

پس از بروزرسانی کامل سیستم بهتر است تا سیستم را یکبار reboot کنید تا سیستم با آخرین کرنل boot شود :

 

#reboot

پس از بالا آمدن سیستم،اکنون بسته ی Packstack را نصب کنید :

 

 

#yum install -y openstack-packstack

 

اکنون برای نصب OpenStack Pike کافیست تا دستور پایین را اجرا کنید :

 

#packstack --allinone

 

پس از نصب موفقیت آمیز با همچین پیغامی روبرو خواهید شد :

 

openstack-pike

 

همانطور که در پیغام خروجی می بینید،برای دسترسی به دشبورد اوپن استک کافیست تا آدرس زیر را در مرورگر وب خود وارد کنید :

 

http://10.10.22.191/dashboard

 

گفتنی است بجای IP نوشته شده باید آدرس سرور خود را بنویسید.پس از وارد کردن آدرس بالا در مرورگر وب خود با همچین صفحه ای روبرو خواهید شد :

 

openstack-pike

نام کاربری جهت ورود به پنل، admin می باشد و پسورد آن را می توانید از فایل keystonerc_admin در مسیر root/ بدست بیاورید.در ادامه تصاویری از پنل تحت وب اوپن استک که نام آن Horizon می باشد را مشاهده کنید :

 

openstack-pike

 

openstack-pike

 

openstack-pike

امید است تا از این مطلب استفاده لازم را برده باشید و همیشه در ابرها باشید!