Com es visualitzen els esdeveniments del clúster de Kubernetes en temps real



Aquesta publicació de bloc us ajudarà a aprendre a publicar les dades dels esdeveniments del clúster de Kubernetes a Amazon Elastic Search mitjançant l'agent de registre Fluentd.

En aquest article, aprendreu a publicar les dades dels esdeveniments del clúster de Kubernetes a Amazon mitjançant l'agent de registre Fluentd. A continuació, es visualitzaran les dades mitjançant , una eina de visualització de codi obert per a Elasticsearch. Amazon ES consisteix en una integració integrada de Kibana.

Us guiarem amb el següent procés:





Pas 1: creació d'un clúster de Kubernetes

Kubernetes és una plataforma de codi obert creada per Google per gestionar aplicacions en contenidors. us permet administrar, escalar i desplegar les vostres aplicacions en contenidors en un entorn agrupat. Podem orquestrar els nostres contenidors a través de diversos hosts Governadors , escalar les aplicacions en contenidors amb tots els recursos sobre la marxa i tenir un entorn de gestió de contenidors centralitzat.

Començarem creant el clúster de Kubernetes i us demostraré pas a pas sobre com instal·lar i configurar Kubernetes a CentOS 7.



1. Configureu els amfitrions

    • vi / etc / hosts
    • feu canvis segons les dades del vostre amfitrió al fitxer d'amfitrions

IMG1 - Elasticsearch - Edureka

2. Desactiveu SELinux executant les ordres següents



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = aplicació / SELINUX = desactivat / g’ / etc / sysconfig / selinux

3. Activeu el mòdul del nucli br_netfilter

El mòdul br_netfilter és necessari per a la instal·lació de kubernetes. Executeu l'ordre següent per habilitar el mòdul del nucli br_netfilter.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

4. Desactiveu SWAP executant les ordres següents.

    • permuta -a
    • A continuació, editeu / etc / fstab i comenteu la línia d'intercanvi

5. Instal·leu la versió més recent de Docker CE.Instal·leu les dependències del paquet per a docker-ce executant les ordres següents.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Afegiu el dipòsit docker al sistema i instal·leu docker-ce mitjançant l'ordre yum.

6. Instal·leu Kubernetes

Utilitzeu l'ordre següent per afegir el dipòsit 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
Instal·leu el fitxer paquets kubeadm, kubelet i kubectl mitjançant l'execució de l'ordre yum a continuació.
  • systemctl start docker && systemctl enable docker

Un cop finalitzada la instal·lació, reinicieu tots aquests servidors.Després de reiniciar, inicieu els serveis docker i kubelet

  • systemctl start docker && systemctl enable docker
  • systemctl inicia kubelet && systemctl activa kubelet
7. Inicialització del clúster de Kubernetes Inicieu la sessió al servidor principal i executeu l'ordre següent
  • systemctl inicia kubelet && systemctl activa kubelet
Un cop finalitzada la inicialització de Kubernetes, obtindreu els resultats.Copieu les ordres dels resultats obtinguts i executeu-les per començar a utilitzar el clúster. Anoteu l’ordre kubeadm join a partir dels resultats. L'ordre s'utilitzarà per registrar nous nodes al clúster de kubernetes. 8. Desplegueu la xarxa de franel·la al clúster de kubernetes kubectl aplicar -f

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

La xarxa de franel·la s’ha desplegat al clúster Kubernetes. Espereu un temps i, a continuació, comproveu el node i els pods de kubernetes mitjançant les ordres següents.
    • kubectl aconsegueix nodes
    • kubectl aconsegueix pods –tots els espais de noms
I obtindreu que el node 'k8s-master' s'executa com un clúster 'mestre' amb l'estat 'llest' i obtindreu tots els pods necessaris per al clúster, inclosos els 'kube-flannel-ds' per al pod de xarxa configuració.

