Sådan visualiseres Kubernetes Cluster-begivenheder i realtid



Dette blogindlæg hjælper dig med at lære, hvordan du offentliggør Kubernetes-klyngehændelsesdata til Amazon Elastic Search ved hjælp af Fluentd-logningsagent.

I denne artikel lærer du, hvordan du offentliggør Kubernetes klyngehændelsesdata til Amazon ved hjælp af Fluentd-logningsagent. Dataene vises derefter ved hjælp af , et open source-visualiseringsværktøj til Elasticsearch. Amazon ES består af integreret Kibana-integration.

Vi gennemgår dig med følgende proces:





Trin 1: Oprettelse af en Kubernetes-klynge

Kubernetes er en open source-platform oprettet af Google til at administrere containeriserede applikationer. det giver dig mulighed for at administrere, skalere og implementere dine containeriserede apps i et grupperet miljø. Vi kan orkestrere vores containere på tværs af forskellige værter med Guvernører skaler de containeriserede apps med alle ressourcer i farten og har et centralt containeradministrationsmiljø.

Vi starter med at oprette Kubernetes-klynge, og jeg vil demonstrere dig trin for trin om, hvordan du installerer og konfigurerer Kubernetes på CentOS 7.



en. Konfigurer værter

    • vi / etc / værter
    • foretag ændringer i henhold til dine værtsoplysninger i værtsfilen

IMG1 - Elasticsearch - Edureka

2. Deaktiver SELinux ved at udføre nedenstående kommandoer



    • setenforce 0
    • sed -i –følge-symlinks 's / SELINUX = håndhævelse / SELINUX = deaktiveret / g' / etc / sysconfig / selinux

3. Aktivér br_netfilter Kernel Module

Br_netfilter-modulet er nødvendigt til installation af kubernetes. Kør kommandoen nedenfor for at aktivere kernemodulet br_netfilter.
    • modprobe br_netfilter
    • ekko ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Fire. Deaktiver SWAP ved at køre under kommandoer.

    • swapoff -a
    • Rediger derefter / etc / fstab og kommenter swap-linjen

5. Installer den nyeste version af Docker CE.Installer pakkeafhængighederne til docker-ce ved at køre under kommandoer.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Føj docker-lageret til systemet, og installer docker-ce ved hjælp af kommandoen yum.

6. Installer Kubernetes

Brug følgende kommando til at tilføje kubernetes-arkivet til centos 7-systemet.
    • 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
Installer pakker kubeadm, kubelet og kubectl ved at køre yum-kommandoen nedenfor.
  • systemctl start docker && systemctl aktiverer docker

Når installationen er afsluttet, skal du genstarte alle disse servere.Efter genstart start services docker og kubelet

  • systemctl start docker && systemctl aktiverer docker
  • systemctl start kubelet && systemctl aktiver kubelet
7. Kubernetes klyngeinitialisering Log ind på masterserveren og kør kommandoen nedenfor
  • systemctl start kubelet && systemctl aktiver kubelet
Når initialiseringen af ​​Kubernetes er afsluttet, får du resultaterne.Kopier kommandoerne fra de resultater, du fik, og udfør det for at begynde at bruge klyngen. Noter kommandoen kubeadm join fra resultaterne. Kommandoen bruges til at registrere nye noder til kubernetes-klyngen. 8. Implementere flannel-netværket til kubernetes-klyngen kubectl anvende -f

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

Flanellnetværket er blevet implementeret i Kubernetes-klyngen. Vent et stykke tid, og tjek derefter kubernetes node og pods ved hjælp af kommandoerne nedenfor.
    • kubectl få noder
    • kubectl få pods –all-namespaces
Og du får 'k8s-master'-noden kører som en' master 'klynge med status' klar ', og du får alle pods, der er nødvendige for klyngen, inklusive' kube-flannel-ds 'til netværkspod konfiguration.

9. Tilføjelse af noder til klyngenOpret forbindelse til node01-serveren, og kør kommandoen kubeadm join

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

Opret forbindelse til node02-serveren, og kør kommandoen kubeadm join

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

Vent et stykke tid, og validerer 'k8s-master' masterklusterserveren, kontroller noder og bælg ved hjælp af følgende kommando.

      • kubectl få noder

Nu får du worker1 og worker2 er føjet til klyngen med status 'klar'.

      • kubectl få pods –all-namespaces

Kubernetes klynge master initialisering og konfiguration er afsluttet.

Trin 2: Oprettelse af en Amazon ES-klynge

Elasticsearch er en open source-søgemaskine og analysemaskine, der bruges til loganalyse og realtidsovervågning af applikationer. Amazon Elasticsearch Service (Amazon ES) er en AWS-tjeneste, der muliggør implementering, drift og skala af Elasticsearch i AWS-skyen. Du kan bruge Amazon ES til at analysere e-mail-sendingshændelser fra din Amazon SES

Vi opretter en Amazon ES-klynge og implementerer derefter Fluentd-logningsagent til Kubernetes-klyngen, som samler logfiler og sender til Amazon ES-klyngen

Dette afsnit viser, hvordan du bruger Amazon ES-konsollen til at oprette en Amazon ES-klynge.

At oprette en Amazon ES-klynge

    1. Log ind på AWS Management Console, og åbn Amazon Elasticsearch Service-konsollen på https://console.aws.amazon.com/es/
    2. Vælg Opret et nyt domæne, og vælg Installationstype i Amazon ES-konsollen.
    3. Under version skal du forlade standardværdien i feltet Elasticsearch-version.
    4. Vælg Næste
    5. Indtast et navn til dit elastiske søgedomæne på konfigurer klynge side under Konfigurer domæne.
    6. På siden Konfigurer klynge skal du vælge følgende indstillinger under datainstanser
      • Forekomsttype - Vælg t2.micro.elasticsearch (gratis tier kvalificeret).
      • Antal forekomster - en
    7. UnderDedikerede masterinstanser
      • Aktivér dedikeret mester - Aktivér ikke denne mulighed.
      • Aktivér zonebevidsthed - Aktivér ikke denne mulighed.
    8. Vælg følgende indstillinger under Lagerkonfiguration.
      • Opbevaringstype - Vælg EBS. For EBS-indstillingerne skal du vælge EBS-volumetype for General Purpose (SSD) og EBS-volumenstørrelse& thinspaf 10.
    9. Under kryptering - Aktivér ikke denne mulighed
    10. Under snapshot-konfiguration
      • Automatiseret snapshot-starttid - Vælg Automatiske snapshots start time 00:00 UTC (standard).
    11. Vælg Næste
    12. Under Netværkskonfiguration skal du vælge VPC-adgang og vælge detaljer i henhold til din VPC er vist nedenfor.Under Kibana-godkendelse: - Aktiver ikke denne mulighed.
    13. For at indstille adgangspolitikken skal du vælge Tillad åben adgang til domænet.Bemærk: - I produktionen skal du begrænse adgangen til specifik IP-adresse eller områder.
    14. Vælg Næste.
    15. Gennemgå dine indstillinger på siden Gennemse, og vælg derefter Bekræft og opret.

Bemærk: Klyngen tager op til ti minutter at implementere den. Vær opmærksom på din Kibana URL, når du klikker på det oprettede elastiske søgedomæne.

Trin 3: Implementér Fluentd-logningsagent på Kubernetes-klyngen

Fluentd er en open source dataindsamler, som giver dig mulighed for at samle dataindsamlingen og forbruget for bedre brug og forståelse af data. I dette tilfælde vil vi implementere Fluentd-logning på Kubernetes-klyngen, som samler logfilerne og sender til Amazon Elastic Search.

hvordan man afslutter programmet i java

Vi opretter en ClusterRole, der giver tilladelser til pods og namespace-objekter til at få get, liste og se anmodning til klynge.

Først skal vi konfigurere RBAC (rollebaseret adgangskontrol) tilladelser, så Fluentd kan få adgang til de relevante komponenter.

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: - ' ressourcer: - pods - navneområder verb: - ​​get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io emner: - kind: ServiceAccount name: fluentd namespace: kube-system

Opret: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Nu kan vi oprette DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: udvidelser / v1beta1 kind: DaemonSet metadata: navn: fluentd namespace: kube-system labels: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: fluentd-logning version: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule containers: - name: fluentd image: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - navn: FLUENT_ELASTICSEARCH_HOST værdi: 'elasticsearch.logging' - navn: FLUENT_ELASTICSEARCH_PORT værdi: '9200' - navn: FLUENTCH-ELASTICSE '-værdi:' værdi: '9200' - navn: FLUENTCH-ELASTICSE navn: FLUENT_UID-værdi: '0' ressourcer: grænser: hukommelse: 200Mi anmodninger: cpu: 100m hukommelse: 200Mi volumenMounts: - navn: varlog mountPath: / var / log - navn: varlibdockcontainers mountPath: / var / lib / docker / containere læsKun : true terminationGracePeriodSeconds: 30 volumes: - name: varlog hostPath: path: / var / log - name: varlibdockercontainers hostPath: sti: / var / lib / docker / containere

Sørg for at definere FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT i henhold til dit elastiske søgemiljø

Indsætte:

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

Valider logfiler

$ kubectl logger fluentd-lwbt6 -n kube-system | grep-forbindelse

Du skal se, at Fluentd opretter forbindelse til Elasticsearch inden for logfilerne:

Trin 4: Visualiser kubernetes-data i Kibana

  1. Opret forbindelse til kibana-dashboardets URL for at komme fra Amazon ES-konsol
  2. For at se de logfiler, der er indsamlet af Fluentd i Kibana, skal du klikke på 'Management' og derefter vælge 'Indeksmønstre' under 'Kibana'
  3. vælg standardindeksmønsteret (logstash- *)
  4. Klik på Næste trin, og indstil 'Time filter field Name' (@timestamp), og vælg Opret indeksmønster
  5. Klik på Opdag for at se dine applikationslogfiler
  6. Klik på Visualiser, og vælg Opret en visualisering, og vælg Pie. Udfyld følgende felter som vist nedenfor.
    • Vælg Logstash- * indeks, og klik på delte udsnit
    • Aggregering - Betydelige vilkår
    • Felt = Kubernetes.pod_name.keyword
    • Størrelse - 10

7. Og anvend ændringer

Det er det! Sådan kan du visualisere Kubernetes Pod oprettet i Kibana.

Resumé :

Overvågning med loganalyse er en kritisk komponent i enhver applikationsinstallation. Du kan samle og konsolidere logfiler på tværs af din klynge i Kubernetes for at overvåge hele klyngen fra et enkelt dashboard. I vores eksempel har vi set fluentd fungere som en mægler mellem kubernetes-klyngen og Amazon ES. Fluentd kombinerer logindsamling og aggregering og sender logfiler til Amazon ES til loganalyse og datavisualisering med kibana.

Ovenstående eksempel viser, hvordan du tilføjer AWS Elastic search logging og kibana-overvågning til kubernetes-klyngen ved hjælp af fluentd.

Hvis du fandt denne Kubernetes-blog relevant, skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Har du et spørgsmål til os? Nævn det i kommentarfeltet, så vender vi tilbage til dig.