Cum să vizualizați evenimentele cluster Kubernetes în timp real



Această postare de blog vă va ajuta să aflați cum să publicați datele evenimentelor cluster Kubernetes în Amazon Elastic Search folosind agentul de înregistrare Fluentd.

În acest articol, veți afla cum să publicați datele evenimentelor clusterului Kubernetes pe Amazon folosind agent de înregistrare Fluentd. Datele vor fi apoi vizualizate folosind , un instrument de vizualizare open-source pentru Elasticsearch. Amazon ES constă din integrarea integrată Kibana.

Vă vom ghida cu următorul proces:





Pasul 1: Crearea unui cluster Kubernetes

Kubernetes este o platformă open source creată de Google pentru gestionarea aplicațiilor containerizate. vă permite să gestionați, să scalați și să implementați aplicațiile dvs. containerizate într-un mediu grupat. Putem orchestra containerele noastre pe diferite gazde cu Guvernatori , scalați aplicațiile containerizate cu toate resursele din mers și aveți un mediu centralizat de gestionare a containerelor.

Vom începe cu crearea clusterului Kubernetes și vă voi demonstra pas cu pas cum să instalați și să configurați Kubernetes pe CentOS 7.



unu. Configurați gazde

    • vi / etc / hosts
    • faceți modificări în funcție de detaliile gazdei din fișierul gazde

IMG1 - Elasticsearch - Edureka

2. Dezactivați SELinux executând comenzile de mai jos



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = enforcing / SELINUX = disabled / g’ / etc / sysconfig / selinux

3. Activați modulul kernel br_netfilter

Modulul br_netfilter este necesar pentru instalarea kubernetes. Rulați comanda de mai jos pentru a activa modulul kernel br_netfilter.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Patru. Dezactivați SWAP executând comenzile de mai jos.

    • swapoff -a
    • Apoi editați / etc / fstab și comentați linia de swap

5. Instalați cea mai recentă versiune a Docker CE.Instalați dependențele pachetului pentru docker-ce executând comenzile de mai jos.

    • yum instalează -y yum-utils device-mapper-persistent-data lvm2
Adăugați depozitul docker la sistem și instalați docker-ce folosind comanda yum.

6. Instalați Kubernetes

Utilizați următoarea comandă pentru a adăuga depozitul kubernetes la sistemul 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
Instalați fișierul pachetele kubeadm, kubelet și kubectl folosind executând comanda yum de mai jos.
  • systemctl start docker && systemctl activate docker

După finalizarea instalării, reporniți toate acele servere.După repornire porniți serviciul de andocare și kubelet

  • systemctl start docker && systemctl activate docker
  • systemctl start kubelet && systemctl enable kubelet
7. Inițializarea clusterului Kubernetes Conectați-vă la serverul principal și executați comanda de mai jos
  • systemctl start kubelet && systemctl enable kubelet
După finalizarea inițializării Kubernetes, veți obține rezultatele.Copiați comenzile din rezultatele obținute și executați-le pentru a începe să utilizați clusterul. Notați comanda kubeadm join din rezultate. Comanda va fi utilizată pentru a înregistra noi noduri în clusterul kubernetes. 8. Implementați rețeaua de flanelă în clusterul kubernetes kubectl se aplică -f

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

Rețeaua de flanelă a fost implementată în clusterul Kubernetes. Așteptați ceva timp și apoi verificați nodul și podurile kubernetes folosind comenzile de mai jos.
    • kubectl obține noduri
    • kubectl obține poduri - toate spațiile de nume
Și veți obține nodul „k8s-master” care rulează ca un cluster „master” cu starea „gata” și veți obține toate pod-urile necesare pentru cluster, inclusiv „kube-flannel-ds” pentru podul de rețea configurare.

9. Adăugarea de noduri la clusterConectați-vă la serverul node01 și executați comanda kubeadm join

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

