Hvordan visualisere Kubernetes Cluster-hendelser i sanntid



Dette blogginnlegget vil hjelpe deg med å lære hvordan du publiserer Kubernetes klyngehendelsesdata til Amazon Elastic Search ved hjelp av Fluentd logging agent.

I denne artikkelen vil du lære hvordan du publiserer Kubernetes klyngehendelsesdata til Amazon bruker Fluentd logging agent. Dataene blir deretter vist ved hjelp av , et open source-visualiseringsverktøy for Elasticsearch. Amazon ES består av integrert Kibana-integrasjon.

Vi vil lede deg gjennom med følgende prosess:





Trinn 1: Opprette en Kubernetes-klynge

Kubernetes er en åpen kildekodeplattform opprettet av Google for å administrere containeriserte applikasjoner. det lar deg administrere, skalere og distribuere containeriserte apper i et gruppert miljø. Vi kan orkestrere containerne våre på tvers av forskjellige verter med Guvernører , skaler de containeriserte appene med alle ressurser på farten, og har et sentralisert containeradministrasjonsmiljø.

Vi begynner med å lage Kubernetes-klyngen, og jeg vil demonstrere deg trinn for trinn om hvordan du installerer og konfigurerer Kubernetes på CentOS 7.



ansible vs marionett vs kokk

en. Konfigurer verter

    • vi / etc / verter
    • gjør endringer i henhold til vertinformasjonen din i vertsfilen

IMG1 - Elasticsearch - Edureka

2. Deaktiver SELinux ved å utføre kommandoene nedenfor



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = håndheving / SELINUX = deaktivert / g’ / etc / sysconfig / selinux

3. Aktiver br_netfilter kjernemodul

Br_netfilter-modulen kreves for installasjon av kubernetes. Kjør kommandoen nedenfor for å aktivere br_netfilter-kjernemodulen.
    • modprobe br_netfilter
    • ekko ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Fire. Deaktiver SWAP ved å kjøre under kommandoer.

    • bytte -a
    • Rediger deretter / etc / fstab og kommenter byttelinjen

5. Installer den nyeste versjonen av Docker CE.Installer pakkeavhengighetene for docker-ce ved å kjøre under kommandoene.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Legg docker-depotet til systemet og installer docker-ce ved hjelp av yum-kommandoen.

6. Installer Kubernetes

Bruk følgende kommando for å legge til kubernetes-depotet 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 å kjøre yum-kommandoen nedenfor.
  • systemctl start docker && systemctl aktiverer docker

Etter at installasjonen er fullført, start alle serverne på nytt.Etter omstart starter du tjenestedocker og kubelet

  • systemctl start docker && systemctl aktiverer docker
  • systemctl start kubelet && systemctl aktiver kubelet
7. Kubernetes Cluster Initialization Logg på hovedserveren og kjør kommandoen nedenfor
  • systemctl start kubelet && systemctl aktiver kubelet
Når initialiseringen av Kubernetes er fullført, får du resultatene.Kopier kommandoene fra resultatene du fikk, og kjør dem for å begynne å bruke klyngen. Noter kommandoen kubeadm join fra resultatene. Kommandoen vil bli brukt til å registrere nye noder til kubernetes-klyngen. 8. Distribuere flanellnettverket til kubernetes-klyngen kubectl gjelder -f

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

Flanellnettverket er distribuert til Kubernetes-klyngen. Vent litt og sjekk deretter kubernetes node og pods ved hjelp av kommandoene nedenfor.
    • kubectl få noder
    • kubectl få pods –all-namespaces
Og du vil få 'k8s-master' noden som en 'master' klynge med status 'klar', og du vil få alle pods som er nødvendige for klyngen, inkludert 'kube-flannel-ds' for nettverkspod konfigurasjon.

9. Legge til noder i klyngenKoble til node01-serveren og kjør kubeadm join-kommandoen

    • kubeadm bli med 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c

Koble til node02-serveren og kjør kommandoen kubeadm join

    • kubeadm bli med 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c

Vent litt og valider 'k8s-master' master cluster server, sjekk noder og pods ved hjelp av følgende kommando.

      • kubectl få noder

Nå får du arbeider1 og arbeider2 er lagt til i klyngen med statusen 'klar'.

      • kubectl få pods –all-namespaces

Kubernetes initialisering og konfigurering av klyngemasteren er fullført.

Trinn 2: Opprette en Amazon ES-klynge

Elasticsearch er en open source søkemotor og analysemotor som brukes til logganalyse og sanntidsovervåking av applikasjoner. Amazon Elasticsearch Service (Amazon ES) er en AWS-tjeneste som tillater distribusjon, drift og omfang av Elasticsearch i AWS-skyen. Du kan bruke Amazon ES til å analysere sendingshendelser via e-post fra Amazon SES

Vi vil lage en Amazon ES-klynge og deretter distribuere Fluentd loggingsagent til Kubernetes-klyngen som vil samle logger og sende til Amazon ES-klyngen

Denne delen viser hvordan du bruker Amazon ES-konsollen til å lage en Amazon ES-klynge.

Å lage en Amazon ES-klynge

    1. Logg på AWS Management Console og åpne Amazon Elasticsearch Service-konsollen på https://console.aws.amazon.com/es/
    2. Å velge Opprett et nytt domene og velg Distribusjonstype i Amazon ES-konsollen.
    3. Under versjon, la standardverdien i Elasticsearch-versjonsfeltet ligge.
    4. Velg Neste
    5. Skriv inn et navn for det elastiske søkedomenet ditt på konfigurere klyngen side under Konfigurer domene.
    6. Velg følgende alternativer under datainstanser på siden Konfigurer klyngen
      • Forekomsttype - Velg t2.micro.elasticsearch (kvalifisert gratis nivå).
      • Antall forekomster - en
    7. UnderDedikerte masterinstanser
      • Aktiver dedikert mester - Ikke aktiver dette alternativet.
      • Aktiver sonebevissthet - Ikke aktiver dette alternativet.
    8. Velg følgende alternativer under Lagringskonfigurasjon.
      • Lagringstype - Velg EBS. For EBS-innstillinger velger du EBS-volumtype for generell bruk (SSD) og EBS-volumstørrelse& thinspav 10.
    9. Under kryptering - Ikke aktiver dette alternativet
    10. Under øyeblikksbildekonfigurasjon
      • Automatisert øyeblikksbilde starttid - Velg automatiserte øyeblikksbilder start time 00:00 UTC (standard).
    11. Velg Neste
    12. Under nettverkskonfigurasjon velger du VPC Access, og velger detaljer i henhold til VPC vises nedenfor.Under Kibana-godkjenning: - Ikke aktiver dette alternativet.
    13. For å angi tilgangspolitikken, velg Tillat åpen tilgang til domenet.Merk: - I produksjonen bør du begrense tilgangen til spesifikk IP-adresse eller rekkevidde.
    14. Velg Neste.
    15. Gå gjennom innstillingene dine på gjennomgangssiden, og velg deretter Bekreft og opprett.

Merk: Klyngen vil ta opptil ti minutter å distribuere. Legg merke til Kibana-URL-en din når du klikker på det opprettede elastiske søkedomenet.

Trinn 3: Distribuere Fluentd logging agent på Kubernetes-klyngen

Fluentd er en åpen kildekodesamler, som lar deg forene datainnsamlingen og forbruket for bedre bruk og forståelse av data. I dette tilfellet vil vi distribuere Fluentd-logging på Kubernetes-klyngen, som vil samle loggfilene og sende til Amazon Elastic Search.

Vi vil lage en ClusterRole som gir tillatelser til pods og namespace-objekter for å få get, liste og se forespørsel til klynge.

Først må vi konfigurere RBAC (rollebasert tilgangskontroll) tillatelser slik at Fluentd kan få tilgang til de aktuelle komponentene.

1. fluentd-rbac.yaml:

bruk av skannerklasse i java
apiVersion: v1 type: ServiceAccount metadata: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd namespace: kube-system rules: - apiGroups: - ' ressurser: - pods - namespaces 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 fag: - type: ServiceAccount navn: fluentd navneområde: kube-system

Opprett: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Nå kan vi opprette DaemonSet.

2. fluentd-daemonset.yaml

hvordan du bygger en salgsstyrke-app
apiVersion: utvidelser / v1beta1 type: 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-logging-versjon: 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-verdi: 'elasticsearch.logging' - navn: FLUENT_ELASTICSEARCH_PORT-verdi: '9200' - navn: FLUENTCH-ELASTISSE navn: FLUENT_UID-verdi: '0' ressurser: grenser: minne: 200Mi forespørsler: cpu: 100m minne: 200Mi volumMounts: - navn: varlog mountPath: / var / log - navn: varlibdockercontainers mountPath: / var / lib / docker / containere lesesBare : true terminationGracePeriodSeconds: 30 volumes: - name: varlog hostPath: path: / var / log - name: varlibdockercontainers hostPath: sti: / var / lib / docker / containere

Sørg for å definere FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT i henhold til det elastiske søkemiljøet ditt

Utplassere:

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

Valider loggene

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

Du bør se at Fluentd kobler til Elasticsearch i loggene:

Trinn 4: Visualiser kubernetes-data i Kibana

  1. Koble til kibana-dashbordets URL for å komme fra Amazon ES-konsollen
  2. For å se loggene som Fluentd har samlet i Kibana, klikker du på 'Management' og velger deretter 'Index Patterns' under 'Kibana'.
  3. velg standard indeksmønster (logstash- *)
  4. Klikk på Neste trinn, og angi 'Time filter field Name' (@timestamp) og velg Create index index
  5. Klikk på Oppdag for å se applikasjonsloggene
  6. Klikk på Visualiser og velg opprett en visualisering og velg Pie. Fyll ut følgende felt som vist nedenfor.
    • Velg Logstash- * indeks og klikk på delte skiver
    • Aggregering - Betydelige vilkår
    • Felt = Kubernetes.pod_name.keyword
    • Størrelse - 10

7. Og bruk endringer

Det er det! Slik kan du visualisere Kubernetes Pod opprettet i Kibana.

Sammendrag :

Overvåking ved logganalyse er en kritisk komponent i enhver applikasjonsutplassering. Du kan samle og konsolidere logger over klyngen din i Kubernetes for å overvåke hele klyngen fra ett enkelt dashbord. I vårt eksempel har vi sett fluentd fungere som en formidler mellom kubernetes-klyngen og Amazon ES. Fluentd kombinerer loggsamling og aggregering og sender logger til Amazon ES for loggeanalyse og datavisualisering med kibana.

Ovennevnte eksempel viser hvordan du legger til AWS Elastic search logging og kibana monitoring til kubernetes cluster ved hjelp av fluentd.

Hvis du fant denne Kubernetes-bloggen relevant, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet, så kommer vi tilbake til deg.