Introduzione con i grafici dei timoni di Kubernetes

Introduzione con i grafici dei timoni di Kubernetes

Iniziare con le classifiche dei timoni

Helm rende Kubernetes più intuitivo. È un gestore dei pacchetti. I grafici del timone semplificano la progettazione, l'installazione e l'aggiornamento di un'applicazione Kubernetes. Gestiscono la complessità per rendere ripetibile il processo di installazione. Gli utenti sono facilmente in grado di aggiornare e condividere i loro progetti. Inoltre, Helm ha una funzione di rollback per tornare facilmente alle versioni.

Struttura del grafico del timone

Con il comando Crea, Helm fornisce una struttura predeterminata per garantire uno standard.

Ciao mondo
├── grafico.Yaml
├── grafici
├ impegnati
│ ├−─ Note.TXT
│ ├── _Helpers.TPL
│ ├── distribuzione.Yaml
│ ├── Ingress.Yaml
│ └ Questo servizio.Yaml
└── valori.Yaml

I file sopra verranno generati automaticamente. Helm utilizza il formato YAML per i file di configurazione.

Invocando il timone

Per usare il timone, avrai bisogno delle seguenti cose:

  • Un cluster Kubernetes (Minikube fornisce un modo semplice per eseguire Kubernetes)
  • Installa Helm and Tarter, il componente lato server.

(Assicurati che le versioni Minikube e Tiller siano compatibili con il cluster Kubernetes)

Una volta installati tutti i componenti, inizia il minikube:

$ Minikube inizi

Dovrai anche utilizzare il seguente comando per inizializzare il timone e il timone:

$ Helm init

Successivamente, utilizzare il seguente comando timone per creare la struttura sopra descritta:

$ HELM Crea Hello-World

Scrivere la tua prima carta da timone

Controlliamo lo stato dei pod:

$ kubectl ottieni pod-tutti i namespaces
Nome Space Nome Ready Status Riavvia l'età
Kube-System Kube-Addon-Manager-Minikube 1/1 in esecuzione 2 1H
kube-sistema kube-dns-54cccfbdf8-xcltd 3/3 in esecuzione 6 1H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 in esecuzione 2 1H
Kube-System Storage-Provisioner 1/1 in esecuzione 2 1H
Kube-System Taller-Deploy-59D854595C-97HDP 1/1 in esecuzione 2 1H

Il baccello di Tiller e i baccelli minikube sono in esecuzione. Facciamo alcune modifiche ai grafici del timone. Apriremo il valore.YML. Sembra questo:

# Valori predefiniti per Hello-World.
# Questo è un file di formattazione YAML.
# Dichiarare le variabili da passare nei tuoi modelli.
replicacount: 1
Immagine:
Repository: Heroku/Nodejs-Hello-World
Tag: stabile
pullpolicy: ifnotpresent
servizio:
Tipo: clusterip
Porta: 80
ingresso:
Abilitato: falso
Annotazioni:
# Kubernetes.io/ingresso.Classe: nginx
# Kubernetes.io/tls-acme: "vero"
sentiero: /
ospiti:
- Esempio di grafico.Locale
TLS: []
#-SecretName: Chart-Example-TLS
# host:
# - Esempio di grafico.Locale
Risorse:
# Di solito consigliamo di non specificare le risorse predefinite e di lasciarlo come un consapevole
# Scelta per l'utente. Ciò aumenta anche i grafici delle occasioni eseguiti su ambienti con poco
# Risorse, come Minikube. Se si desidera specificare le risorse, non
# linee, regolarle se necessario e rimuovere le parentesi graffe dopo "risorse:".
# Limiti:
# CPU: 100m
# Memoria: 128mi
# Richieste:
# CPU: 100m
# Memoria: 128mi
nodeselector:
tollerazioni: []
Affinità:

La linea evidenziata è stata cambiata. Invece di Nginx, scaricheremo HeroKu/Nodejs-Hello-World. È possibile impostare i valori predefiniti in questo valore.File YML. Saranno condivisi con altri file.

Se controlliamo il timone, non vediamo nulla:

$ Helm LS

Iniziamo la tabella del timone:

$ Helm Installa Hello-World
Nome: Kissing-Markhor
Ultimo schieramento: ven 9 marzo 09:13:04 2018
Spazio dei nomi: impostazione predefinita
Stato: distribuito
Risorse:
==> v1/servizio
Nome Tipo Cluster-IP Porte esterne-IP / i Età
Kissing-Markhor-Hello-World Clusterip 10.110.109.73 80/TCP 1S
==> v1beta2/distribuzione
Nome desiderato Età disponibile aggiornata
Kissing-Markhor-Hello-World 1 1 1 0 1s
==> v1/pod (correlato)
Nome Ready Status Riavvia l'età
bacio-markhor-hello-world-6bbb947b9c-rttnz 0/1 contenitore creazione 0 1s
APPUNTI:
APPUNTI:
1. Ottieni l'URL dell'applicazione eseguendo questi comandi:
esporta pod_name = $ (kubectl otter pods --Namespace default -l "app = hello -world, rilascio = bacio
-Markhor "-o jsonpath =" .Articoli [0].metadati.nome")
Echo "Visita http: // 127.0.0.1: 8080 per utilizzare l'applicazione "
Kubectl Port-forward $ pod_name 8080: 80

La parte evidente è il "nome". Questo nome è stato generato da Helm.

Controlliamo il timone:

$ Helm LS
Nome Revision Aggiornato Stato Spazio Spazio dei nomi
Kissing-Markhor 1 Ven 9 marzo 09:13:04 2018 schierata Hello-World-0.1.0 Predefinito

Anche Kubernetes:

$ kubectl ottieni pod-tutti i namespaces
Nome Space Nome Ready Status Riavvia l'età
bacio predefinito bacio-markhor-hello-world-6bbb947b9c-rttnz 1/1 in esecuzione 0 5m
kube-sistema kube-addon-manager-minikube 1/1 in esecuzione 2 2h
kube-sistema kube-dns-54cccfbdf8-xcltd 3/3 in esecuzione 6 2h
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 in esecuzione 2 2h
Kube-System Storage-Provisioner 1/1 in esecuzione 2 2h
Kube-System Taller-Deploy-59D854595C-97HDP 1/1 in esecuzione 2 2h

Quindi il pod è stato distribuito su Kubernetes. Possiamo usare il port forwarding:

$ Kubectl Port-forward Kissing-Markhor-Hello-World-6bb947B9C-RTTTNZ 8080: 80

Ora dovresti essere in grado di controllare l'applicazione distribuita.

$ CURL http: // 127.0.0.1: 8080



Benvenuti a nginx!



Benvenuti a nginx!


Se vedi questa pagina, il server Web Nginx viene installato correttamente e
lavorando. È richiesta un'ulteriore configurazione.


Per documentazione e supporto online, fare riferimento a
nginx.org.

Il supporto commerciale è disponibile su
nginx.com.


Grazie per aver usato Nginx.



In alternativa, puoi controllare http: // 127.0.0.1: 8080 per vedere l'applicazione appena creata. Insermiamoci. Trova il nome del server:

$ Helm LS
Nome Revision Aggiornato Stato Spazio Spazio dei nomi
Kissing-Markhor 1 Ven 9 marzo 09:13:04 2018 schierata Hello-World-0.1.0 Predefinito

Usa il comando seguente per eliminare:

$ Helm Elimina baci-markhor
Rilascia "Kissing-Markhor" eliminato

Controlliamo il cluster:

$ kubectget pod-all-namespaces
Nome Space Nome Ready Status Riavvia l'età
kube-sistema kube-addon-manager-minikube 1/1 in esecuzione 2 2h
kube-sistema kube-dns-54cccfbdf8-xcltd 3/3 in esecuzione 6 2h
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 in esecuzione 2 2h
Kube-System Storage-Provisioner 1/1 in esecuzione 2 2h
Kube-System Taller-Deploy-59D854595C-97HDP 1/1 in esecuzione 2 2h

Possiamo vedere che il bacio del marker è sparito.

Conclusione

Quanto sopra dovrebbe darti l'ispirazione per iniziare a usare le classifiche del timone. Dovrebbe facilitare la gestione delle tue distribuzioni Kubernetes.

Riferimenti:

  • timone.sh/
  • Documenti.Bitnami.com/kubernetes/how-to/create-your-first-helm-chart/
  • https: // docs.timone.SH/Uso_Helm/
  • Costruire grafici dei timoni da zero: un'introduzione a Kubernetes [i] - Amy Chen, Heptio
  • Distribuzione dell'app Nodejs su Kubernetes usando HELM | Episodio 3