9. Addició de nodes al clústerConnecteu-vos al servidor node01 i executeu l'ordre kubeadm join

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

Connecteu-vos al servidor node02 i executeu l'ordre kubeadm join

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

Espereu un temps i Valideu el servidor de clúster mestre ‘k8s-master’, comproveu els nodes i els pods mitjançant l’ordre següent.

      • kubectl aconsegueix nodes

com s'utilitza l'anaconda python

Ara obtindreu treballador1 i treballador2 s'ha afegit al clúster amb l'estat 'llest'.

      • kubectl aconsegueix pods –tots els espais de noms

La inicialització i configuració del mestre del clúster de Kubernetes s'ha completat.

Pas 2: creació d'un clúster d'Amazon ES

Elasticsearch és un motor de cerca i anàlisi de codi obert que s’utilitza per a l’anàlisi de registres i el control en temps real d’aplicacions. Amazon Elasticsearch Service (Amazon ES) és un servei AWS que permet el desplegament, el funcionament i l’escala d’Elasticsearch al núvol AWS. Podeu utilitzar Amazon ES per analitzar esdeveniments d’enviament de correu electrònic des del vostre Amazon SES

Crearem un clúster d’Amazon ES i, a continuació, desplegarem l’agent de registre Fluentd al clúster de Kubernetes que recollirà els registres i l’enviarà al clúster d’Amazon ES

Aquesta secció mostra com utilitzar la consola Amazon ES per crear un clúster Amazon ES.

Per crear un clúster Amazon ES

    1. Inicieu la sessió a AWS Management Console i obriu la consola Amazon Elasticsearch Service a https://console.aws.amazon.com/es/
    2. Seleccioneu Creeu un nou domini i trieu Tipus de desplegament a la consola Amazon ES.
    3. A Versió, deixeu el valor per defecte del camp de la versió d’Elasticsearch.
    4. Seleccioneu Següent
    5. Escriviu un nom per al vostre domini de cerca elàstic a configurar el clúster pàgina a sota Configureu el domini.
    6. A la pàgina Configuració del clúster, seleccioneu les opcions següents a Instàncies de dades
      • Tipus d'instància - Trieu t2.micro.elasticsearch (apte per al nivell gratuït).
      • Nombre d'instància - 1
    7. SotaInstàncies mestres dedicades
      • Activa el mestre dedicat - No activeu aquesta opció.
      • Activa el reconeixement de zones - No activeu aquesta opció.
    8. A Configuració d'emmagatzematge, trieu les opcions següents.
      • Tipus d'emmagatzematge - Trieu EBS. Per a la configuració d'EBS, trieu el tipus de volum EBS de propòsit general (SSD) i la mida del volum EBS& thinspde 10.
    9. Sota xifratge: No activeu aquesta opció
    10. A la configuració de la instantània
      • Hora d’inici de la instantània automàtica - Trieu les instantànies automàtiques a l’hora d’inici 00:00 UTC (per defecte).
    11. Trieu Següent
    12. A Configuració de xarxa, seleccioneu Accés VPC i seleccioneu els detalls segons el vostre VPC que es mostra a continuació.A l'autenticació Kibana: - No activeu aquesta opció.
    13. Per establir la política d'accés, seleccioneu Permet l'accés obert al domini.Nota: - A la producció, heu de restringir l'accés a adreces IP o intervals específics.
    14. Trieu Següent.
    15. A la pàgina Revisa, reviseu la configuració i seleccioneu Confirma i crea.

Nota: El clúster trigarà fins a deu minuts a desplegar-se. Preneu nota de l'URL de Kibana un cop feu clic al domini de cerca elàstic creat.

Pas 3: desplegueu l'agent de registre de Fluentd al clúster de Kubernetes

Fluentd és un recopilador de dades de codi obert que us permet unificar la recopilació i el consum de dades per a un millor ús i comprensió de les dades. En aquest cas, desplegarem el registre de Fluentd al clúster de Kubernetes, que recollirà els fitxers de registre i els enviarà a Amazon Elastic Search.

Crearem un ClusterRole que proporciona permisos a pods i objectes d’espai de noms per fer que s’aconsegueixi, enumeri i vegi la sol·licitud al clúster.

En primer lloc, hem de configurar els permisos RBAC (control d’accés basat en funcions) perquè Fluentd pugui accedir als components adequats.

1.fluentd-rbac.yaml:

com fer una matriu dinàmica a Java
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: - ' 'recursos: - pods - verbs d'espais de noms: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization Assignatures .k8s.io: - kind: ServiceAccount name: fluentd namespace: kube-system

Crea: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Ara podem crear el 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: versió de registre de fluentd: v1 kubernetes.io/cluster-service: especificació 'true': serviceAccount: fluentd serviceAccountName: toleràncies fluentd: - clau: node-role.kubernetes.io/master effect: No Contenidors de calendari: - nom: imatge fluentd: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nom: FLUENT_ELASTICSEARCH_HOST valor: 'elasticsearch.logging' - nom: FLUENT_ELASTICSEARCH_PORT valor: '9200' - nom: FLUENT_ELASTICSEARCH_SCH nom: valor FLUENT_UID: recursos '0': límits: memòria: sol·licituds 200Mi: cpu: memòria 100m: volum 200Mi Muntatges: - nom: varlog mountPath: / var / log - nom: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : veritable terminacióGracePeriodSeconds: 30 volums: - nom: varlog hostPath: ruta: / var / log - nom: varlibdockercontainers hostPath: path: / var / lib / docker / containers

Assegureu-vos de definir FLUENT_ELASTICSEARCH_HOST i FLUENT_ELASTICSEARCH_PORT segons el vostre entorn de cerca elàstic

Desplega:

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

Valideu els registres

$ kubectl registra fluentd-lwbt6 -n sistema kube | grep Connection

Hauríeu de veure que Fluentd es connecta a Elasticsearch als registres:

Pas 4: visualitzeu les dades de kubernetes a Kibana

  1. Connecteu-vos a l'URL del tauler de control de kibana per obtenir des de la consola Amazon ES
  2. Per veure els registres recollits per Fluentd a Kibana, feu clic a 'Gestió' i seleccioneu 'Patrons d'índex' a 'Kibana'.
  3. trieu el patró d'índex per defecte (logstash- *)
  4. Feu clic a Pas següent i configureu el nom del camp del filtre de temps (@timestamp) i trieu Crea un patró d'índex
  5. Feu clic a Descobreix per veure els registres de l'aplicació
  6. Feu clic a Visualitza i seleccioneu crear una visualització i trieu Pastís. Empleneu els camps següents com es mostra a continuació.
    • Seleccioneu Logstash- * index i feu clic a les parts dividides
    • Agregació: termes significatius
    • Camp = Kubernetes.pod_name.keyword
    • Mida: 10

7. I aplica canvis

Això és! Així és com podeu visualitzar el Kubernetes Pod creat a Kibana.

Resum :

La supervisió mitjançant anàlisi de registres és un component crític de qualsevol desplegament d’aplicacions. Podeu reunir i consolidar registres a tot el clúster a Kubernetes per supervisar tot el clúster des d'un únic tauler. En el nostre exemple, hem vist fluentd actuar com a mediador entre el clúster de kubernetes i Amazon ES. Fluentd combina la recopilació i l'agregació de registres i envia registres a Amazon ES per a l'anàlisi de registres i la visualització de dades amb kibana.

L'exemple anterior mostra com afegir el registre de cerca AWS Elastic i la supervisió de kibana al clúster de kubernetes mitjançant fluentd.

Si heu trobat aquest blog de Kubernetes rellevant, consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.

Tens alguna pregunta? Esmenta’l a la secció de comentaris i et respondrem.