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:
- Crear un clúster de Kubernetes
- Creación de un clúster de Amazon ES
- Implementar el agente de registro de Fluentd en el clúster de Kubernetes
- Visualizar la fecha de kubernetes en Kibana
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
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
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum install -y docker-ce
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 EOFInstala 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
- systemctl start kubelet && systemctl enable kubelet
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
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
- 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/
- Seleccione Cree un nuevo dominio y elija el tipo de implementación en la consola de Amazon ES.
- En Versión, deje el valor predeterminado del campo Versión de Elasticsearch.
- Seleccione Siguiente
- Escriba un nombre para su dominio de búsqueda elástica en el configurar clúster página debajo Configurar dominio.
- 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
- DebajoInstancias maestras dedicadas
- Habilitar maestro dedicado - No habilite esta opción.
- Habilitar reconocimiento de zona - No habilite esta opción.
- 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.
- Bajo encriptación - No habilite esta opción
- 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).
- Elija Siguiente
- 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.
- 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.
- Elija Siguiente.
- 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
- Conéctese a la URL del panel de kibana para obtenerla desde la consola de Amazon ES
- Para ver los registros recopilados por Fluentd en Kibana, haga clic en 'Administración' y luego seleccione 'Patrones de índice' en 'Kibana'
- elija el patrón de índice predeterminado (logstash- *)
- Haga clic en Paso siguiente, configure el 'Nombre del campo de filtro de tiempo' (@ marca de tiempo) y elija Crear patrón de índice
- Haga clic en Descubrir para ver los registros de su aplicación
- 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.