Komme i gang med Kubernetes Helm -diagrammer

Komme i gang med Kubernetes Helm -diagrammer

Komme i gang med rorkart

Helm gjør Kubernetes mer brukervennlig. Det er en pakkebehandler. Helmdiagrammer gjør det lettere å designe, installere og oppgradere en Kubernetes -applikasjon. De administrerer kompleksiteten for å gjøre installasjonsprosessen gjentatt. Brukere kan lett oppdatere og dele designene sine. Helm har også en tilbakevendingsfunksjon for enkelt å gå tilbake til ordreversjoner.

Høyrekartstruktur

Med CREATE -kommandoen gir Helm en forhåndsbestemt struktur for å sikre en standard.

Hei Verden
├── diagram.Yaml
├── diagrammer
├── maler
│ ├── Merknader.tekst
│ ├── _helpers.tpl
│ ├── distribusjon.Yaml
│ ├── inntrengning.Yaml
│ └── service.Yaml
└── Verdier.Yaml

Filene ovenfor vil være automatisk generert. Helm bruker YAML -format for konfigurasjonsfiler.

Påkalle ror

For å bruke roret, trenger du følgende ting:

  • En Kubernetes -klynge (Minikube gir en enkel måte å kjøre Kubernetes)
  • Installer ror og rorkult, serversiden komponent.

(Forsikre deg om at Minikube- og Tiller -versjonene er kompatible med Kubernetes -klyngen)

Når du har alle komponentene installert, start Minikube:

$ Minikube Start

Du må også bruke følgende kommando for å initialisere ror og rorkult:

$ Helm Init

Deretter bruker du følgende roret -kommando for å lage strukturen beskrevet ovenfor:

$ ror Create Hello-World

Skrive det første rorkartet ditt

La oss sjekke statusen til belgene:

$ Kubectl Get Pod-ALL-NAMESPACES
Navneområdet Navn Klar status Start på nytt
kube-system kube-addon-manager-minikube 1/1 løping 2 1H
kube-system kube-dns-54cccfbdf8-xcltd 3/3 løping 6 1H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Løping 2 1H
Kube-System Storage-Provisioner 1/1 Kjør 2 1H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Kjør 2 1H

Tiller Pod og Minikube Pods kjører. La oss gjøre noen endringer i Helm -diagrammer. Vi kommer til å åpne verdien.yml. Det ser slik ut:

# Standardverdier for Hello-World.
# Dette er en YAML-formatert fil.
# Forklar variabler som skal sendes inn i malene dine.
ReplicaCount: 1
bilde:
depot: Heroku/Nodejs-Hello-World
Tag: Stabil
pullpolicy: ifnotpresent
service:
Type: Clusterip
Port: 80
inntrengning:
Aktivert: Falsk
Merknad:
# Kubernetes.IO/Ingress.Klasse: Nginx
# Kubernetes.IO/TLS-ACME: "True"
Sti: /
verter:
- Karteksempel.lokal
TLS: []
#-SecretName: Chart-Example-TLS
# verter:
# - Karteksempel.lokal
Ressurser:
# Vi anbefaler vanligvis ikke å spesifisere standardressurser og å forlate dette som en bevisst
# valg for brukeren. Dette øker også sjansediagrammer som kjøres på miljøer med lite
# Ressurser, for eksempel Minikube. Hvis du ønsker å spesifisere ressurser, må du følge følgende
# linjer, juster dem etter behov, og fjern de krøllete seler etter 'ressurser:'.
# grenser:
# CPU: 100m
# minne: 128mi
# forespørsler:
# CPU: 100m
# minne: 128mi
Nodeselector:
Tolerasjoner: []
affinitet:

Den fremhevede linjen er endret. I stedet for Nginx, skal vi laste ned Heroku/Nodejs-Hello-World. Du kan angi standardverdiene i denne verdien.YML -fil. De vil bli delt med andre filer.

Hvis vi sjekker roret, ser vi ikke noe:

$ ror ls

La oss starte Helm -diagrammet:

$ ror install Hello-World
Navn: Kissing-Markhor
Sist utplassert: fre 9. mars 09:13:04 2018
Navnområde: standard
Status: distribuert
Ressurser:
==> V1/Service
Navn Type Cluster-IP Ekstern-IP-port (er) alder
Kissing-Markhor-Hello-World Clusterip 10.110.109.73 80/TCP 1s
==> V1beta2/distribusjon
Navn ønsket strøm oppdatert tilgjengelig alder
Kyssing-Markhor-Hello-World 1 1 1 0 1s
==> v1/pod (relatert)
Navnet klar status starter alderen på nytt
Kissing-Markhor-Hello-World-6BBB947B9C-RTTNZ 0/1 ContainerCreating 0 1S
Merknader:
Merknader:
1. Få applikasjons -URL ved å kjøre disse kommandoene:
Eksport POD_NAME = $ (Kubectl Get Pods -Namespace standard -L "App = Hello -World, Release = Kyssing
-Markhor "-o jsonpath =" .elementer [0].metadata.Navn")
ekko "Besøk http: // 127.0.0.1: 8080 for å bruke søknaden din "
Kubectl Port-Forward $ POD_NAME 8080: 80

Den merkbare delen er "navnet". Dette navnet ble generert av roret.

La oss sjekke roret:

$ ror ls
Navn Revisjon Oppdatert statusdiagram
Kissing-Markhor 1 fre 9. mars 09:13:04 2018 distribuert Hello-World-0.1.0 standard

Også Kubernetes:

$ Kubectl Get Pod-ALL-NAMESPACES
Navneområdet Navn Klar status Start på nytt
Standard Kissing-MarkHor-Hello-World-6BBB947B9C-RTTNZ 1/1 Kjør 0 5M
kube-system kube-addon-manager-minikube 1/1 løping 2 2 t
kube-system kube-dns-54cccfbdf8-xcltd 3/3 løping 6 2h
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Løping 2 2H
Kube-System Storage-Provisioner 1/1 Kjør 2 t
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Løping 2 2H

Så poden har blitt distribuert til Kubernetes. Vi kan bruke portvideresending:

$ Kubectl Port-Forward Kissing-Markhor-Hello-World-6BBB947B9C-RTTNZ 8080: 80

Nå skal du kunne sjekke den distribuerte applikasjonen din.

$ krøll http: // 127.0.0.1: 8080



Velkommen til nginx!



Velkommen til nginx!


Hvis du ser denne siden, er Nginx -webserveren vellykket installert og
arbeider. Ytterligere konfigurasjon er nødvendig.


For online dokumentasjon og støtte, se
nginx.org.

Kommersiell støtte er tilgjengelig kl
nginx.com.


Takk for at du bruker Nginx.



Alternativt kan du sjekke http: // 127.0.0.1: 8080 for å se den nyopprettede applikasjonen. La oss rydde opp. Finn servernavnet:

$ ror ls
Navn Revisjon Oppdatert statusdiagram
Kissing-Markhor 1 fre 9. mars 09:13:04 2018 distribuert Hello-World-0.1.0 standard

Bruk følgende kommando for å slette:

$ Helm Delete Kissing-Markhor
Slipp "Kissing-Markhor" slettet

La oss sjekke klyngen:

$ kubectget pod-alle navnene
Navneområdet Navn Klar status Start på nytt
kube-system kube-addon-manager-minikube 1/1 løping 2 2 t
kube-system kube-dns-54cccfbdf8-xcltd 3/3 løping 6 2h
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Løping 2 2H
Kube-System Storage-Provisioner 1/1 Kjør 2 t
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Løping 2 2H

Vi kan se kyssemarkøren Pod er borte.

Konklusjon

Ovennevnte skal gi deg inspirasjon til å begynne å bruke rorkart. Det skal gjøre Kubernetes -distribusjonene dine lettere å håndtere.

Referanser:

  • ror.sh/
  • Dokumenter.Bitnami.com/Kubernetes/How-To/Create-Your-First-Helm-Chart/
  • https: // dokumenter.ror.sh/bruk_helm/
  • Bygge rorkart fra grunnen av: En introduksjon til Kubernetes [i] - Amy Chen, Heptio
  • Distribusjon av NodeJS -app til Kubernetes ved hjelp av Helm | Episode 3