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
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 pentru găzduirea containerelor open source pentru a fi descărcate (sau trase) ca un depozit git cunoscut sub numele de „Registrul Docker”. Gândiți-vă la el ca la un GitHub pentru containerele Docker.
Dar dacă vrei să găzduiești propriul registru separat de cel public? Ei bine, Docker Inc. și-a aprobat cererea de înregistrare pe GitHub.
Acest tutorial vă va duce la procesul de configurare a unui registru Docker privat folosind CoreOS pe un VPS nou.
Nu vom petrece o grămadă de timp să trecem exact de ceea ce pot face Docker și CoreOS, întrucât este în afara domeniului de aplicare al acestui tutorial. În esență, CoreOS este proiectat pentru clustere masive de server, este mic, rapid și primește automat actualizări de securitate. Sistemul său de fișiere rădăcină este de asemenea numai în citire, ceea ce înseamnă că trebuie să utilizați Docker pentru a rula orice fel de software care nu este inclus cu instalarea de bază.
Acest lucru face din Core OS un sistem gazdă perfect pentru Docker!
Docker Inc. a furnizat Registrul ca imagine de nivel superior, ceea ce înseamnă că îl putem trage în jos cu un simplu:
docker pull registry
Acest lucru poate dura câteva minute în funcție de viteza de conectare.
Un plus de a fi o imagine de nivel superior înseamnă, de asemenea, că primește suport și actualizări periodice.
Acum să testăm registrul. Putem crea un nou container folosind imaginea registrului:
docker run -p 5000:5000 -d --name=basic_registry registry
Pentru cei care nu au folosit prea mult Docker, este indicat -p
steagul PORT
, ceea ce înseamnă că expunem portul 5000 din container pe portul 5000 gazdă.
-d
Steagul reprezintă daemon
, acest lucru va determina containerul pentru a rula în fundal și nu de imprimare de ieșire la sesiunea curentă SSH, dorim , de asemenea , pentru a numi acest container de bază de testare folosind --name
opțiunea , astfel încât să putem gestiona cu ușurință mai târziu.
Asigurați-vă că containerul dvs. de bază de bază se execută docker ps
. Produsul ar trebui să arate similar cu:
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
De asemenea, accesați http://YOUR_IP:5000
în browserul dvs. web și ar trebui să primiți un mesaj precum:
"docker-registry server (dev) (v0.8.1)"
Observați cuvântul
dev
în paranteză. Aceasta înseamnă că serverul execută în prezent configurația dev. În curând vom analiza mai multe configurații.
Acum aveți propriul dvs. registru de containere (foarte de bază) care funcționează! Dar nu am terminat încă.
Poate doriți să vă feriți de privirea asta, sau poate să vă stocați imaginile pe Amazon S3 în loc de stocare locală. Să trecem peste diferitele opțiuni de configurare din secțiunea următoare.
Înainte de a merge mai departe, să omorăm containerul de testare, astfel încât să nu intrăm în porturi conflictuale.
docker kill basic_registry
Există două modalități prin care putem trece configurația la Registrul Docker. Un mod este trecerea variabilelor de mediu la un nou container, iar cealaltă este adăugarea unui fișier de configurare.
Iată câteva dintre opțiunile comune de configurare pe care le vom folosi:
loglevel
- Cantitatea minimă de informații pentru a vă conecta la consolă. Implicit este info
.standalone
- Acest registru ar trebui să acționeze de unul singur? (Nu interoghează niciodată registrul public.) Default este true
.index_endpoint
- Dacă nu este autonom, ce alt index vom interoga? Implicit index.docker.io
.cache
și cache_lru
- Opțiuni referitoare la utilizarea unei cache Redis pentru fișiere mici, vom atinge acest lucru mai târziu.storage
- Ce backend de stocare ar trebui să folosim pentru acest server? (În acest tutorial vom folosi local).storage_path
- Dacă folosim spațiu de stocare local, ce director ar trebui să folosim pentru a păstra fișierele?Înainte de a lucra cu configurația, avem nevoie de un fișier de bază cu care să funcționăm. Fișierul din depozitul Docker Registry de pe GitHub va funcționa bine:
wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml
Fișierul ar trebui să salveze cu succes cu o ieșire, cum ar fi:
2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]
Grozav! Acum putem modifica acest fișier pentru a se potrivi nevoilor noastre.
Singurul editor de text care vine cu Core OS este vim
, dar nu vă faceți griji dacă nu l-ați folosit niciodată, acest lucru vă va explica pas cu pas ce trebuie să editați și cum să îl faceți.
vim config_sample.yml
Odată ce fișierul este deschis, apăsați I
în colțul din dreapta jos și trebuie să fie afișat: -- INSERT --
pentru modul de introducere. Parcurgeți până la partea de jos a fișierului folosind tastele săgeată, ar trebui să vedeți o secțiune etichetată prod
.
Vom schimba cele două rânduri, modificările sunt mai jos
prod:
<<: *local
storage_path: _env:STORAGE_PATH:/data
Ceea ce am făcut este să schimbăm prod
configurația pentru a deriva din local
secțiune în loc de s3
secțiune. Apoi rescriem storage_path
pentru a utiliza calea /data
din noul container.
După ce ați confirmat că toate modificările sunt corecte, apăsați ESC
pentru a ieși din modul și tipul de introducere :wq
(asta înseamnă să scrieți modificările în fișier și ieșiți din vim.)
Acum să redenumim fișierul doar config.yml
mv config_sample.yml config.yml
Dacă doriți să utilizați redis pentru a accelera registrul de containere, este la fel de simplu ca extragerea unui nou container din registrul public și adăugarea altor câteva linii de configurare.
În primul rând, trageți imaginea de nivel superior a Redis:
docker pull redis
Odată ce imaginea este trasă cu succes, o putem rula și numi așa cum am făcut-o cu registrul de testare:
docker run -d --name registry-redis redis
Deoarece redis este în memorie, nu trebuie să facem nicio configurație pentru aceasta, deoarece o vom conecta la containerul de registru în etapele ulterioare.
Încă o dată, asigurați-vă că funcționează folosind 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
Acum re-deschide config.yml
în vim
și introduceți modul de inserție la fel ca prima dată când am editat.
Adăugați următoarele linii sub prod
secțiune, asigurându-vă că indentați corect. De data aceasta adăugăm doar cache
și 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
Variabilele de mediu REDIS_PORT_6379_TCP_ADDR
și REDIS_PORT_6379_TCP_PORT
sunt transmise containerului de înregistrare la conectarea cu containerul Redis.
Cu aceasta, acum ați configurat un container Redis care va funcționa mână în mână cu containerul dvs. de înregistrare. Acum la construirea registrului!
Avem toată configurația setată și gata, acum trebuie să construim containerul de registru.
vim Dockerfile
Aprindeți- vă pentru a crea un nou Dockerfile. Accesați modul de introducere și urmați modificările de mai jos.
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
Ceea ce am făcut mai sus este, în esență, extinderea imaginii de registru, astfel încât va folosi fișierul de configurare și setările noastre. Un Dockerfile este un set de instrucțiuni de construire pentru ca Docker să citească și să creeze. Dacă doriți să aflați mai multe despre Dockerfiles și sintaxa lor, aruncați o privire la documentația oficială a site-ului Docker.
În continuare, trebuie să construim containerul pentru utilizare.
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
Acum suntem gata să alergăm!
Să facem un director pe sistemul nostru gazdă pentru a fi montat în container ca /data
volum.
mkdir registry-data
Acum putem roti un nou container. Dacă intenționați să folosiți memoria cache Redis, utilizați a doua comandă de mai jos.
# 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
Pentru a vă asigura că serverul dvs. rulează corect, vizitați http://YOUR_IP:5000
. Veți vedea următorul mesaj:
"docker-registry server (prod) (v0.8.1)"
Observați (prod)
sensul modificărilor noastre de configurare au avut succes!
Acum că avem propriul nostru registru de rulare, dorim ca clientul Docker de pe mașinile noastre locale să înceapă să-l folosească. De obicei, utilizați comanda: docker login
dar pentru utilizarea noastră, trebuie să adăugăm încă un argument la comanda de conectare:
docker login YOUR_IP:5000
Introduceți un nume de utilizator și o parolă (gândiți-vă la acest lucru precum crearea unui cont nou) și ignorați mesajul care afirmă că trebuie să îl activați.
În continuare, haideți să tragem o imagine stoc și să o împingem până la propriul nostru depozit.
# 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
Dacă totul împinge corect mesajul final ar trebui să fie conform liniei:
Pushing tag for rev [a9eb17255234] on
Felicitări! Ați configurat propriul dvs. depozit de docker.
Iată câteva idei despre cum să vă îmbunătățiți noul registru privat:
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
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