Conectați-vă la serverul node02 și executați comanda kubeadm join

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

Așteptați ceva timp și validați serverul de cluster master „k8s-master”, verificați nodurile și podurile folosind următoarea comandă.

      • kubectl obține noduri

cum se folosește anaconda python

Acum veți obține lucrător1 și lucrător2 a fost adăugat la cluster cu starea „gata”.

      • kubectl obține poduri - toate spațiile de nume

Inițializarea și configurarea masterului Kubernetes cluster au fost finalizate.

Pasul 2: Crearea unui cluster Amazon ES

Elasticsearch este un motor de căutare și analiză open source care este utilizat pentru analiza jurnalelor și monitorizarea în timp real a aplicațiilor. Amazon Elasticsearch Service (Amazon ES) este un serviciu AWS care permite implementarea, funcționarea și amploarea Elasticsearch în cloud AWS. Puteți utiliza Amazon ES pentru a analiza e-mailurile care trimit evenimente de pe Amazon SES

Vom crea un cluster Amazon ES și apoi vom implementa agentul de înregistrare Fluentd în clusterul Kubernetes, care va colecta jurnale și le va trimite către clusterul Amazon ES

Această secțiune arată cum să utilizați consola Amazon ES pentru a crea un cluster Amazon ES.

Pentru a crea un cluster Amazon ES

    1. Conectați-vă la AWS Management Console și deschideți consola Amazon Elasticsearch Service la https://console.aws.amazon.com/es/
    2. Selectați Creați un domeniu nou și alegeți tipul de implementare în consola Amazon ES.
    3. Sub Versiune, lăsați valoarea implicită a câmpului versiunii Elasticsearch.
    4. Selectați Următorul
    5. Introduceți un nume pentru domeniul dvs. de căutare elastică pe configurați clusterul pagina de sub Configurați domeniul.
    6. În pagina Configurare cluster, selectați următoarele opțiuni sub Instanțe de date
      • Tipul instanței - Alegeți t2.micro.elasticsearch (Nivel gratuit eligibil).
      • Numărul instanței - unu
    7. SubInstanțe principale dedicate
      • Activați master dedicat - Nu activați această opțiune.
      • Activați conștientizarea zonei - Nu activați această opțiune.
    8. Sub Configurare stocare, alegeți următoarele opțiuni.
      • Tipul de stocare - Alegeți EBS. Pentru setările EBS, alegeți tipul volumului EBS pentru scopul general (SSD) și dimensiunea volumului EBS& thinspdin 10.
    9. Sub criptare - Nu activați această opțiune
    10. În configurația instantaneu
      • Ora automată de începere a instantaneului - Alegeți instantanee automatizate începând cu ora 00:00 UTC (implicit).
    11. Alegeți Următorul
    12. Sub Configurare rețea, selectați Acces VPC și selectați detalii conform VPC-ului dvs. este prezentat mai jos.Sub autentificare Kibana: - Nu activați această opțiune.
    13. Pentru a seta politica de acces, selectați Permiteți accesul deschis la domeniu.Notă: - În producție ar trebui să restricționați accesul la anumite adrese IP sau game.
    14. Alegeți Următorul.
    15. Pe pagina Revizuire, examinați setările, apoi alegeți Confirmare și creare.

Notă: Clusterul va dura până la zece minute pentru a fi implementat. Luați notă de adresa URL Kibana după ce faceți clic pe domeniul de căutare elastic creat.

Pasul 3: Implementați agentul de înregistrare Fluentd pe clusterul Kubernetes

Fluentd este un colector de date open source, care vă permite să unificați colectarea și consumul de date pentru o mai bună utilizare și înțelegere a datelor. În acest caz, vom implementa înregistrarea Fluentd pe clusterul Kubernetes, care va colecta fișierele jurnal și le va trimite la Amazon Elastic Search.

Vom crea un ClusterRole care oferă permisiuni pentru pod-uri și obiecte spațiu de nume pentru a face cererea de obținere, listare și vizionare a clusterului.

