Observe que tudo é experimental e pode mudar significativamente a qualquer momento.
Este repositório coleta Kubernetes manifesta, painéis de Grafana e regras de Prometheus combinadas com documentação e scripts para fornecer monitoramento de cluster de Kubernetes de ponta a ponta fácil de operar com Prometheus usando o operador Prometheus.
O conteúdo deste projeto está escrito no JSONNET. Este projeto poderia ser descrito como um pacote e uma biblioteca.
Componentes incluídos neste pacote:
Essa pilha é destinada ao monitoramento do cluster, por isso é pré-configurado para coletar métricas de todos os componentes do Kubernetes. Além disso, fornece um conjunto padrão de painéis e regras de alerta. Muitos dos painéis e alertas úteis vêm do projeto Kubernetes-Mixin, semelhante a este projeto, ele fornece JSONNET composível como uma biblioteca para os usuários personalizarem suas necessidades.
Você precisará de um cluster de Kubernetes, é isso! Por padrão, supõe -se que o Kubelet usa autenticação e autorização de token, de outra forma o Prometheus precisa de um certificado de cliente, o que lhe confere acesso total ao Kubelet, em vez de apenas às métricas. A autenticação e autorização do token permitem controle de acesso mais fino e mais fácil.
Isso significa que a configuração Kubelet deve conter estas sinalizadores:
--authentication-token-webhook=true Este sinalizador permite que um token ServiceAccount possa ser usado para se autenticar contra o (s) Kubelet (s). Isso também pode ser ativado definindo a authentication.webhook.enabled do valor da configuração Kubelet.Webhook.enabled como true .--authorization-mode=Webhook Este sinalizador permite que o Kubelet executará uma solicitação RBAC com a API para determinar se a entidade solicitante (Prometheus neste caso) tem permissão para acessar um recurso, específico para este projeto o terminal /metrics . Isso também pode ser ativado definindo a authorization.mode do Valor da Configuração Kubelet.Mode para Webhook .Esta pilha fornece métricas de recursos implantando o adaptador Prometheus. Este adaptador é um servidor de API de extensão e o Kubernetes precisa ter esse recurso ativado, caso contrário, o adaptador não tem efeito, mas ainda é implantado.
As versões Kubernetes a seguir são suportadas e funcionam enquanto testamos contra essas versões em suas respectivas filiais. Mas observe que outras versões podem funcionar!
| pilha de Kube-Prometheus | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 | Kubernetes 1.26 | Kubernetes 1.27 | Kubernetes 1.28 | Kubernetes 1.29 | Kubernetes 1.30 | Kubernetes 1.31 |
|---|---|---|---|---|---|---|---|---|---|
release-0.11 | ✔ | ✔ | ✗ | x | x | x | x | x | x |
release-0.12 | ✗ | ✔ | ✔ | x | x | x | x | x | x |
release-0.13 | ✗ | ✗ | x | ✔ | ✔ | ✔ | x | x | x |
release-0.14 | ✗ | ✗ | x | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
main | ✗ | ✗ | x | x | ✔ | ✔ | ✔ | ✔ | ✔ |
Este projeto deve ser usado como uma biblioteca (ou seja, a intenção não é para você criar sua própria cópia modificada deste repositório).
Embora, para um início rápido, uma versão compilada dos Kubernetes se manifesta gerada com esta biblioteca (especificamente com example.jsonnet ) seja verificada neste repositório para experimentar o conteúdo rapidamente. Para experimentar a pilha não customizada:
manifests : # Create the namespace and CRDs, and then wait for them to be available before creating the remaining resources
# Note that due to some CRD size we are using kubectl server-side apply feature which is generally available since kubernetes 1.22.
# If you are using previous kubernetes versions this feature may not be available and you would need to use kubectl create instead.
kubectl apply --server-side -f manifests/setup
kubectl wait
--for condition=Established
--all CustomResourceDefinition
--namespace=monitoring
kubectl apply -f manifests/ Criamos primeiro o espaço para nome e o CustomResourceDeFefinitions para evitar condições de corrida ao implantar os componentes de monitoramento. Como alternativa, os recursos em ambas as pastas podem ser aplicados com um único comando kubectl apply --server-side -f manifests/setup -f manifests , mas pode ser necessário executar o comando várias vezes para que todos os componentes sejam criados com sucesso.
kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setupPara experimentar esta pilha, inicie o Minikube com o seguinte comando:
$ minikube delete && minikube start --kubernetes-version=v1.23.0 --memory=6g --bootstrapper=kubeadm --extra-config=kubelet.authentication-token-webhook=true --extra-config=kubelet.authorization-mode=Webhook --extra-config=scheduler.bind-address=0.0.0.0 --extra-config=controller-manager.bind-address=0.0.0.0A pilha Kube-Prometheus inclui um servidor de API de métricas de recursos, para que o complemento de métricas-servidores não seja necessário. Verifique se o addon de métricas-servidores está desativado no Minikube:
$ minikube addons disable metrics-serverAntes de implantar Kube-Prometheus em um ambiente de produção, leia:
docs/ Directory. Para contribuir com Kube-Prometheus, consulte a contribuição.
Se você tiver alguma dúvida ou feedback sobre Kube-Prometheus, junte-se à discussão de Kube-Prometheus. Como alternativa, considere ingressar no Kubernetes Slack #Prometheus-Operator Channel ou Horário de Departamento de Colaborador Bienaral do Projeto.
Licença Apache 2.0, consulte a licença.