Kubernetes With Kubeadm را در CentOS 7 مستقر کنید
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
همه ما Docker را می شناسیم و دوست داریم ، سکویی برای ایجاد ، مدیریت و توزیع ظروف برنامه در دستگاه های مختلف. شرکت Docker خدماتی را برای میزبانی ظروف منبع آزاد برای بارگیری (یا کشیدن) مانند یک مخزن git که به عنوان "Docker Registry" شناخته می شود ، بارگیری می کند. مانند ظروف GitHub برای ظروف داکر فکر کنید.
اما اگر می خواهید میزبان رجیستری خودتان جدا از عمومی باشید؟ خوب ، شرکت Docker برنامه رجیستری خود را در GitHub باز کرده است.
این آموزش هر چند روند تنظیم رجیستری داکر خصوصی را با استفاده از CoreOS روی یک VPS جدید انجام می دهد.
ما دقیقاً کاری را که Docker و CoreOS می توانند انجام دهند ، بیش از آنچه را که Docker و CoreOS انجام می دهند ، سپری نمی کنیم ، زیرا این خارج از محدوده این آموزش است. در اصل ، CoreOS برای خوشه های گسترده سرور طراحی شده است ، کوچک ، سریع است و به طور خودکار به روزرسانی های امنیتی منظم را انجام می دهد. سیستم فایل ریشه آن نیز فقط خواندنی است ، به این معنی که شما باید از Docker برای اجرای هر نوع نرم افزاری که همراه با نصب پایه نیست استفاده کنید.
این باعث می شود سیستم عامل اصلی به سیستم میزبان کاملی برای داکر تبدیل شود!
شرکت Docker رجیستری را به عنوان تصویر سطح بالا ارائه کرده است ، این بدان معنی است که می توانیم با ساده ساده آن را بکشیم:
docker pull registry
این بسته به سرعت اتصال ممکن است چند دقیقه طول بکشد.
علاوه بر اینکه یک تصویر سطح بالا است همچنین به معنای پشتیبانی و به روزرسانی منظم است.
حالا بیایید رجیستری را امتحان کنیم. ما می توانیم با استفاده از تصویر رجیستری یک ظرف جدید ایجاد کنیم:
docker run -p 5000:5000 -d --name=basic_registry registry
برای کسانی که زیاد از داکر استفاده نکرده اند ، -p
پرچم مخفف است PORT
، به این معنی که ما در حال قرار دادن بندر 5000 از ظرف در بندر 5000 میزبان هستیم.
-d
پرچم مخفف daemon
، این باعث خواهد شد که ظرف به ظرف در پس زمینه اجرا و خروجی به جلسه SSH فعلی را چاپ کنید، ما همچنین می خواهم به نام این ظرف آزمون اساسی با استفاده از --name
گزینه به طوری که ما به راحتی می توانید آن را به بعد را مدیریت کند.
اطمینان حاصل کنید که ظرف اصلی رجیستری شما با استفاده از کار می کند docker ps
. خروجی باید شبیه به:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
edfb54e4a8c4 registry:0.8.1 "/bin/sh -c 'exec do 7 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp basic_registry
همچنین ، از http://YOUR_IP:5000
مرورگر وب خود بازدید کنید و باید پیامی مانند زیر دریافت کنید:
"docker-registry server (dev) (v0.8.1)"
توجه کنید که این کلمه
dev
در پرانتز است. این بدان معنی است که سرور در حال حاضر پیکربندی dev را اجرا می کند. به زودی پیکربندی بیشتری را بررسی خواهیم کرد.
اکنون شما رجیستری کانتینر (بسیار اساسی) خود را در حال اجرا دارید! اما ما هنوز تمام نشده ایم
شاید بخواهید این ویژگی را از چشمان کنجکاو حفظ نکنید ، یا شاید تصاویر خود را به جای فضای محلی در آمازون S3 ذخیره کنید. بیایید در بخش های بعدی گزینه های مختلف پیکربندی را مرور کنیم.
قبل از حرکت ، بیایید ظرف آزمایش را بکشیم تا در بنادر متناقض کار نکنیم.
docker kill basic_registry
دو روش وجود دارد که می توانیم پیکربندی را به Docker Registry منتقل کنیم. یک روش با انتقال متغیرهای محیط به یک ظرف جدید است و روش دیگر اضافه کردن پرونده پیکربندی است.
در اینجا چند مورد از گزینه های پیکربندی رایج استفاده خواهیم کرد:
loglevel
- حداقل اطلاعات برای ورود به کنسول. پیش فرض است info
.standalone
- آیا باید این رجیستری به تنهایی عمل کند؟ (هرگز از ثبت احوال پرس و جو نکنید.) پیش فرض است true
.index_endpoint
- اگر مستقل نباشد ، از چه شاخص دیگری پرس و جو خواهیم کرد؟ پیش فرض index.docker.io
.cache
و cache_lru
- گزینه های مربوط به استفاده از حافظه پنهان Redis برای پرونده های کوچک ، ما بعداً به این موضوع خواهیم پرداخت.storage
- برای این سرور از چه پس زمینه ذخیره ای باید استفاده کنیم؟ (در این آموزش از محلی استفاده خواهیم کرد).storage_path
- در صورت استفاده از فضای محلی ، از چه دایرکتوری برای نگه داشتن پرونده ها باید استفاده کنیم؟قبل از کار با پیکربندی ، به یک فایل پایه نیاز داریم تا با آن کار کنیم. پرونده موجود در مخزن ثبت نام Docker در GitHub درست کار خواهد کرد:
wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml
فایل با موفقیت با خروجی مانند:
2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]
عالی! اکنون می توانیم این پرونده را متناسب با نیازه��ی خود تغییر دهیم.
تنها ویرایشگر متن که همراه با سیستم عامل اصلی است vim
، اما نگران نباشید اگر قبلاً از آن استفاده نکرده اید ، این مرحله به مرحله توضیح می دهد که چه چیزی را ویرایش کنید و چگونه آن را انجام دهید.
vim config_sample.yml
پس از باز کردن پرونده ، به I
گوشه و گوشه سمت راست پایین نمایش دهید: -- INSERT --
برای حالت درج. با استفاده از کلیدهای پیکان خود ، تمام راه را به انتهای پرونده بروید ، باید یک بخش دارای برچسب را ببینید prod
.
ما دو خط را تغییر خواهیم داد ، تغییرات زیر است
prod:
<<: *local
storage_path: _env:STORAGE_PATH:/data
کاری که ما انجام داده ایم این است که prod
پیکربندی را تغییر دهیم تا از local
بخش به جای بخش استفاده کنیم s3
. سپس ما را storage_path
برای استفاده از مسیر /data
داخل ظرف جدید رونویسی می کنیم.
پس از تأیید صحیح بودن همه تغییرات ، روی ESC
حالت و نوع وارد شوید :wq
(به این معنی است که تغییرات را در پرونده بنویسید و از vim خارج شوید).
حالا بیایید پرونده را به صورت ساده تغییر دهیم config.yml
mv config_sample.yml config.yml
اگر مایل به استفاده از مجدد برای سرعت بخشیدن به رجیستری کانتینر خود هستید ، به سادگی کشیدن یک ظرف جدید از رجیستری عمومی و اضافه کردن چند خط تنظیمات دیگر است.
ابتدا تصویر سطح بالای Redis را بکشید:
docker pull redis
پس از کشیدن تصویر با موفقیت ، می توانیم آنرا اجرا کنیم و درست مثل آنچه که با رجیستری آزمون انجام دادیم ، آن را اجرا کنیم:
docker run -d --name registry-redis redis
از آنجا که redis در حافظه است ، دیگر لازم نیست پیکربندی لازم را انجام دهیم ، زیرا در مراحل بعدی آن را به ظرف رجیستری پیوند خواهیم داد.
یک بار دیگر ، با استفاده از docker ps
:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54f65641eccf redis:2.8 "redis-server" 2 seconds ago Up 1 seconds 6379/tcp registry-redis
اکنون دوباره باز کردن config.yml
در vim
و وارد درج حالت درست مثل اولین بار که ما آن را ویرایش کنید.
خطوط زیر را در زیر prod
بخش اضافه کنید ، مطمئناً به درستی تورفتگی می کنید. این بار فقط اضافه می کنیم cache
و cache_lru
.
cache:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 0
cache_lru:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 1
متغیرهای محیط REDIS_PORT_6379_TCP_ADDR
و REDIS_PORT_6379_TCP_PORT
با پیوند با ظرف Redis به ظرف رجیستری منتقل می شوند.
با این کار ، اکنون یک کانتینر Redis نصب کرده اید که به صورت دستی با ظرف رجیستری شما کار خواهد کرد. اکنون بر روی ساخت رجیستری!
همه تنظیمات تنظیم شده و آماده داریم ، اکنون باید ظرف رجیستری واقعی را بسازیم.
آتش vim Dockerfile
بسازید تا یک Dockerfile جدید ایجاد کنید. حالت insert را وارد کنید و ویرایش های زیر را دنبال کنید.
FROM registry:latest
# Add the custom configuration file we made
ADD ./config.yml /docker-registry/config/config.yml
# Create the data directory
RUN mkdir /data
# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
# Make sure we use the prod configuration settings
env SETTINGS_FLAVOR prod
آنچه ما در بالا انجام دادیم این است که در اصل تصویر رجیستری را گسترش می دهیم بنابراین از پرونده و تنظیمات پیکربندی ما استفاده می کند. Dockerfile مجموعه ای از دستورالعمل های ساخت برای خواندن و ساخت Docker است. اگر می خواهید درباره Dockerfiles و نحو آنها بیشتر بدانید ، به اسناد رسمی سایت Docker نگاهی بیندازید.
در مرحله بعد باید ظرف را برای استفاده بسازیم.
docker build -t my_registry .
Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon
Step 0 : FROM registry
---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
---> Running in a090f0bdbfd1
---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
---> Running in 565b5bfb2b22
---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
---> Running in 31a92847b851
---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374
حالا ما آماده اجرا هستیم!
بیایید یک دایرکتوری در سیستم میزبان خود بسازیم تا در /data
حجم آن در ظرف قرار گیرد .
mkdir registry-data
حالا می توانیم ظرف جدیدی بچرخیم. اگر قصد استفاده از حافظه نهان Redis را دارید ، از دستور 2 در زیر استفاده کنید.
# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry
# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry
برای اطمینان از عملکرد صحیح سرور خود ، به این قسمت مراجعه کنید http://YOUR_IP:5000
. پیام زیر را مشاهده خواهید کرد:
"docker-registry server (prod) (v0.8.1)"
به (prod)
معنای موفقیت در تغییرات پیکربندی ما توجه کنید !
اکنون که ما رجیستری در حال اجرا داریم ، می خواهیم مشتری داکر در دستگاههای محلی ما شروع به استفاده از آن کند. معمولاً از این دستور استفاده می کنید: docker login
اما برای استفاده ما باید یک آرگومان دیگر به فرمان ورود اضافه کنیم:
docker login YOUR_IP:5000
نام کاربری و رمز ورود خود را وارد کنید (مانند ساختن یک حساب کاربری جدید فکر کنید) و پیامی را که می گوید باید آن را فعال کنید نادیده بگیرید.
بعد ، اجازه دهید یک تصویر سهام را بکشیم ، و آن را به سمت مخزن خود بکشیم.
# Pull the busybox image from the public registry
docker pull busybox
# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox
# Push it to our newly made registry
docker push YOUR_IP:5000/busybox
اگر همه چیز به درستی فشار آورد ، پیام نهایی باید در امتداد خطوط زیر باشد:
Pushing tag for rev [a9eb17255234] on
تبریک می گویم! مخزن docker بسیار شخصی خود را تنظیم کرده اید.
در اینجا چند ایده در مورد چگونگی بهبود رجیستری خصوصی جدید شما آورده شده است:
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
مقدمه Docker برنامه ای است که به ما امکان می دهد برنامه هایی را که به صورت ظروف اجرا می شوند مستقر کنیم. این متن با زبان محبوب برنامه نویسی Go نوشته شده است
با استفاده از یک سیستم متفاوت؟ Docker برنامه ای است که امکان استقرار نرم افزار در ظروف مجازی را فراهم می آورد. در برنامه نویسی Go نوشته شده است
با استفاده از یک سیستم متفاوت؟ مقدمه Rancher یک بستر منبع باز برای اجرای ظروف و ساخت سرویس کانتینر خصوصی است. رانچر پایه است
برنامه های PHP معمولاً توسط یک سرور ، یک سیستم پایگاه داده رابطه و خود مفسر زبان تشکیل می شوند. در این آموزش leveragin خواهیم بود
در این مقاله نحوه نصب docker-compose در CoreOS توضیح داده شده است. در CoreOS ، پوشه / usr / تغییر ناپذیر است بنابراین مسیر استاندارد / usr / local / bin در دسترس نیست
با استفاده از یک سیستم متفاوت؟ مقدمه Rancher یک بستر منبع باز برای اجرای ظروف و ساخت سرویس کانتینر خصوصی است. رانچر پایه است
با استفاده از یک سیستم متفاوت؟ مقدمه Sentry یک راه حل منبع باز برای ردیابی خطا است. Sentry استثنائات و سایر پیام های مفید را از این طریق دنبال می کند
مقدمه این راهنما نحوه ایجاد و پیکربندی ازدحام Docker را با استفاده از چندین سرور Alpine Linux 3.9.0 و Portainer به شما نشان می دهد. لطفا آگاه باشید
با استفاده از یک سیستم متفاوت؟ مقدمه Docker Swarm سرورهای شخصی شما را به گروهی از رایانه ها تبدیل می کند. تسهیل مقیاس پذیری ، در دسترس بودن بالا
با استفاده از یک سیستم متفاوت؟ مقدمه Docker Swarm سرورهای فردی شما را به مجموعه ای از رایانه ها تبدیل می کند و باعث می شود مقیاس پذیری و در دسترس بودن بالا را تسهیل کند
با کمک برنامه Vultr Docker ، به راحتی می توانید Docker را به عنوان نمونه سرور Vultr خود مستقر کنید. در ضمن ، می توانید وظیفه مدیریت داکر را تسهیل کنید
Harbour یک سرور رجیستری کلاس سازمانی منبع باز است که تصاویر Docker را ذخیره و توزیع می کند. بندرگاه منبع باز Docker Distribution b را گسترش می دهد
بررسی اجمالی RancherOS یک سیستم عامل فوق العاده سبک (فقط حدود 60 مگابایت) است که برای اجرای سرویس های سیستم ، یک Demoner سیستم Docker به عنوان PID 0 را اجرا می کند.
ظروف LXC (ظروف لینوکس) یک ویژگی سیستم عامل در لینوکس است که می تواند برای اجرای چندین سیستم جدا شده لینوکس روی یک هاست واحد مورد استفاده قرار گیرد. اینها
Kubernetes یک سیستم عامل منبع باز است که توسط Google برای مدیریت برنامه های کانتینر شده در سرتاسر گروههای سرور ساخته شده است. این بنا بر روی یک دهه ساخته می شود و
در این آموزش اصول اولیه کار با داکر توضیح داده شده است. فرض می کنم شما قبلاً داکر نصب کرده اید. مراحل این آموزش روی آن کار خواهد کرد
هنگام اجرای یک برنامه وب ، شما معمولاً می خواهید بدون استفاده از نرم افزار خود برای استفاده از multithreading o از منابع خود استفاده کنید.
پیش نیاز موتور داکر 1.8+. حداقل 4 گیگابایت فضای دیسک. حداقل 4 گیگابایت رم. مرحله 1. نصب Docker به منظور نصب SQL-Server ، Docker mus
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد