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:
- Oprettelse af en Kubernetes-klynge
- Oprettelse af en Amazon ES-klynge
- Implementere Fluentd-logningsagent på Kubernetes-klyngen
- Visualiser kubernetes dato i Kibana
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
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
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum installer -y docker-ce
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 EOFInstaller 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
- systemctl start kubelet && systemctl aktiver kubelet
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
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
- Log ind på AWS Management Console, og åbn Amazon Elasticsearch Service-konsollen på https://console.aws.amazon.com/es/
- Vælg Opret et nyt domæne, og vælg Installationstype i Amazon ES-konsollen.
- Under version skal du forlade standardværdien i feltet Elasticsearch-version.
- Vælg Næste
- Indtast et navn til dit elastiske søgedomæne på konfigurer klynge side under Konfigurer domæne.
- 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
- UnderDedikerede masterinstanser
- Aktivér dedikeret mester - Aktivér ikke denne mulighed.
- Aktivér zonebevidsthed - Aktivér ikke denne mulighed.
- 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.
- Under kryptering - Aktivér ikke denne mulighed
- Under snapshot-konfiguration
- Automatiseret snapshot-starttid - Vælg Automatiske snapshots start time 00:00 UTC (standard).
- Vælg Næste
- 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.
- 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.
- Vælg Næste.
- 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
- Opret forbindelse til kibana-dashboardets URL for at komme fra Amazon ES-konsol
- 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'
- vælg standardindeksmønsteret (logstash- *)
- Klik på Næste trin, og indstil 'Time filter field Name' (@timestamp), og vælg Opret indeksmønster
- Klik på Opdag for at se dine applikationslogfiler
- 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.