Neste artigo, você aprenderá como publicar dados de eventos de cluster do Kubernetes na Amazon usando o agente de registro Fluentd. Os dados serão então visualizados usando , uma ferramenta de visualização de código aberto para Elasticsearch. O Amazon ES consiste na integração Kibana integrada.
Iremos orientá-lo no seguinte processo:
- Creating a Kubernetes Cluster
- Criação de um cluster Amazon ES
- Implante o agente de registro Fluentd no cluster Kubernetes
- Visualize a data do kubernetes em Kibana
Etapa 1: criar um cluster Kubernetes
Kubernetes é uma plataforma de código aberto criada pelo Google para gerenciar aplicativos em contêineres. ele permite que você gerencie, dimensione e implante seus aplicativos em contêineres em um ambiente em cluster. Podemos orquestrar nossos contêineres em vários hosts com Governadores , dimensione os aplicativos em contêiner com todos os recursos em tempo real e tenha um ambiente de gerenciamento de contêiner centralizado.
Começaremos com a criação do cluster Kubernetes e demonstrarei passo a passo como instalar e configurar o Kubernetes no CentOS 7.
1. Configurar Hosts
- vi / etc / hosts
- faça alterações de acordo com os detalhes do seu host no arquivo hosts
2 Desative o SELinux executando os comandos abaixo
- setenforce 0
- sed -i –follow-symlinks ‘s / SELINUX = enforcing / SELINUX = disabled / g’ / etc / sysconfig / selinux
3 - Habilitar módulo de kernel br_netfilter
O módulo br_netfilter é necessário para a instalação do kubernetes. Execute o comando abaixo para habilitar o módulo de kernel br_netfilter.- modprobe br_netfilter
- echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables
Quatro. Desative o SWAP executando os comandos abaixo.
- swapoff -a
- Em seguida, edite / etc / fstab e comente a linha de troca
controlador de visualização de modelo em java
5 Instale a versão mais recente do Docker CE.Instale as dependências do pacote para docker-ce executando os comandos abaixo.
- yum install -y yum-utils device-mapper-persistent-data lvm2
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum install -y docker-ce
6 Instale o Kubernetes
Use o seguinte comando para adicionar o repositório kubernetes ao sistema centos 7.- yum install -y kubelet bebeadm kubectl
[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled = 1 gpgcheck = 1 repo_gpgcheck = 1 gpgkey = https: //packages.cloud.google. com / yum / doc / yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOFInstale o empacota kubeadm, kubelet e kubectl usando executando o comando yum abaixo.
- systemctl start docker && systemctl enable docker
Após a conclusão da instalação, reinicie todos esses servidores.Depois de reiniciar, inicie os serviços docker e kubelet
- systemctl start docker && systemctl enable docker
- systemctl start kubelet && systemctl enable kubelet
- systemctl start kubelet && systemctl enable kubelet
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
A rede de flanela foi implantada no cluster Kubernetes. Aguarde um pouco e verifique o nó e os pods do kubernetes usando os comandos abaixo.- kubectl get nodes
- kubectl get pods –all-namespaces
9 Adicionando nós ao clusterConecte-se ao servidor node01 e execute o comando kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0ab5ab
Conecte-se ao servidor node02 e execute o comando kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0ab5ab
Aguarde algum tempo e valide o servidor do cluster mestre ‘k8s-master’, verifique os nós e pods usando o seguinte comando.
- kubectl get nodes
Agora você obterá o trabalhador1 e o trabalhador2 foi adicionado ao cluster com o status ‘pronto’.
- kubectl get pods –all-namespaces
A inicialização e configuração do mestre do cluster do Kubernetes foram concluídas.
Etapa 2: Criação de um cluster Amazon ES
Elasticsearch é um mecanismo de pesquisa e análise de código aberto que é usado para análise de log e monitoramento em tempo real de aplicativos. O Amazon Elasticsearch Service (Amazon ES) é um serviço da AWS que permite a implantação, operação e escala do Elasticsearch na nuvem da AWS. Você pode usar o Amazon ES para analisar eventos de envio de e-mail de seu Amazon SES
Criaremos um cluster Amazon ES e, em seguida, implantaremos o agente de registro Fluentd no cluster Kubernetes, que coletará os registros e enviará para o cluster Amazon ES
amazon ec2 tutorial para iniciantes
Esta seção mostra como usar o console Amazon ES para criar um cluster Amazon ES.
Para criar um cluster Amazon ES
- Faça login no AWS Management Console e abra o console do Amazon Elasticsearch Service em https://console.aws.amazon.com/es/
- Selecione Crie um novo domínio e escolha o tipo de implantação no console Amazon ES.
- Em Versão, deixe o valor padrão do campo de versão do Elasticsearch.
- Selecione Próximo
- Digite um nome para o seu domínio de pesquisa Elastic no configurar cluster página sob Configure o domínio.
- Na página Configurar cluster, selecione as seguintes opções em Instâncias de dados
- Tipo de instância - Escolha t2.micro.elasticsearch (nível gratuito elegível).
- Número de Instância - 1
- SobInstâncias mestre dedicadas
- Habilitar mestre dedicado - Não habilite esta opção.
- Ativar reconhecimento de zona - Não habilite esta opção.
- Em configuração de armazenamento, escolha as seguintes opções.
- Tipo de armazenamento - Escolha EBS. Para as configurações de EBS, escolha o tipo de volume EBS de uso geral (SSD) e o tamanho do volume EBS& thinspde 10.
- Sob criptografia - Não habilite esta opção
- Sob configuração de instantâneo
- Hora de início de instantâneo automatizado - Escolha hora de início dos instantâneos automatizados 00:00 UTC (padrão).
- Escolha o próximo
- Em Configuração de rede, selecione Acesso VPC e selecione os detalhes de acordo com o VPC mostrado abaixo.Na autenticação Kibana: - Não habilite esta opção.
- Para definir a política de acesso, selecione Permitir acesso aberto ao domínio.Nota: - Na produção, você deve restringir o acesso a IPaddress ou intervalos específicos.
- Escolha Próximo.
- Na página Revisar, revise suas configurações e escolha Confirmar e criar.
Observação: o cluster levará até dez minutos para ser implantado. Anote seu URL Kibana assim que clicar no domínio de pesquisa elástico criado.
Etapa 3: implantar o agente de registro Fluentd no cluster Kubernetes
Fluentd é um coletor de dados de código aberto, que permite unificar a coleta e o consumo de dados para melhor uso e compreensão dos dados. Nesse caso, implantaremos o registro Fluentd no cluster Kubernetes, que coletará os arquivos de registro e os enviará ao Amazon Elastic Search.
Criaremos um ClusterRole que fornece permissões em pods e objetos de namespace para fazer solicitações get, list e watch para o cluster.
Primeiro, precisamos configurar as permissões RBAC (controle de acesso baseado em funções) para que o Fluentd possa acessar os componentes apropriados.
1.fluentd-rbac.yaml:
apiVersion: v1 kind: ServiceAccount metadata: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd namespace: kube-system rules: - apiGroups: - ' 'resources: - pods - namespaces verbos: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadados: nome: fluentd roleRef: kind: ClusterRole nome: fluentd apiGroup: rbac.authorization .k8s.io subject: - kind: ServiceAccount name: fluentd namespace: kube-system
Criar: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Agora, podemos criar o DaemonSet.
2. fluentd-daemonset.yaml
apiVersion: extensions / v1beta1 kind: DaemonSet metadata: name: fluentd namespace: kube-system labels: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master efeito: NoSchedule containers: - name: fluentd imagem: fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nome: FLUENT_ELASTICSEARCH_HOST valor: 'elasticsearch.logging' - nome: FLUENT_ELASTICSEARCH_PORT valor: '9200' - nome: FLUENT_ELASTICSEARCH_HOST valor: 'elasticsearch.logging' - nome: FLUENT_ELASTICSEARCH_PORT valor: '9200' - nome: FLUENT_ELASTICSEARCH_SCHEME ' nome: FLUENT_UID valor: '0' recursos: limites: memória: 200Mi solicitações: cpu: 100m memória: 200Mi volumeMounts: - nome: varlog mountPath: / var / log - nome: varlibdockercontainers mountPath: / var / lib / docker / containers somente leitura : true terminationGracePeriodSeconds: 30 volumes: - nome: varlog hostPath: caminho: / var / log - nome: varlibdockercontainers hostPath: caminho: / var / lib / docker / containers
Certifique-se de definir FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT de acordo com seu ambiente de pesquisa elástica
Implantar:
como reverter uma string em python
$ kubectl create -f kubernetes / fluentd-daemonset.yaml
Valide os registros
$ kubectl registra fluentd-lwbt6 -n kube-system | Conexão grep
Você deverá ver que o Fluentd se conecta ao Elasticsearch nos logs:
Etapa 4: visualize os dados do kubernetes em Kibana
- Conecte-se à URL do painel kibana para obter do console Amazon ES
- Para ver os registros coletados pela Fluentd em Kibana, clique em “Gerenciamento” e selecione “Padrões de índice” em “Kibana”
- escolha o padrão de índice padrão (logstash- *)
- Clique em Próxima etapa e defina o “Nome do campo de filtro de tempo” (@timestamp) e escolha Criar padrão de índice
- Clique em Descobrir para ver os registros do seu aplicativo
- Clique em Visualizar e selecione criar uma visualização e escolha Pizza. Preencha os campos a seguir conforme mostrado abaixo.
- Selecione o índice Logstash- * e clique em fatias de divisão
- Agregação - termos significativos
- Field = Kubernetes.pod_name.keyword
- Tamanho - 10
7. E Aplicar Mudanças
É isso aí! É assim que você pode visualizar o Pod Kubernetes criado em Kibana.
Resumo :
O monitoramento por análise de log é um componente crítico de qualquer implantação de aplicativo. Você pode coletar e consolidar registros em seu cluster no Kubernetes para monitorar todo o cluster em um único painel. Em nosso exemplo, vimos o fluentd atuar como um mediador entre o cluster do kubernetes e o Amazon ES. O Fluentd combina coleta e agregação de logs e envia logs para o Amazon ES para análise de logs e visualização de dados com kibana.
O exemplo acima mostra como adicionar o registro de pesquisa do AWS Elastic e o monitoramento de kibana ao cluster de kubernetes usando fluentd.
Se você achou este blog do Kubernetes relevante, confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.
Tem alguma questão para nós? Mencione isso na seção de comentários e entraremos em contato com você.