CUM SA

Cum să începeți cu DevSpace și să dezvoltați rapid aplicații Kubernetes – CloudSavvy IT

DevSpace este un instrument open-source care îi ajută pe dezvoltatori să implementeze rapid aplicații native din cloud în clusterele Kubernetes. Abstrage o mare parte din complexitatea tradițională Kubernetes, astfel încât să puteți reveni la scrierea codului.

DevSpace este independent de platformă și funcționează cu clustere, de la mașina dvs. locală la serviciile publice gestionate populare. Instrumentul este un CLI care automatizează operațiunile folosind API-urile Kubernetes. Nu trebuie să instalați nimic în cluster pentru a utiliza DevSpace.

Practici moderne de dezvoltare pentru Kubernetes

DevSpace aduce multe aspecte ale experienței moderne de programare a aplicațiilor pentru implementările bazate pe Kubernetes. Vă permite să rulați mediul de dezvoltare pe cluster cu suport pentru reîncărcarea automată la cald. Când un fișier local se modifică, DevSpace vă actualizează automat containerele cu noul conținut.

Redirecționarea portului încorporată înseamnă că puteți utiliza localhost pentru a vă accesa implementarea. Nu trebuie să deschideți porturi sau să configurați intrări HTTP pe clustere de dezvoltare, oferind o experiență îmbunătățită pentru dezvoltatori și o securitate mai mare.

O diagramă care arată fluxul de lucru DevSpace
DevSpace

DevSpace ajută și la depanare. Acceptă setarea punctelor de întrerupere folosind un instrument Remote Debugger, oferind inspecție live a aplicațiilor containerizate în cloud. De asemenea, este ușor să vizualizați jurnalele unui container sau să începeți o sesiune de terminal fără a rula comenzi Kubectl greoaie.

O interfață web care rulează localhost vă permite să monitorizați și să interacționați cu aplicația care rulează. Puteți scăpa de terminalul dvs. dacă preferați o experiență mai vizuală.

Instalarea DevSpace

DevSpace este distribuit ca un binar autonom care funcționează pe sistemele Windows, Mac și Linux. Sunt disponibile mai multe opțiuni de instalare. Iată comanda recomandată pentru a descărca DevSpace pentru Linux și pentru a adăuga CLI în calea dvs.:

dev
sudo install devspace /usr/local/bin

Alternativ, puteți utiliza npm, managerul de pachete Node, pentru a instala și actualiza DevSpace:

npm install -g devspace

Această comandă vă va oferi o funcționare devspace în calea dvs., cu condiția să aveți deja instalat npm.

DevSpace folosește „activ”KUBE_CONTEXT” în același mod ca și alte instrumente ecosistemice precum Kubectl și Helm. A stabilit KUBECONFIG la un fișier de configurare compatibil Kubectl care definește conexiunea la cluster:

export KUBECONFIG=/path/to/kubeconfig.yaml

# Uses $KUBECONFIG
devspace deploy

Crearea unui proiect

Primul pas în construirea cu DevSpace este să inițializați directorul de proiect. Aceasta va crea un devspace.yaml fișier care conține configurația DevSpace pentru depozitul dvs.

devspace init

Vi se va solicita să selectați rutina de implementare pe care intenționați să o utilizați. DevSpace poate funcționa cu Kubectl, Helm sau Kustomize atunci când lansați aplicația în cluster.

Captură de ecran a "devspace init" comanda

Cel sugerat QUICKSTART opțiunea este o diagramă specială care vă permite să definiți componente ale aplicației dvs., cum ar fi serverul web frontend, serverul API backend și baza de date, în loc să furnizați diagrame Helm sau manifeste Kubectl create manual. Utilizați acest lucru dacă construiți un sistem cu o structură convențională și nu doriți să petreceți timp creând propriile resurse Kubernetes.

Citeste si  Cum să vă ascultați Amazon Echo pentru sunete specifice

Urmați instrucțiunile pentru a furniza DevSpace calea către fișierul dvs. Docker. Va trebui să furnizați autentificarea de registry și câteva informații de bază despre imaginea dvs., cum ar fi portul pe care ascultă. DevSpace va produce automat o configurație gata de utilizare care vă permite să rulați devspace deploy pentru a vă pune aplicația live pe Kubernetes.

Dacă nu utilizați opțiunea de pornire rapidă, va trebui să furnizați calea către diagramele Helm sau manifestele Kubernetes. Urmați instrucțiunile pentru a construi o configurație inițială. Odată ce ați ieșit din asistentul de configurare, puteți continua să adăugați imagini și implementări suplimentare, editând manual devspace.yaml fişier.

Adăugarea unei imagini

Proiectele DevSpace sunt construite din una sau mai multe imagini container. Pentru a înregistra o imagine în proiectul dvs., adăugați-o sub images cheia dvs devspace.yamlfişier:

images:
  app:
    image: example.com/example/image:latest
    dockerfile: ./Dockerfile
    build:
      disabled: true

The image câmpul definește numele etichetei imaginii. The dockerfile câmpul este opțional; când este setat, ar trebui să facă referire la calea către fișierul Docker al imaginii din proiectul dvs. Imaginile cu Dockerfiles vor fi create automat de către devspace build și devspace deploy comenzi, cu excepția cazului în care build.disabled este true în configurația imaginii.

Imaginile sunt construite în paralel pentru a accelera performanța. The --build-sequential flag obligă imaginile să fie construite individual, în ordinea în care sunt specificate. DevSpace va împinge automat fiecare imagine în registrul respectiv după ce se finalizează construcția.

Imaginile nu sunt reconstruite automat decât dacă DevSpace detectează o modificare fie în fișierul Dockerfile, fie în fișierele din contextul lor de construcție. Puteți forța o reconstrucție a tuturor imaginilor configurate cu ajutorul --force-build steag.

Adăugarea unei implementări

A doua bucată din a devspace.yaml este al tau deployments. Acestea definesc resursele care vor fi create în clusterul dumneavoastră.

deployments:
  - name: "helm chart"
    helm:
      chart:
        name: example/example-app
      values:
        VARIABLE_OVERRIDE: "new-value"
  - name: "kubectl manifests"
    kubectl:
      manifests:
        - .kube/manifests

Acest fișier definește două implementări separate, una folosind Helm și cealaltă Kubectl. Când alergi devspace deploy, atât diagrama Helm, cât și manifestele Kubectl vor fi instalate în cluster.

Repetând deploy comanda vă va actualiza implementările. DevSpace redistribuie numai componentele care s-au modificat, cu excepția cazului în care --force-deploy este folosit steag.

Deoarece DevSpace funcționează în clustere, promovarea implementării dvs. de la dezvoltare la producție este un caz de schimbare a dvs. KUBECONFIG variabilă de mediu și reluare devspace deploy. Acest lucru vă oferă un singur mecanism consistent pentru gestionarea mai multor implementări independente ale sistemului dumneavoastră.

Utilizarea profilurilor

DevSpace acceptă profiluri care vă permit să modificați devspace.yaml secțiuni pentru fiecare dintre mediile dvs. Fiecare profil numit poate înlocui, îmbina și modifica câmpuri din fișierul dvs. de configurare.

Citeste si  Cum să lucrați cu panoul Widget Windows 11

Profilurile în sine sunt, de asemenea, definite în dvs devspace.yaml:

images:
  api-server:
    image: example.com/api-server:latest
  web-server:
    image: example.com/web-server:latest
  debug:
    image: example.com/debug-tool:latest
# ... omitted
profiles:
  - name: production
    patches:
      - op: remove
        path: images.debug

Profilurile sunt activate prin trecerea -p sau --profile marcați comenzile DevSpace. Iată cum să începeți o implementare folosind production profil definit mai sus. Implementarea nu va include debug imaginea, deoarece este eliminată de unul dintre patch-urile profilului.

devspace deploy --profile production

Folosind Hot Reload

Funcționalitatea de reîncărcare la cald este activată prin setarea sincronizării fișierelor:

dev:
  sync:
    - imageSelector: example.com/api-server:latest
      localSubPath: ./api/
      containerPath: /var/www/html
      excludePaths:
        - vendor/

Adaugă dev cheie ca un câmp de nivel superior în dvs devspace.yaml, apoi utilizați sync pentru a configura reîncărcarea la cald pe bază de imagine. The imageSelector potrivește etichetele de imagine pentru a aplica regula de reîncărcare la cald. Fișiere de la localSubPath din directorul dvs. de lucru va fi sincronizat cu containerPath în cazurile de containere implementate.

Porniți o sesiune de reîncărcare la cald rulând devspace dev sau devspace sync. Prima comandă pornește toate caracteristicile mediului DevSpace pentru dezvoltatori, inclusiv redirecționarea portului și fluxul de jurnal în direct.

Reîncărcarea la cald este implicit înlocuirea fișierelor din containerele existente. Este similar cu utilizarea volumelor Docker și a monturilor de legare atunci când lucrați cu instanțe de containere locale. În unele scenarii, este posibil să doriți să începeți o nouă implementare DevSpace atunci când sistemul dvs. de fișiere se schimbă. Acest lucru se realizează prin intermediul separat autoReload opțiune:

images:
  api:
    image: example.com/api-server:latest
deployments:
  - name: api-deployment
  # ... omitted
dev:
  autoReload:
    paths:
      - ./kernel/*
    images:
      - example.com/api-server:latest
    deployments:
      - api-deployment

Acest exemplu va fi redistribuit api-deployment ori de câte ori fișiere în local kernel schimbarea directorului. Acest lucru este ideal atunci când modificați fișierele care trebuie rulate printr-un proces de compilare pentru a le face utile pentru containerele dvs.

Port forwarding

Redirecționarea portului este configurată prin intermediul dev.ports câmp din dvs devspace.yaml. Redirecționarea inversă este, de asemenea, acceptată, permițând localhost adresele din containerele dvs. se mapează la porturile de pe mașina dvs. locală.

dev:
  ports:
    - imageSelector: example.com/api-server:latest
      forward:
        - port: 8080
          remotePort: 80
      reverseForward:
        - port: 9000
          remote: 9000

Acest exemplu setează un forward de la localhost:8080 pe mașina dvs. la portul 80 în containere care rulează example.com/api-server imagine. Există, de asemenea, o inversare înainte care direcționează traficul în container localhost:9000 înapoi la portul 9000 al mașinii dvs.

Alte caracteristici

Pe lângă capabilitățile acoperite aici, DevSpace oferă și suport pentru alte câteva grupuri de caracteristici care vă permit să monitorizați implementările, să interacționați cu containerele și să configurați fluxuri de lucru avansate de dezvoltare:

  • Lansări automate ale terminalelor vă permite să începeți o sesiune shell de la distanță de fiecare dată când rulați devspace dev.
  • Deschidere automată a adresei URL pornește site-uri web și aplicații web în browser când intrați în modul de dezvoltare.
  • Înregistrare configurabilă definește ce containere ar trebui să apară în fluxul de jurnal în modul dev.
  • Comenzi personalizate acționează ca comenzi rapide către acțiuni comune, ajutând noii membri ai echipei să interacționeze cu implementările tale fără a fi nevoie să învețe procese îndelungate în Kubectl.
  • Cârlige rulați comenzi în timpul procesului de implementare, permițându-vă să configurați manual containerele sau să înregistrați noi implementări la un serviciu de monitorizare centralizat.
  • Interfața cu utilizatorul rulează automat în modul de dezvoltare cu devspace dev și poate fi deschis în browser folosind devspace ui.

DevSpace oferă, de asemenea, pluginuri care pot adăuga și mai multe funcționalități sistemului. API-ul pluginului acceptă instalarea de la adrese URL la distanță sau scripturi locale și facilitează noi comenzi, cârlige și variabile. Dezvoltarea propriului plugin oferă o modalitate de a standardiza utilizarea DevSpace în mai multe proiecte independente.

Citeste si  Cum să ascundeți anunțurile sensibile pe YouTube

Implementări în conducte CI/CD

DevSpace poate gestiona implementările de producție ca parte a conductei CI/CD. Oferă o imagine oficială Docker și acceptă utilizarea non-interactivă dacă includeți selectoare explicite, cum ar fi -l pentru etichetă în comenzile dvs.

O implementare în interiorul unei conducte CI ar putea arăta astfel:

echo $KUBECONFIG_CI_VARIABLE > /path/to/kubeconfig
export KUBECONFIG=/path/to/kubeconfig
devspace deploy --profile production --timeout 60 --wait --skip-build

Aceasta va implementa aplicația dvs. folosind production Profil DevSpace. The --skip-build flag indică DevSpace să nu construiască imaginile dvs. Construcțiile ar trebui de obicei tratate ca o etapă separată mai devreme în pipeline.

The --wait flag forțează DevSpace să aștepte disponibilitatea numărului de pod specificate în dvs devspace.yaml, în loc să se încheie imediat după ce executați comanda. Acest lucru este mai potrivit pentru un mediu CI în care doriți confirmarea faptului că volumul de lucru este activ. Permiterea lui DevSpace să iasă fără a aștepta ar putea însemna ca conducta dvs. să fie marcată ca reușită, chiar dacă există o problemă de implementare.

Concluzie

DevSpace câștigă teren ca instrument de implementare Kubernetes orientat către dezvoltatori, care oferă abstracții utile pentru operațiunile cheie. Reduce cantitatea de YAML necesară pentru a lansa containere într-un cluster, înlocuindu-l cu chei de configurare simple și comenzi de terminal care definesc, construiesc și pornesc imagini.

Interfața de utilizare DevSpace
DevSpace

Fiind un instrument independent de platformă și mediu, DevSpace permite dezvoltatorilor să-și facă mai puține griji cu privire la caracteristicile unice ale clusterelor individuale. Indiferent de ținta de implementare, experiența generală este similară cu construirea unui sistem tradițional pe mașina dvs. locală. Acest lucru ajută la atenuarea curbei de învățare Kubernetes prin maparea conceptelor înapoi la practicile de dezvoltare înțelese mai universal.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Back to top button