Kubernetes With Kubeadm را در CentOS 7 مستقر کنید
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
ظروف LXC (ظروف لینوکس) یک ویژگی سیستم عامل در لینوکس است که می تواند برای اجرای چندین سیستم جدا شده لینوکس روی یک هاست واحد مورد استفاده قرار گیرد.
این دستورالعمل ها شما را در مراحل اساسی پیکربندی سرور برای میزبانی کانتینر جداول لینوکس طی می کنند. ما ویژگی های زیر را پیکربندی می کنیم:
ssh [email protected]
وssh [email protected]
این راهنما فرض می کند که:
در پایان آموزش دو کانتینر مجازی خواهیم داشت که به اینترنت دسترسی خواهند داشت اما نمی توانند یکدیگر را پینگ کنند. همچنین حمل و نقل پورت را example.com
به ظروف پیکربندی خواهیم کرد. ما با کمک ابزارهایی از بسته Proxmox ، پیکربندی و کنترل پنل ایمن را مستقر خواهیم کرد.
ما فقط برای مدیریت ظروف LXC از Proxmox استفاده خواهیم کرد. معمولاً از KVM پشتیبانی می کند ، اما مجازی سازی تو در تو Vultr ممنوع است. قبل از شروع ، یک ISO Proxmox باید از وب سایت رسمی بارگیری شود. ما استفاده Proxmox VE 5.0 ISO Installer
خواهیم کرد با تنظیمات پیش فرض سیستم عامل را از روی تصویر نصب کرده و دستگاه مجازی را دوباره راه اندازی کنید. همچنین ، می توانید Proxmox را به صورت دستی از منابع نصب کنید ، اما در اکثر موارد این کار ضروری نیست (دستورالعمل های اینجا را دنبال کنید ).
با SSH به میزبان خود متصل شوید ، لیست الگوهای proxmox را به روز کنید و یک الگوی مناسب برای ظروف بارگیری کنید.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
حال باید یک کانتینر لینوکس با رابط شبکه ایجاد کنیم که به یک پل لینوکس متصل است. /etc/network/interfaces
خطوط زیر را باز کرده و ضمیمه کنید:
auto vmbr1
iface vmbr1 inet static
address 10.100.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
پس از راه اندازی مجدد سیستم ، می توانید یک ظرف جدید از Ubuntu 14.04
قالب ایجاد کنید.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.200/24,gw=10.100.0.1
می توانید ظرف خود را با استفاده از ظرف تأیید کنید pct list
، ظرف شماره 200 را با pct start 200
آن شروع کنید و پوسته آن را وارد کنید pct enter 200
. همچنین می توانید تنظیمات و آدرس های شبکه را با آنها تأیید کنید ip addr
.
برای برقراری ارتباط اینترنتی در داخل کانتینر ، باید آن را فعال کنیم NAT
. موارد زیر باعث می شود تا ترافیک از کانتینر به اینترنت با کمک فناوری NAT هدایت شود. این vmbr0
پل به رابط خارجی وصل شده و این vmbr1
پل به ظروف متصل است.
sysctl -w net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
iptables --append FORWARD --in-interface vmbr1 -j ACCEPT
ظرف را وارد کنید pct enter 200
و سرور وب را درون آن پیکربندی کنید.
apt-get update
apt-get install nginx
service nginx start
exit
اکنون ، ما باید Nginx را بر روی سرور خود پیکربندی کنیم تا وب سایت های پروکسی را در ظروف قرار دهیم.
apt-get update
apt-get install nginx
/etc/nginx/sites-available/box200
با پیوند زیر یک پرونده پیکربندی جدید ایجاد کنید :
server {
listen 80;
server_name server200.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://10.100.0.200/;
}
}
Nginx اکنون درخواست server200.example.com
IP HTTP را از طریق سرور خود به ظرف با IP 10.100.0.200 پروکسی می کند. این پیکربندی را فعال کنید.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
اگر می خواهید دسترسی آسان به ماسهبازی ها داشته باشید ، لازم است جلسات SSH را درون ظروف منتقل کنید. برای انجام این کار ، یک کاربر جدید در سرور root خود ایجاد کنید. فراموش کردن رمز عبور ، پارامترهای دیگر لازم نیست.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
این کلید SSH را کپی کنید و برای اضافه کردن کلید وارد ظرف شوید.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
در سرور خود ، خط زیر را به .ssh/authorized_keys
پرونده اضافه کنید.
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
فراموش نکنید که <YOUR SSH KEY>
به کلید عمومی منزل خود تغییر دهید . همچنین می توانید موارد زیر را از خط فرمان اجرا کنید.
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
سپس می توانید با ssh به sandbox خود متصل شوید.
`ssh box200@<your_server_IP>`
اکنون زمان اجرای چندین پیشرفت امنیتی است. ابتدا می خواهیم پورت پیش فرض SSH را تغییر دهیم. سپس می خواهیم از صفحه مدیریت Proxmox خود با احراز هویت اولیه HTTP محافظت کنیم.
nano /etc/ssh/sshd_config
رفع اشکال و تغییر خط
#Port 22
به
Port 24000
شروع مجدد ssh
service ssh restart
دوباره به ssh با درگاه جدید وصل شوید.
ssh root@<your_IP> -p 24000
ایجاد فایل /etc/default/pveproxy
.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
pveproxy
برای اعمال تغییرات مجدداً راه اندازی کنید .
/etc/init.d/pveproxy restart
nginx را پیکربندی کنید (اگر قبلاً این کار را نکرده اید).
apt-get install nginx
service nginx restart
یک پیکربندی پیش فرض در ایجاد کنید /etc/nginx/site-available/default
.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
#auth_basic "Restricted";
#auth_basic_user_file htpasswd;
#location / { proxy_pass https://127.0.0.1:8006; }
}
یک گواهی SSL معتبر بدست آورید و پیکربندی nginx خود را به روز کنید. به عنوان مثال ، این کار را می توان با کمک گواهی نامه و letsencrypt انجام داد. برای اطلاعات بیشتر، کلیک کنید اینجا .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
اکنون ، پیکربندی nginx شما باید شبیه به این باشد (یا می توانید پس از آن به صورت دستی آن را تغییر دهید). فراموش نکنید که خطوط ssl ، auth و موقعیت مکانی را فراموش نکنید.
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location / { proxy_pass https://127.0.0.1:8006; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
}
/etc/htpasswd
با استفاده از ژنراتور Htpasswd یک فایل ایجاد کنید .
nano /etc/nginx/htpasswd
Nginx را مجدداً راه اندازی کنید
service nginx restart
اکنون می توانید کنسول مدیریت را https://example.com
بعد از تأیید اعتبار اولیه مشاهده کنید.
اکنون ظروف توسط درخواست HTTP و SSH در دسترس هستند. اکنون می توانیم پیکربندی پورت را از سرور خارجی به ظروف پیکربندی کنیم. به عنوان مثال ، برای نقشه برداری example.com:8080
برای 10.100.0.200:3000
ورودی موارد زیر.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
شما می توانید قوانین فعلی را مشاهده کنید.
`iptables -t nat -v -L PREROUTING -n --line-number`
همچنین می توانید یک قانون را با شماره زیر حذف کنید.
`iptables -t nat -D PREROUTING <#>`.
اکنون می توانیم از ظرف دیگری به یک ظرف دیگر دسترسی پیدا کنیم.
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.250/24,gw=10.100.0.1
pct start 250
pct enter 250
ping 10.100.0.200
اگر می خواهید دسترسی از ظرف 250 تا 200 را محدود کنید ، باید هر ظرف را به یک پل شخصی وصل کنید و حمل و نقل بین پل ها را غیرفعال کنید.
ظروف موجود را حذف کنید.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
تغییر محتوای /etc/network/interfaces
.
auto vmbr1
iface vmbr1 inet static
address 10.100.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 10.100.2.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
reboot
سیستم
حمل و نقل را فعال کنید
`sysctl -w net.ipv4.ip_forward=1`
برای اینکه این تغییرات دائمی شود ، می توانید /etc/sysctl.conf
پرونده را ویرایش کرده و متن زیر را بیابید.
#net.ipv4.ip_forward=1
ناراضی بودن
net.ipv4.ip_forward=1
شما همچنین می توانید اجرا کنید sysctl -p
تا تغییرات بلافاصله عملی شوند.
ظروف ایجاد کنید.
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.1.200/24,gw=10.100.1.1
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr2,ip=10.100.2.250/24,gw=10.100.2.1
ظروف را با pct start 200
و شروع کنید pct start 250
.
iptables
قوانین را شستشو دهید .
iptables -F
NAT را فعال کنید.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
پلی است که شامل رابط خارجی است.
اجازه انتقال از رابط خارجی.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
حمل و نقل از ظروف به اینترنت مجاز است.
iptables -A FORWARD -i vmbr1 -o vmbr0 -s 10.100.1.0/24 -j ACCEPT
iptables -A FORWARD -i vmbr2 -o vmbr0 -s 10.100.2.0/24 -j ACCEPT
حمل و نقل دیگر را رها کنید.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
اکنون بررسی کنید که 10.100.1.200
می تواند پینگ کند 8.8.8.8
اما نمی تواند پینگ کند 10.100.2.250
و 10.100.2.250
می تواند پینگ کند 8.8.8.8
اما نمی تواند پینگ کند 10.100.1.200
.
ترتیب دستورات مربوط به iptables مهم است. بهترین راه برای استفاده از قوانین خود استفاده از آن است iptables-persistent
. این بسته به شما کمک می کند تا قوانین iptables را در پرونده ها ذخیره کنید /etc/iptables/rules.v4
و /etc/iptables/rules.v6
پس از راه اندازی مجدد سیستم می توانید آنها را به طور خودکار بارگیری کنید. فقط آن را با موارد زیر نصب کنید.
apt-get install iptables-persistent
YES
وقتی از شما خواسته شد انتخاب کنید .
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
مقدمه Docker برنامه ای است که به ما امکان می دهد برنامه هایی را که به صورت ظروف اجرا می شوند مستقر کنیم. این متن با زبان محبوب برنامه نویسی Go نوشته شده است
با استفاده از یک سیستم متفاوت؟ Docker برنامه ای است که امکان استقرار نرم افزار در ظروف مجازی را فراهم می آورد. در برنامه نویسی Go نوشته شده است
با استفاده از یک سیستم متفاوت؟ مقدمه Rancher یک بستر منبع باز برای اجرای ظروف و ساخت سرویس کانتینر خصوصی است. رانچر پایه است
برنامه های PHP معمولاً توسط یک سرور ، یک سیستم پایگاه داده رابطه و خود مفسر زبان تشکیل می شوند. در این آموزش leveragin خواهیم بود
در این مقاله نحوه نصب 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 را اجرا می کند.
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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد