Cómo visualizar eventos de clúster de Kubernetes en tiempo real



Esta publicación de blog lo ayudará a aprender cómo publicar datos de eventos de clúster de Kubernetes en Amazon Elastic Search mediante el agente de registro de Fluentd.

En este artículo, aprenderá cómo publicar datos de eventos de clúster de Kubernetes en Amazon. utilizando el agente de registro de Fluentd. Luego, los datos se verán usando , una herramienta de visualización de código abierto para Elasticsearch. Amazon ES consiste en la integración de Kibana integrada.

Lo guiaremos con el siguiente proceso:





Paso 1: crear un clúster de Kubernetes

Kubernetes es una plataforma de código abierto creada por Google para administrar aplicaciones en contenedores. le permite administrar, escalar e implementar sus aplicaciones en contenedores en un entorno agrupado. Podemos organizar nuestros contenedores en varios hosts con Gobernadores , escale las aplicaciones en contenedores con todos los recursos sobre la marcha y tenga un entorno de administración de contenedores centralizado.

Comenzaremos con la creación de un clúster de Kubernetes y le mostraré paso a paso cómo instalar y configurar Kubernetes en CentOS 7.



cómo instalar php en la ventana

1. Configurar hosts

    • vi / etc / hosts
    • realizar cambios de acuerdo con los detalles de su host en el archivo hosts

IMG1 - Elasticsearch - Edureka

2. Deshabilite SELinux ejecutando los siguientes comandos



    • setenforce 0
    • sed -i –follow-symlinks 's / SELINUX = enforcing / SELINUX = disabled / g' / etc / sysconfig / selinux

3. Habilitar el módulo de kernel br_netfilter

El módulo br_netfilter es necesario para la instalación de kubernetes. Ejecute el siguiente comando para habilitar el módulo del kernel br_netfilter.
    • modprobe br_netfilter
    • echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables

4. Desactive SWAP ejecutando los siguientes comandos.

    • intercambio -a
    • Luego edite / etc / fstab y comente la línea de intercambio

5. Instale la última versión de Docker CE.Instale las dependencias del paquete para docker-ce ejecutando los siguientes comandos.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Agregue el repositorio de docker al sistema e instale docker-ce usando el comando yum.

6. Instalar Kubernetes

Use el siguiente comando para agregar el repositorio de kubernetes al 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 EOF
Instala el paquetes kubeadm, kubelet y kubectl usando ejecutando el comando yum a continuación.
  • systemctl start docker && systemctl enable docker

Una vez completada la instalación, reinicie todos esos servidores.Después de reiniciar, inicie la ventana acoplable de servicios y kubelet.

  • systemctl start docker && systemctl enable docker
  • systemctl start kubelet && systemctl enable kubelet
7. Inicialización del clúster de Kubernetes Inicie sesión en el servidor maestro y ejecute el siguiente comando
  • systemctl start kubelet && systemctl enable kubelet
Una vez que se complete la inicialización de Kubernetes, obtendrá los resultados.Copie los comandos de los resultados que obtuvo y ejecútelos para comenzar a usar el clúster. Tome nota del comando kubeadm join de los resultados. El comando se utilizará para registrar nuevos nodos en el clúster de kubernetes. 8. Implementar la red de franela en el clúster de kubernetes kubectl apply -f

https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

La red de franela se implementó en el clúster de Kubernetes. Espere un tiempo y luego verifique el nodo y los pods de kubernetes usando los comandos a continuación.
    • kubectl obtener nodos
    • kubectl get pods –todos los espacios de nombres
Y obtendrá que el nodo 'k8s-master' se está ejecutando como un clúster 'maestro' con el estado 'listo', y obtendrá todos los pods que se necesitan para el clúster, incluido el 'kube-flannel-ds' para el pod de red configuración.

9. Agregar nodos al clústerConéctese al servidor node01 y ejecute el comando kubeadm join

    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a5abc4a0

Conéctese al servidor node02 y ejecute el comando kubeadm join

    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a5abc4a0

Espere un tiempo y Valide el servidor de clúster maestro 'k8s-master', verifique los nodos y los pods con el siguiente comando.

      • kubectl obtener nodos

Ahora obtendrá worker1 y worker2 se ha agregado al clúster con el estado 'listo'.

      • kubectl get pods –todos los espacios de nombres

Se completó la inicialización y configuración del maestro del clúster de Kubernetes.

Paso 2: creación de un clúster de Amazon ES

Elasticsearch es un motor de búsqueda y análisis de código abierto que se utiliza para el análisis de registros y el monitoreo en tiempo real de aplicaciones. Amazon Elasticsearch Service (Amazon ES) es un servicio de AWS que permite la implementación, operación y escala de Elasticsearch en la nube de AWS. Puede utilizar Amazon ES para analizar eventos de envío de correo electrónico desde su Amazon SES

ordenar una matriz en c ++

Crearemos un clúster de Amazon ES y luego implementaremos el agente de registro de Fluentd en el clúster de Kubernetes, que recopilará los registros y los enviará al clúster de Amazon ES

Esta sección muestra cómo utilizar la consola de Amazon ES para crear un clúster de Amazon ES.

