Kubernetes With Kubeadm را در CentOS 7 مستقر کنید
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
برنامه های PHP معمولاً توسط یک سرور ، یک سیستم پایگاه داده رابطه و خود مفسر زبان تشکیل می شوند. در این آموزش ما با استفاده از داکر از یک پشته کامل برنامه PHP استفاده خواهیم کرد. این یک آموزش جامع است که در آن قصد داریم ظروف مخصوص Nginx (وب سرور) ، MySQL (سیستم پایگاه داده) و PHP ظروف مخصوص ارکستر را بسازیم.
به خاطر این آموزش ، ما یک برنامه ساده خواهیم نوشت که لیستی از شهرها را از یک پایگاه داده می خواند و آن را در یک صفحه وب نمایش می دهد ، به این ترتیب یک برنامه PHP اساسی اما کارآمد را نشان خواهیم داد.
این راهنما فرض می کند که شما Docker-CE را قبلاً نصب کرده اید و حداقل دانش کمی از داکر دارید. برای آن موضوع می توانید آموزشهای زیر را مرور کنید:
یک برنامه مبتنی بر داکر زندگی واقعی معمولاً از چندین ظروف تشکیل شده است. مدیریت این موارد به راحتی می تواند کاملاً کثیف و دست و پا گیر شود. این جایی است که docker-compose وارد بازی می شود. این کمک می کند تا تعدادی از ظروف را از طریق یک yaml
فایل پیکربندی ساده مدیریت کنید.
docker-compose را نصب کنید.
curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
یک پوشه ایجاد کنید تا تمام پرونده های لازم از این مثال و سپس cd
درون آن قرار گیرد. از این پس این دایرکتوری کار ماست و هر دستور در داخل این پوشه اجرا می شود و هر مسیری نسبت به آن ارجاع می شود. این پوشه ممکن است بعداً به عنوان ارجاع داده شود WORKING_DIR
.
mkdir ~/docker
cd ~/docker
اکنون سه پوشه دیگر ایجاد کنید.
mkdir php nginx app
این php
پوشه جایی است که ما می خواهیم تصویر PHP دلخواه خود را بسازیم ، nginx
پوشه پرونده های لازم را برای تصویر nginx سفارشی ما نگه می دارد و app
پوشه همان جایی است که ما می خواهیم کد منبع و پیکربندی برنامه نمونه خود را قرار دهیم.
در این مثال ، ما قصد داریم از آن php-fpm
برای اتصال به سرور Nginx استفاده کنیم. ما از تصویر پایه PHP رسمی استفاده خواهیم کرد. با این وجود ، ما همچنین باید برخی از برنامه های افزودنی را نصب و فعال کنیم تا بتوانیم به پایگاه داده دسترسی پیدا کنیم. در داخل php
پوشه پرونده ای به نام خود ایجاد کنید Dockerfile
و مطالب زیر را در آن قرار دهید.
FROM php:7.1-fpm-alpine3.4
RUN apk update --no-cache \
&& apk add --no-cache $PHPIZE_DEPS \
&& apk add --no-cache mysql-dev \
&& docker-php-ext-install pdo pdo_mysql
توجه داشته باشید که ما از نسخه Alpine از تصویر رسمی PHP استفاده می کنیم. آلپاین یک توزیع بسیار کوچک است که با تهیه ردپای بسیار کوچکتر به سمت ظروف منتقل می شود. همچنین ، توجه داشته باشید که از دستور استفاده می کنید docker-php-ext-install
، تصویر رسمی PHP این دستور را برای سهولت روند نصب و پیکربندی پسوندهای PHP فراهم می کند.
حال ، بیایید با انتشار موارد زیر (در داخل ما WORKING_DIR
) این تصویر داکر را بسازیم :
docker build -t vultr-php php/
docker-compose.yml
فایلهمانطور که قبلاً نیز گفته شد ، docker-compose
به شما امکان می دهد تعدادی کانتینر را از طریق یک پرونده پیکربندی ساده مدیریت کنید. این پرونده پیکربندی به طور معمول نامگذاری می شود docker-compose.yml
. این پرونده را درون app
پوشه ایجاد کنید.
touch app/docker-compose.yml
اکنون مطالب زیر را در این پرونده قرار دهید.
version: '2'
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
ما این نحو را توضیح خواهیم داد. ابتدا خط اول را یادداشت کنید.
version: '2'
این نسخه docker-compose.yml
پرونده پیکربندی مورد استفاده را مشخص می کند. خط بعدی خدمات یا به عبارت دیگر ظروف مورد نیاز را مشخص می کند.
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
توجه داشته باشید که هر سرویس دارای یک کلید خاص در داخل services
بلوک است. از نام مشخص شده در اینجا برای مرجع این ظرف خاص بعدا استفاده می شود. همچنین توجه داشته باشید که در داخل php
پیکربندی ، تصویری را که برای اجرای ظرف استفاده می شود ، تعریف می کنیم (این تصویری است که قبلاً ساخته ایم). ما همچنین یک نقشه برداری از حجم را تعریف می کنیم.
volumes:
- ./:/app
این می گوید docker-compose
که دایرکتوری فعلی ( ./
) را در /app
فهرست موجود درون ظرف قرار دهید. خط آخر /app
پوشه داخل ظرف را به عنوان دایرکتوری کار تنظیم می کند ، به این معنی که این پوشه ای است که تمام دستورات آینده درون یک ظرف به طور پیش فرض از آن اجرا می شود.
اکنون می توانیم ظروف خود را ارکستر کنیم.
cd ~/docker/app
docker-compose up -d
می توانید دستور زیر را اجرا کنید تا مطمئن شوید که ظرف PHP اجرا شده است:
docker ps
هنوز در داخل app
پوشه ، می توانیم با کمک دستور ، هر دستوری را درون یک ظرف سرویس تعریف شده اجرا کنیم docker-compose
.
docker-compose exec [service] [command]
[service]
حفره یا سوراخ به کلید خدمات اشاره دارد. در مورد ما ، این بود php
. بیایید یک دستور در داخل ظرف اجرا کنیم تا نسخه PHP ما را بررسی کنیم.
docker-compose exec php php -v
خروجی زیر را مشاهده خواهید کرد.
PHP 7.1.14 (cli) (built: Feb 7 2018 00:40:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
درست مانند ظرف PHP ، ما باید برای وب سرور یک تصویر دلخواه ایجاد کنیم. اما در این حالت ، فقط باید پیکربندی خود را ارائه دهیم virtual host
. مطمئن شوید که داخل ما هستید WORKING_DIR
و یک پوشه Dockerfile
در داخل ایجاد می nginx
کنید:
cd ~/docker
touch nginx/Dockerfile
اکنون مطالب زیر را در این قرار دهید Dockerfile
:
FROM nginx:1.13.8-alpine
COPY ./default.conf /etc/nginx/conf.d/default.conf
ما از تصویر پیش فرض Nginx بر اساس Alpine استفاده می کنیم. در این پرونده Docker ما به سادگی یک فایل پیکربندی را در تنظیم برنامه خود کپی می کنیم. قبل از ساختن این تصویر ، یک پرونده پیکربندی ایجاد کنید.
touch nginx/default.conf
اکنون آن را با این محتوا جمع کنید.
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /app;
index index.php;
#server_name server_domain_or_IP;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
توجه داشته باشید که در این fastcgi_pass php:9000
خط ، ما به پرونده PHP با نام آن در service
بلوک docker-compose.yml
پرونده پیکربندی اشاره می کنیم. به صورت داخلی docker-compose
یک شبکه ایجاد می کند و نام سرویس را به عنوان نام میزبان به هر یک از سرویس های تعریف شده اختصاص می دهد. اکنون می توانیم تصویر Nginx را بسازیم.
docker build -t vultr-nginx nginx/
docker-compose.yml
اکنون app/docker-compose.yml
پرونده را به روز کنید.
version: '2'
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
web:
image: vultr-nginx
volumes:
- ./:/app
depends_on:
- php
ports:
- 80:80
ما فقط سرویس جدیدی اضافه کرده ایم. پیکربندی تقریباً یکسان است ، به جز موارد زیر.
depends_on:
- php
ports:
- 80:80
هنگامی که ظرف Nginx به سرویس اولیه PHP نیاز دارد تا به طور کامل تنظیم شود ، ما این depends_on
گزینه را در گزینه اعمال می کنیم. ports
کلید پیکربندی نقشه های یک پورت میزبان را به یک بندر کانتینری، در اینجا ما پورت بر روی نقشه 80
در میزبان به بندر 80
در ظرف.
اکنون یک پرونده بنام index.php
داخل app
پوشه ایجاد کرده و موارد زیر را در آن قرار دهید.
<?php phpinfo();
اطمینان حاصل کنید که درگاه 80
از طریق فایروال شما قابل دسترسی است و موارد زیر را اجرا کنید.
cd ~/docker/app
docker-compose up -d
یک بار دیگر ، بررسی کنید که سرویس تمام شده است.
docker ps
مرورگر را باز کرده و به آن دسترسی پیدا کنید [vultr-instance-ip]
. با اجرای موارد زیر می توانید آدرس IP نمونه Vultr خود را دریابید.
hostname -I
صفحه اطلاعات PHP را مشاهده خواهید کرد.
تصویر MySQL رسمی به شما امکان می دهد ظرف را از طریق متغیرهای ساده محیط پیکربندی کنید. این کار را می توان با environment
گزینه ای در تعریف سرویس سرویس انجام داد. ~/docker/app/docker-compose.yml
پرونده را به شرح زیر به روز کنید.
version: '2'
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
web:
image: vultr-nginx
volumes:
- ./:/app
depends_on:
- php
ports:
- 80:80
mysql:
image: mysql:5.7.21
volumes:
- ./:/app
- dbdata:/var/lib/mysql
environment:
- MYSQL_DATABASE=world
- MYSQL_ROOT_PASSWORD=root
working_dir: /app
volumes:
dbdata:
اکنون ما سرویس جدیدی را برای پایگاه داده تعریف کرده ایم. به خط توجه کنید dbdata:/var/lib/mysql
. این مسیر روی ظرف را /var/lib/mysql
به یک حجم مداوم که توسط داکر کنترل می شود سوار می کند ، به این ترتیب داده های پایگاه داده پس از حذف کانتینر ادامه می یابد. این حجم باید همانطور که در انتهای پرونده مشاهده می کنید ، در یک بلوک سطح بالا تعریف شود.
قبل از تنظیم تنظیمات جدید ما ، بیایید نمونه پایگاه داده MySQL را بارگیری کنیم. اسناد رسمی خروجی بعضی از پایگاه داده نمونه را فراهم می کند. ما از بانک اطلاعاتی شناخته شده جهان استفاده خواهیم کرد. این پایگاه داده لیستی از کشورها و شهرها را در اختیار شما قرار می دهد. برای بارگیری این نمونه ، موارد زیر را در پوشه برنامه ما اجرا کنید.
curl -L http://downloads.mysql.com/docs/world.sql.gz -o world.sql.gz
gunzip world.sql.gz
اکنون اجازه می دهیم ظروفمان را تزیین کنیم.
docker-compose up -d
همانطور که ممکن است قبلاً متوجه شده باشید ، این docker-compose up
دستور فقط ظروف را شروع می کند که از قبل شروع نشده اند. این اختلافات بین docker-compose.yml
پرونده شما و پیکربندی فعلی ظروف در حال اجرا را بررسی می کند.
یک بار دیگر ، بررسی کنید که ظرف MySQL شروع شده است.
docker ps
اکنون پایگاه داده جهانی را جمع کنید.
docker-compose exec -T mysql mysql -uroot -proot world < world.sql
با انتخاب داده ها به طور مستقیم از پایگاه داده می توانید تأیید کنید که پایگاه داده جمع شده است. ابتدا به فوری MySQL داخل ظرف دسترسی پیدا کنید.
docker-compose exec mysql mysql -uroot -proot world
در MySQL سریع ، موارد زیر را اجرا کنید.
select * from city limit 10;
لیستی از شهرها را مشاهده خواهید کرد. اکنون از MySQL سریع خارج شوید.
mysql> exit
اکنون که تمام ظروف مورد نیاز در حال کار هستند ، می توانیم روی برنامه نمونه خود تمرکز کنیم. app/index.php
پرونده را به شرح زیر به روز کنید.
<?php
$pdo = new PDO('mysql:host=mysql;dbname=world;charset=utf8', 'root', 'root');
$stmt = $pdo->prepare("
select city.Name, city.District, country.Name as Country, city.Population
from city
left join country on city.CountryCode = country.Code
order by Population desc
limit 10
");
$stmt->execute();
$cities = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Vultr Rocks!</title>
</head>
<body>
<h2>Most Populous Cities In The World</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Country</th>
<th>District</th>
<th>Population</th>
</tr>
</thead>
<tbody>
<?php foreach($cities as $city): ?>
<tr>
<td><?=$city['Name']?></td>
<td><?=$city['Country']?></td>
<td><?=$city['District']?></td>
<td><?=number_format($city['Population'], 0)?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</body>
</html>
اگر به [vultr-instance-ip]
یک مرورگر وب دسترسی پیدا کنید ، لیستی از پرجمعیت ترین شهرهای جهان را مشاهده خواهید کرد. تبریک می گویم ، شما یک برنامه PHP کاملاً کار با استفاده از docker مستقر کرده اید.
در این آموزش ، من گام به گام نحوه پیکربندی یک برنامه PHP کاملاً کار را نشان داده ام. ما تصاویر دلخواه را برای PHP و Nginx ساخته ایم ، و docker-آهنگسازی را تنظیم کرده ایم تا ظروفمان را بسازیم. این مجموعه با وجود ابتکاری و ساده بودن ، یک سناریوی واقعی زندگی را نشان می دهد.
در این راهنما ، تصاویر خود را بصورت محلی ساخته و برچسب گذاری کرده ایم. برای تنظیم انعطاف پذیر تر ، می توانید این تصاویر را به ر��یستری داکر فشار دهید . شما می توانید به رجیستری داکر رسمی فشار دهید یا حتی رجیستری docker خود را تنظیم کنید. در هر صورت ، این به شما امکان می دهد تا تصاویر خود را روی یک میزبان بسازید و از آنها در دیگری استفاده کنید.
برای استفاده دقیق تر از آن docker-compose
، باید به مستندات رسمی مراجعه کنید .
بسته به نیاز برنامه شما و چارچوب PHP که استفاده می کنید ، ممکن است بخواهید افزونه های بیشتری اضافه کنید. این کار را می توان به راحتی با اصلاح Dockerfile
مورد استفاده برای ساخت تصویر PHP دلخواه ما انجام داد. با این حال ، برخی از برنامه های افزودنی نیاز به وابستگی های اضافی برای نصب در ظرف دارند. برای مرور الزامات اساسی هر پسوند باید به لیست برنامه های افزودنی در اسناد رسمی PHP مراجعه کنید .
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
مقدمه Docker برنامه ای است که به ما امکان می دهد برنامه هایی را که به صورت ظروف اجرا می شوند مستقر کنیم. این متن با زبان محبوب برنامه نویسی Go نوشته شده است
با استفاده از یک سیستم متفاوت؟ Docker برنامه ای است که امکان استقرار نرم افزار در ظروف مجازی را فراهم می آورد. در برنامه نویسی Go نوشته شده است
با استفاده از یک سیستم متفاوت؟ مقدمه Rancher یک بستر منبع باز برای اجرای ظروف و ساخت سرویس کانتینر خصوصی است. رانچر پایه است
در این مقاله نحوه نصب docker-compose در CoreOS توضیح داده شده است. در CoreOS ، پوشه / usr / تغییر ناپذیر است بنابراین مسیر استاندارد / usr / local / bin در دسترس نیست
همه ما Docker را می شناسیم و دوست داریم ، سکویی برای ایجاد ، مدیریت و توزیع ظروف برنامه در دستگاه های مختلف. شرکت Docker یک سرویس t ارائه می دهد
با استفاده از یک سیستم متفاوت؟ مقدمه 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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد