Introdução ao Kubernetes Helm Charts

Introdução ao Kubernetes Helm Charts

Introdução com gráficos de leme

Helm torna Kubernetes mais fácil de usar. É um gerente de pacotes. Os gráficos de compensação facilitam o design, a instalação e a atualização de um aplicativo Kubernetes. Eles gerenciam a complexidade para tornar o processo de instalação repetível. Os usuários podem facilmente atualizar e compartilhar seus designs. Além disso, Helm tem uma função de reversão para voltar facilmente às versões de pedido.

Helm Gráfico Estrutura

Com o comando create, o helm fornece uma estrutura predeterminada para garantir um padrão.

Olá Mundo
├── gráfico.Yaml
├── gráficos
├── modelos
│ ├── Notas.TXT
│ ├── _Helpers.tpl
│ ├── implantação.Yaml
│ ├── Ingressão.Yaml
│ └── Serviço.Yaml
└── valores.Yaml

Os arquivos acima serão gerados automaticamente. Helm usa o formato YAML para arquivos de configuração.

Invocando o comando

Para usar o comando, você precisará das seguintes coisas:

  • Um cluster de Kubernetes (Minikube fornece uma maneira simples de executar o Kubernetes)
  • Instale o leme e o leme, o componente do lado do servidor.

(Verifique se as versões Minikube e Tiller são compatíveis com o cluster Kubernetes)

Depois de instalar todos os componentes, inicie seu minikube:

$ minikube Iniciar

Você também precisará usar o seguinte comando para inicializar o leme e o leme:

$ helm init

Em seguida, use o seguinte comando HELM para criar a estrutura descrita acima:

$ Helm Create Hello-World

Escrevendo seu primeiro gráfico de comando

Vamos verificar o status dos pods:

$ KUBECTL Get Pod-All-NamesPaces
Nome do nome para nome Pronto Status Reinicia a idade
Kube-System Kube-Addon-Manager-Minikube 1/1 executando 2 1h
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 Running 6 1H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Running 2 1H
KUBE-SYSTEM-SISTEM-EMPRESSIONER 1/1 RUNDO 2 1H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 executando 2 1H

A cápsula do leme e as vagens do Minikube estão funcionando. Vamos fazer algumas alterações nos gráficos de leme. Vamos abrir o valor.yml. Se parece com isso:

# Valores padrão para Hello-World.
# Este é um arquivo formatado em YAML.
# Declare variáveis ​​a serem transmitidas para seus modelos.
REPLICACOUNT: 1
imagem:
Repositório: Heroku/Nodejs-Hello-World
Tag: estável
Pullpolicy: Ifnotpresent
serviço:
Tipo: Clusterip
Porta: 80
entrada:
ativado: false
Anotações:
# Kubernetes.io/Ingress.Classe: Nginx
# Kubernetes.io/tls-acme: "true"
caminho: /
anfitriões:
- Exemplo de gráfico.local
TLS: []
#-SecretName: gráfico-exemplo-tls
# hosts:
# - Exemplo de gráfico.local
recursos:
# Geralmente recomendamos não especificar recursos padrão e deixar isso como um consciente
# escolha para o usuário. Isso também aumenta os gráficos de chances são executados em ambientes com pouco
# Recursos, como Minikube. Se você deseja especificar recursos, descomentar o seguinte
# linhas, ajuste -as conforme necessário e remova os aparelhos encaracolados após 'Recursos:'.
# limites:
# CPU: 100m
# Memória: 128mi
# solicitações de:
# CPU: 100m
# Memória: 128mi
NodeseLector:
TOLERAÇÕES: []
afinidade:

A linha destacada foi alterada. Em vez de Nginx, vamos baixar o Heroku/Nodejs-Hello-World. Você pode definir os valores padrão neste valor.Arquivo YML. Eles serão compartilhados com outros arquivos.

Se verificarmos o comando, não vemos nada:

$ helm ls

Vamos começar o gráfico de comando:

$ Helm Install Hello-World
Nome: Kissing-Markhor
Última implantação: sex 9 de março 09:13:04 2018
Namespace: padrão
Status: implantado
RECURSOS:
==> v1/serviço
Nome Tipo de porta (s) da (s) idade (s) de IP de cluster-ip
Clusteripe 10 do mundo do mundo.110.109.73 80/TCP 1s
==> v1beta2/implantação
Nome desejado atual Atualização da idade disponível
beijo-markhor-hello-mundo 1 1 1 0 1s
==> v1/pod (relacionado)
Nome Pronto Status reinicia a idade
beijo-markhor-hello-world-6bbb947b9c-rttnz 0/1 containercreating 0 1s
NOTAS:
NOTAS:
1. Obtenha o URL do aplicativo executando esses comandos:
export pod_name = $ (kubectl get pods -namespace default -l "app = hello -world, release = beijo
-Markhor "-o jsonpath =" .Itens [0].Metadados.nome")
eco "Visite http: // 127.0.0.1: 8080 para usar seu aplicativo "
kubectl porta-forward $ pod_name 8080: 80

A parte perceptível é o "nome". Este nome foi gerado por leme.

Vamos verificar o leme:

$ helm ls
Nome Revisão do gráfico de status atualizado espaço de nome
Beijo-Markhor 1 sex 9 09:13:04 2018 implantado Hello-World-0.1.0 padrão

Também Kubernetes:

$ KUBECTL Get Pod-All-NamesPaces
Nome do nome para nome Pronto Status Reinicia a idade
Beição padrão-markhor-hello-world-6bbb947b9c-rttnz 1/1 executando 0 5m
Kube-System Kube-Addon-Manager-Minikube 1/1 executando 2 2h
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 executando 6 2H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Running 2 2H
KUBE-SYSTEM-SISTEM-EMSTRAISTOR 1/1 RUNDO 2 2H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 executando 2 2h

Então a vagem foi implantada para Kubernetes. Podemos usar o encaminhamento da porta:

$ kubectl Port-forward beijo-markhor-hello-world-6bbb947b9c-rttnz 8080: 80

Agora você deve poder verificar seu aplicativo implantado.

$ Curl http: // 127.0.0.1: 8080



Bem vindo ao nginx!



Bem vindo ao nginx!


Se você vir esta página, o servidor da web nginx será instalado com sucesso e
trabalhando. É necessária uma configuração adicional.


Para documentação e suporte online, consulte
nginx.org.

O suporte comercial está disponível em
nginx.com.


Obrigado por usar o nginx.



Como alternativa, você pode verificar http: // 127.0.0.1: 8080 para ver o aplicativo recém -criado. Vamos arrumar. Encontre o nome do servidor:

$ helm ls
Nome Revisão do gráfico de status atualizado espaço de nome
Beijo-Markhor 1 sex 9 09:13:04 2018 implantado Hello-World-0.1.0 padrão

Use o seguinte comando para excluir:

$ helm exclua beijo-markhor
Lançamento "Kissing-Markhor" excluído

Vamos verificar o cluster:

$ KUBECTGETGGET-todos os namespaces
Nome do nome para nome Pronto Status Reinicia a idade
Kube-System Kube-Addon-Manager-Minikube 1/1 executando 2 2h
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 executando 6 2H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Running 2 2H
KUBE-SYSTEM-SISTEM-EMSTRAISTOR 1/1 RUNDO 2 2H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 executando 2 2h

Podemos ver a cápsula.

Conclusão

O exposto acima deve lhe dar a inspiração para começar a usar gráficos de leme. Deve facilitar as implantações de seus Kubernetes.

Referências:

  • leme.sh/ sh/
  • documentos.Bitnami.com/kubernetes/como fazer/criar-your-primeiro-helm-chart/
  • https: // docs.leme.sh/usa_helm/
  • Construindo gráficos de leme do zero: uma introdução a Kubernetes [i] - Amy Chen, Heptio
  • Implantando o aplicativo NodeJS em Kubernetes usando o Helm | Episódio 3