Observar e gerenciar o desempenho de um cluster Kubernetes é crucial para manter a integridade do aplicativo, identificar problemas e garantir alta disponibilidade. Orientarei você na configuração de uma solução de monitoramento abrangente usando kubectl e Helm, na implantação de Grafana, Loki e Prometheus em seu cluster e na configuração do Ingress para acesso externo.
Abordaremos as seguintes etapas principais:
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte:
Etapa 1: Crie um namespace de monitoramento
Namespaces ajudam você a dividir e organizar logicamente seus recursos do Kubernetes. Para evitar conflitos e manter os recursos de monitoramento separados, criaremos um namespace dedicado para ferramentas de monitoramento.
1. Aplique o namespace de monitoramento: salve o seguinte conteúdo em um arquivo monitoring-namespace.yml:
apiVersão: v1
tipo: Namespace
metadados:
nome: monitoramento
rótulos:
app.kubernetes.io/name: monitoramento
app.kubernetes.io/instance: monitoramento
2. Aplique o namespace usando kubectl:
kubectl apply -f monitoramento-namespace.yml
Este comando cria um novo namespace chamado monitoramento em seu cluster Kubernetes.
Etapa 2: Instale o Helm e adicione o repositório Grafana
Helm, o gerenciador de pacotes Kubernetes, facilita a implantação de aplicativos complexos como Grafana, Loki e Prometheus. Veja como instalar o Helm e configurar o repositório necessário.
sudo snap install helm --classic
Este comando instala o Helm usando Snap, um sistema de gerenciamento de pacotes para Linux.
helm repo adicionar grafana https://grafana.github.io/helm-charts
atualização do repositório do Helm
Isso garante que o Helm tenha os gráficos mais recentes do repositório Grafana.
Etapa 3: implantar Loki, Prometheus e Grafana com Helm
Agora que o Helm está instalado e configurado, implantaremos Loki, Prometheus e Grafana usando o gráfico Grafana Helm.
1. Execute o comando de instalação do Helm:
helm upgrade --install loki --namespace=monitoramento grafana/loki-stack \
--set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false,loki.persistence.enabled=true,loki.persistence.storageClassName=gp2 ,loki.persistence.size=100Gi --set nodeSelector.name=node.kubernetes.io/description=all_production
R: Grafana: **Isso habilita o Grafana, a ferramenta do painel de monitoramento, dentro do gráfico do Helm.
**B: Prometheus: **O Prometheus está habilitado para coletar métricas, enquanto os volumes persistentes do Alertmanager e do servidor Prometheus estão desabilitados para simplificar a configuração de armazenamento.
**C: Loki: Loki, a ferramenta de agregação de log, é habilitada com armazenamento de volume persistente de 100Gi usando a classe de armazenamento gp2.
O sinalizador --install garante que a pilha seja instalada se não tiver sido implantada anteriormente. O sinalizador --upgrade atualiza a pilha para a versão mais recente se ela já estiver instalada.
2. Verifique a instalação: Após uma instalação bem-sucedida, verifique o status dos pods em execução no namespace de monitoramento:
kubectl obtém pods -n monitoramento
Você deverá ver pods para Grafana, Prometheus, Loki e Promtail (que envia logs para Loki).
Etapa 4: configurar o Ingress para acesso externo
Para acessar Grafana, Prometheus ou Loki de fora do cluster, você precisa configurar um recurso do Ingress. Isso permite acesso HTTP/S externo aos serviços de monitoramento.
*1. Crie um recurso do Ingress: salve o exemplo a seguir em um arquivo monitoring-ingress.yml:
*
versão api: networking.k8s.io/v1
tipo: Entrada
metadados:
nome: entrada de monitoramento
namespace: monitoramento
anotações:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: letsencrypt
especificação:
tls:
- anfitriões:
- seu-domínio.com
nome secreto: nome do certificado
regras:
- host: seu-domínio.com
http:
caminhos:
- caminho: /
tipo de caminho: Prefixo
back-end:
serviço:
nome: loki-grafana
porta:
número: 80
Esta configuração do Ingress configura o roteamento para Grafana, Prometheus e Loki sob o nome de domínio {seu-domínio.com}. Você precisará substituir your-domain.com pelo seu domínio real e configurar o DNS para apontar para o IP externo do seu cluster.
2. Aplique o recurso Ingress:
kubectl apply -f monitoramento-ingress.yml
Depois de aplicado, o controlador do Ingress roteará o tráfego para os serviços apropriados com base no nome do host.
kubectl obtém monitoramento de entrada -n
Certifique-se de que sua coluna ADDRESS tenha um IP externo para que os serviços sejam acessíveis externamente.
Etapa 5: Acesse o Painel de Monitoramento
Depois que o Ingress estiver configurado corretamente e o DNS apontar para o seu cluster, você poderá acessar Grafana, Prometheus e Loki.
Conclusão
Com apenas alguns comandos, você implantou com sucesso uma pilha de monitoramento completa usando Helm em seu cluster Kubernetes. Ao aproveitar os gráficos Helm, você simplifica a implantação de aplicativos complexos como Grafana, Loki e Prometheus, ao mesmo tempo que integra o Ingress para fácil acesso. Agora você tem uma configuração de observabilidade poderosa que permite monitorar logs e métricas em tempo real, ajudando a gerenciar e otimizar seus aplicativos Kubernetes de maneira mais eficaz.
Essa implantação baseada no Helm garante escalabilidade e simplifica atualizações ou alterações de configuração, facilitando o gerenciamento da observabilidade em um ambiente de produção.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3