Implementați Kubernetes cu Kubeadm pe CentOS 7
Prezentare generală Acest articol este menit să vă ajute să obțineți un cluster Kubernetes și să funcționeze cu kubeadm în cel mai scurt timp. Acest ghid va implementa două servere, pe
Containerele LXC (containere Linux) sunt o caracteristică a sistemului de operare în Linux care poate fi utilizată pentru a rula mai multe sisteme Linux izolate pe o singură gazdă.
Aceste instrucțiuni vă vor parcurge pașii de bază ai configurației serverului pentru găzduirea containerelor Linux izolate. Vom configura următoarele caracteristici:
ssh [email protected]
șissh [email protected]
Acest ghid presupune că:
La sfârșitul tutorialului vom primi două containere virtuale care vor avea acces la internet, dar care nu se pot juca unii pe alții. De asemenea, vom configura redirecționarea porturilor de example.com
la containere. Vom implementa panoul de configurare și de gestionare securizat cu ajutorul instrumentelor din pachetul Proxmox.
Vom folosi Proxmox numai pentru gestionarea containerelor LXC. În general, acceptă și KVM, dar virtualizarea cuibărită este interzisă pe Vultr. Înainte de a începe, un Proxmox ISO ar trebui descărcat de pe site-ul oficial. Vom folosi Proxmox VE 5.0 ISO Installer
. Instalați sistemul de operare din imagine cu setări implicite și reporniți mașina virtuală. De asemenea, puteți instala manual proxmox din surse, dar acest lucru nu este necesar în majoritatea cazurilor (urmați instrucțiunile de aici ).
Conectați-vă la gazdă prin SSH, actualizați lista de șabloane proxmox și descărcați un șablon adecvat pentru containere.
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
Acum, trebuie să creăm un container linux cu interfață de rețea conectată la un pod linux. Deschideți /etc/network/interfaces
și adăugați următoarele rânduri:
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
După repornirea sistemului, puteți crea un nou container din Ubuntu 14.04
șablon.
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
Puteți verifica containerul folosind pct list
, porniți containerul # 200 cu pct start 200
și introduceți shell-ul cu pct enter 200
. Puteți verifica, de asemenea, setările și adresele de rețea ip addr
.
Pentru a furniza conexiune la internet în interiorul containerului dvs., trebuie să activăm NAT
. Următoarele vor permite redirecționarea traficului din container către internet cu ajutorul tehnologiei NAT. vmbr0
Podul este conectat la interfața externă , iar vmbr1
podul este conectat la containerele.
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
Introduceți containerul cu pct enter 200
și configurați serverul web din interior.
apt-get update
apt-get install nginx
service nginx start
exit
Acum, trebuie să configuram Nginx pe serverul dvs. pentru a oferi site-uri web proxy în containere.
apt-get update
apt-get install nginx
Creați un nou fișier de configurare /etc/nginx/sites-available/box200
cu următorul conținut:
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 va proxy acum fiecare solicitare HTTP pentru server200.example.com
serverul dvs. către container cu IP 10.100.0.200. Activați această configurație.
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
Dacă doriți să oferiți un acces ușor la cutiile de nisip, trebuie să transmiteți sesiuni SSH în containere. Pentru a face acest lucru, creați un utilizator nou pe serverul dvs. root. Nu uitați să introduceți o parolă, alți parametri nu sunt necesari.
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
Copiați această cheie SSH și introduceți containerul pentru a adăuga cheia.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
Pe serverul dvs., adăugați următoarea linie la .ssh/authorized_keys
fișier.
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
Nu uitați să schimbați <YOUR SSH KEY>
cheia publică de domiciliu. În mod alternativ, puteți rula următoarele din linia de comandă.
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
Apoi, vă puteți conecta la cutia dvs. de nisip cu ssh.
`ssh box200@<your_server_IP>`
Este timpul să implementăm mai multe îmbunătățiri de securitate. În primul rând, vrem să schimbăm portul SSH implicit. Apoi vrem să ne protejăm pagina de gestionare Proxmox cu autentificare HTTP de bază.
nano /etc/ssh/sshd_config
Dezacord și schimbă linia
#Port 22
la
Port 24000
Reporniți ssh.
service ssh restart
Reconectați-vă la ssh cu noul port.
ssh root@<your_IP> -p 24000
Creați fișier /etc/default/pveproxy
.
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
Reporniți pveproxy
pentru ca modificările să aibă efect.
/etc/init.d/pveproxy restart
Configurați nginx (dacă nu ați făcut-o până acum).
apt-get install nginx
service nginx restart
Creați o configurație implicită în /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; }
}
Obțineți un certificat SSL valid și actualizați configurația nginx. De exemplu, acesta poate fi realizat cu ajutorul certificboxului și al cifrelor. Pentru mai multe informații, faceți clic aici .
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
Acum, configurația dvs. nginx ar trebui să arate așa (sau o puteți modifica manual după). Nu uitați să dezcomentați liniile ssl, auth și locație.
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
}
Creați un /etc/htpasswd
fișier utilizând generatorul Htpasswd .
nano /etc/nginx/htpasswd
Reporniți Nginx
service nginx restart
Acum puteți vedea consola de administrare pornită https://example.com
după autentificarea de bază.
Containerele sunt acum disponibile prin cereri HTTP și SSH. Acum, putem configura redirecționarea porturilor de pe serverul extern către containere. De exemplu, pentru mapare example.com:8080
să 10.100.0.200:3000
introduceți următoarele.
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
Puteți vedea regulile actuale.
`iptables -t nat -v -L PREROUTING -n --line-number`
Puteți șterge, de asemenea, o regulă după număr.
`iptables -t nat -D PREROUTING <#>`.
Acum putem accesa un container din altul.
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
Dacă doriți să restricționați accesul de la containerul 250 la 200, trebuie să conectați fiecare container la un pod personal și să dezactivați redirecționarea între poduri.
Ștergeți containerele existente.
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
Schimbați conținutul /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
sistemul
Activați redirecționarea
`sysctl -w net.ipv4.ip_forward=1`
Pentru a face aceste modificări permanente, puteți edita /etc/sysctl.conf
fișierul și găsiți următorul text.
#net.ipv4.ip_forward=1
Dezacordează-l.
net.ipv4.ip_forward=1
Puteți, de asemenea, sysctl -p
să alergați pentru ca modificările să aibă efect imediat.
Creați containere.
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
Porniți recipientele cu pct start 200
și pct start 250
.
Spălați iptables
regulile.
iptables -F
Activați NAT.
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
este podul care include interfața externă.
Permiteți redirecționarea de la interfața externă.
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
Permiteți redirecționarea de pe containere către internet.
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
Aruncați cealaltă înaintare.
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
Acum, verificați că 10.100.1.200
pot face ping, 8.8.8.8
dar nu pot face ping 10.100.2.250
și că 10.100.2.250
pot face ping, 8.8.8.8
dar nu pot face ping 10.100.1.200
.
Ordinea comenzilor legate de iptables este importantă. Cel mai bun mod de a-ți folosi regulile este să folosești iptables-persistent
. Acest pachet vă ajută să salvați regulile iptables la fișierele /etc/iptables/rules.v4
și /etc/iptables/rules.v6
și le poate încărca în mod automat după repornirea sistemului. Instalați-l doar cu următoarele.
apt-get install iptables-persistent
Selectați YES
când vi se solicită.
Prezentare generală Acest articol este menit să vă ajute să obțineți un cluster Kubernetes și să funcționeze cu kubeadm în cel mai scurt timp. Acest ghid va implementa două servere, pe
Rancher OS este o distribuție Linux foarte ușoară construită în jurul Docker. Sistemul de operare în sine cântărește în jur de 20 MB. Acest tutorial vă va pune în funcțiune
Introducere Docker este o aplicație care ne permite să implementăm programe rulate sub formă de containere. A fost scris în popularul limbaj de programare Go
Folosind un sistem diferit? Docker este o aplicație care permite implementarea software-ului în containerele virtuale. A fost scris în programul Go
Introducere Acest ghid vă va arăta cum puteți crea și configura un roi Docker folosind mai multe servere Alpine Linux 3.9.0 și Portainer. Vă rugăm să fi��i conștienți
Folosind un sistem diferit? Introducere Rancher este o platformă open source pentru rularea containerelor și construirea unui serviciu de containere private. Rancher este de bază
Aplicațiile PHP sunt de obicei compuse dintr-un server web, un sistem relațional de baze de date și însuși interpretul limbii. În acest tutorial vom fi levierul
Acest articol explică cum se instalează docker-compose pe CoreOS. În CoreOS, folderul / usr / este imutabil, astfel că calea standard / usr / local / bin nu este disponibilă fo
Folosind un sistem diferit? Introducere Rancher este o platformă open source pentru rularea containerelor și construirea unui serviciu de containere private. Rancher este de bază
Folosind un sistem diferit? Introducere Docker Swarm transformă serverele dvs. individuale într-un grup de calculatoare; facilitarea scalării și disponibilității ridicate
Cu ajutorul aplicației Vultr Docker, puteți să implementați cu ușurință Docker pe instanța serverului dvs. Vultr. Între timp, puteți facilita sarcina de gestionare a Docker
Cu toții cunoaștem și iubim Docker, o platformă pentru a crea, gestiona și distribui containerele de aplicații pe mai multe mașini. Docker Inc. oferă un serviciu
Folosind un sistem diferit? Introducere Sentry este o soluție open source pentru urmărirea erorilor. Sentry urmărește excepțiile și alte mesaje utile
Harbour este un server de registru open-source de tip enterprise care stochează și distribuie imagini Docker. Harbour extinde distribuția Docker sursa deschisă b
Prezentare generală RancherOS este un sistem de operare incredibil de ușor (doar aproximativ 60 MB) care rulează un sistem daemon Docker ca PID 0 pentru rularea serviciilor sistemului
Kubernetes este o platformă open-source dezvoltată de Google pentru gestionarea aplicațiilor containerizate într-un grup de servere. Se construiește peste un deceniu și
Folosind un sistem diferit? Introducere Docker Swarm transformă serverele dvs. individuale într-un grup de calculatoare, facilitând scalarea, disponibilitatea ridicată
Acest tutorial explică elementele de bază pentru a începe cu Docker. Presupun că aveți deja Docker instalat. Pașii acestui tutorial vor funcționa pe un an
Când executați o aplicație web, în mod normal doriți să profitați la maximum de resursele dvs. fără a fi necesar să convertiți software-ul pentru a utiliza multitreading
Condiții preliminare Motor Docker 1.8+. Minim de 4 GB spațiu pe disc. Minim de 4 GB RAM. Pasul 1. Instalează Docker Pentru a instala SQL-Server, Docker mus
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe