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:
- Opprette en Kubernetes-klynge
- Opprette en Amazon ES-klynge
- Distribuere Fluentd logging agent på Kubernetes-klyngen
- Visualiser kubernetes dato i Kibana
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
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
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum installer -y docker-ce
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 EOFInstaller 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
- systemctl start kubelet && systemctl aktiver kubelet
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
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
- Logg på AWS Management Console og åpne Amazon Elasticsearch Service-konsollen på https://console.aws.amazon.com/es/
- Å velge Opprett et nytt domene og velg Distribusjonstype i Amazon ES-konsollen.
- Under versjon, la standardverdien i Elasticsearch-versjonsfeltet ligge.
- Velg Neste
- Skriv inn et navn for det elastiske søkedomenet ditt på konfigurere klyngen side under Konfigurer domene.
- Velg følgende alternativer under datainstanser på siden Konfigurer klyngen
- Forekomsttype - Velg t2.micro.elasticsearch (kvalifisert gratis nivå).
- Antall forekomster - en
- UnderDedikerte masterinstanser
- Aktiver dedikert mester - Ikke aktiver dette alternativet.
- Aktiver sonebevissthet - Ikke aktiver dette alternativet.
- 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.
- Under kryptering - Ikke aktiver dette alternativet
- Under øyeblikksbildekonfigurasjon
- Automatisert øyeblikksbilde starttid - Velg automatiserte øyeblikksbilder start time 00:00 UTC (standard).
- Velg Neste
- Under nettverkskonfigurasjon velger du VPC Access, og velger detaljer i henhold til VPC vises nedenfor.Under Kibana-godkjenning: - Ikke aktiver dette alternativet.
- For å angi tilgangspolitikken, velg Tillat åpen tilgang til domenet.Merk: - I produksjonen bør du begrense tilgangen til spesifikk IP-adresse eller rekkevidde.
- Velg Neste.
- 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
- Koble til kibana-dashbordets URL for å komme fra Amazon ES-konsollen
- For å se loggene som Fluentd har samlet i Kibana, klikker du på 'Management' og velger deretter 'Index Patterns' under 'Kibana'.
- velg standard indeksmønster (logstash- *)
- Klikk på Neste trinn, og angi 'Time filter field Name' (@timestamp) og velg Create index index
- Klikk på Oppdag for å se applikasjonsloggene
- 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.