Para crear un clúster de Amazon ES

    1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Elasticsearch Service en https://console.aws.amazon.com/es/
    2. Seleccione Cree un nuevo dominio y elija el tipo de implementación en la consola de Amazon ES.
    3. En Versión, deje el valor predeterminado del campo Versión de Elasticsearch.
    4. Seleccione Siguiente
    5. Escriba un nombre para su dominio de búsqueda elástica en el configurar clúster página debajo Configurar dominio.
    6. En la página Configurar clúster, seleccione las siguientes opciones en Instancias de datos
      • Tipo de instancia - Elija t2.micro.elasticsearch (elegible para el nivel gratuito).
      • Número de instancia – 1
    7. DebajoInstancias maestras dedicadas
      • Habilitar maestro dedicado - No habilite esta opción.
      • Habilitar reconocimiento de zona - No habilite esta opción.
    8. En Configuración de almacenamiento, elija las siguientes opciones.
      • Tipo de almacenamiento - Elija EBS. Para la configuración de EBS, elija el tipo de volumen de EBS de uso general (SSD) y el tamaño de volumen de EBS& thinspde 10.
    9. Bajo encriptación - No habilite esta opción
    10. En configuración de instantánea
      • Hora de inicio de la instantánea automatizada - Elija Instantáneas automáticas a la hora de inicio 00:00 UTC (predeterminado).
    11. Elija Siguiente
    12. En Configuración de red, seleccione Acceso a VPC y seleccione los detalles según su VPC que se muestran a continuación.En la autenticación de Kibana: - No habilite esta opción.
    13. Para configurar la política de acceso, seleccione Permitir acceso abierto al dominio.Nota: - En producción, debe restringir el acceso a direcciones o rangos IP específicos.
    14. Elija Siguiente.
    15. En la página Revisar, revise su configuración y luego elija Confirmar y Crear.

Nota: El clúster tardará hasta diez minutos en implementarse. Tome nota de su URL de Kibana una vez que haga clic en el dominio de búsqueda elástico creado.

Paso 3: Implementar el agente de registro de Fluentd en el clúster de Kubernetes

Fluentd es un recopilador de datos de código abierto, que le permite unificar la recopilación y el consumo de datos para un mejor uso y comprensión de los datos. En este caso, implementaremos el registro de Fluentd en el clúster de Kubernetes, que recopilará los archivos de registro y los enviará a Amazon Elastic Search.

Crearemos un ClusterRole que proporciona permisos en pods y objetos de espacio de nombres para realizar solicitudes de obtención, lista y observación al clúster.

Primero, necesitamos configurar los permisos RBAC (control de acceso basado en roles) para que Fluentd pueda acceder a los componentes apropiados.

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 verbs: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io sujetos: - tipo: ServiceAccount nombre: fluentd espacio de nombres: kube-system

Crear: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Ahora, podemos crear el DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 kind: DaemonSet metadatos: nombre: fluentd namespace: kube-system tags: k8s-app: fluentd-logging versión: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: fluentd-logging versión: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - clave: node-role.kubernetes.io/master efecto: contenedores NoSchedule: - nombre: fluentd imagen: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nombre: FLUENT_ELASTICSEARCH_HOST valor: 'elasticsearch.logging' - nombre: FLUENT_ELASTICSEARCH_PORT valor: '9200' - nombre: FLUENT_ELASTICSEARCH_valor: nombre: FLUENT_UID valor: '0' recursos: límites: memoria: 200Mi solicitudes: cpu: 100m memoria: 200Mi volumen Montajes: - nombre: varlog mountPath: / var / log - nombre: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : true terminationGracePeriodSeconds: 30 volúmenes: - nombre: varlog hostPath: ruta: / var / log - nombre: varlibdockercontainers hostPath: ruta: / var / lib / docker / containers

Asegúrese de definir FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT de acuerdo con su entorno de búsqueda elástica

Desplegar:

$ kubectl crear -f kubernetes / fluentd-daemonset.yaml

Validar los registros

$ kubectl logs fluentd-lwbt6 -n kube-system | conexión grep

Debería ver que Fluentd se conecta a Elasticsearch dentro de los registros:

Paso 4: Visualice los datos de Kubernetes en Kibana

  1. Conéctese a la URL del panel de kibana para obtenerla desde la consola de Amazon ES
  2. Para ver los registros recopilados por Fluentd en Kibana, haga clic en 'Administración' y luego seleccione 'Patrones de índice' en 'Kibana'
  3. elija el patrón de índice predeterminado (logstash- *)
  4. Haga clic en Paso siguiente, configure el 'Nombre del campo de filtro de tiempo' (@ marca de tiempo) y elija Crear patrón de índice
  5. Haga clic en Descubrir para ver los registros de su aplicación
  6. Haga clic en Visualizar y seleccione crear una visualización y elija Circular. Complete los siguientes campos como se muestra a continuación.
    • Seleccione Logstash- * index y haga clic en dividir sectores
    • Agregación: términos significativos
    • Campo = Kubernetes.pod_name.keyword
    • Tamaño 10

7. Y aplicar cambios

lanzar vs lanzar vs lanzar en java

¡Eso es todo! Así es como puede visualizar el Pod de Kubernetes creado en Kibana.

Resumen :

La supervisión mediante análisis de registros es un componente fundamental de cualquier implementación de aplicaciones. Puede recopilar y consolidar registros en su clúster en Kubernetes para monitorear todo el clúster desde un solo panel. En nuestro ejemplo, hemos visto a fluentd actuar como mediador entre el clúster de kubernetes y Amazon ES. Fluentd combina la recopilación y agregación de registros y envía registros a Amazon ES para análisis de registros y visualización de datos con kibana.

El ejemplo anterior muestra cómo agregar el registro de búsqueda de AWS Elastic y la supervisión de kibana al clúster de kubernetes con fluentd.

Si este blog de Kubernetes le pareció relevante, consulte el por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Tienes una pregunta para nosotros? Menciónalo en la sección de comentarios y nos comunicaremos contigo.