În primul rând, trebuie să configurăm permisiunile RBAC (control de acces bazat pe roluri), astfel încât Fluentd să poată accesa componentele corespunzătoare.

1.fluentd-rbac.yaml:

cum se setează java classpath în linia de comandă Linux
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: - ' 'resources: - pods - namespaces verbs: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd role Ref: kind: ClusterRole name: fluentd apiGroup: rbac.authorization Subiecte .k8s.io: - kind: ServiceAccount name: fluentd namespace: kube-system

Creați: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Acum, putem crea 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: versiunea fluentd-logging: v1 kubernetes.io/cluster-service: specificație „adevărată”: serviceAccount: fluentd serviceAccountName: toleranțe fluentd: - cheie: node-role.kubernetes.io/master effect: NoSchedule containers: - nume: imagine fluentd: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nume: FLUENT_ELASTICSEARCH_HOST valoare: 'elasticsearch.logging' - nume: FLUENT_ELASTICSEARCH_PORT valoare: '9200' - nume: FLUENT_ELASTICSEARCH_SCH nume: FLUENT_UID valoare: resurse '0': limite: memorie: 200 cereri Mi: cpu: 100m memorie: 200Mi volum Monturi: - nume: varlog mountPath: / var / log - nume: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : terminare adevăratăGracePeriodSeconds: 30 volume: - nume: varlog hostPath: cale: / var / log - nume: varlibdockercontainers hostPath: cale: / var / lib / docker / containere

Asigurați-vă că definiți FLUENT_ELASTICSEARCH_HOST și FLUENT_ELASTICSEARCH_PORT în funcție de mediul dvs. de căutare elastică

Implementați:

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

Validați jurnalele

$ kubectl jurnalele fluentd-lwbt6 -n kube-system | grep Conexiune

Ar trebui să vedeți că Fluentd se conectează la Elasticsearch în jurnalele:

Pasul 4: Vizualizați datele kubernetes în Kibana

  1. Conectați-vă la adresa URL a tabloului de bord kibana pentru a obține de la consola Amazon ES
  2. Pentru a vedea jurnalele colectate de Fluentd în Kibana, faceți clic pe „Management” și apoi selectați „Modele index” sub „Kibana”
  3. alegeți modelul de index implicit (logstash- *)
  4. Faceți clic pe Pasul următor și setați „Nume câmp filtru timp” (@timestamp) și alegeți Creați model de index
  5. Faceți clic pe Descoperiți pentru a vizualiza jurnalele aplicațiilor
  6. Faceți clic pe Vizualizare și selectați creați o vizualizare și alegeți Plăcintă. Completați următoarele câmpuri așa cum se arată mai jos.
    • Selectați Logstash- * index și faceți clic pe felii împărțite
    • Agregare - Termeni semnificativi
    • Câmp = Kubernetes.pod_name.keyword
    • Dimensiune - 10

7. Și aplicați modificări

Asta este! Acesta este modul în care puteți vizualiza Kubernetes Pod creat în Kibana.

rezumat :

Monitorizarea prin analiza jurnalelor este o componentă critică a oricărei implementări a aplicației. Puteți aduna și consolida jurnalele în clusterul dvs. în Kubernetes pentru a monitoriza întregul cluster dintr-un singur tablou de bord. În exemplul nostru, am văzut fluentd acționând ca un mediator între clusterul kubernetes și Amazon ES. Fluentd combină colectarea și agregarea jurnalelor și trimite jurnale către Amazon ES pentru analiza jurnalelor și vizualizarea datelor cu kibana.

Exemplul de mai sus arată cum să adăugați jurnalul de căutare AWS Elastic și monitorizarea kibana la clusterul kubernetes utilizând fluentd.

Dacă ați găsit relevant acest blog Kubernetes, consultați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii și vă vom răspunde.