Kako v realnem času vizualizirati dogodke grozdov Kubernetes



Ta objava v spletnem dnevniku vam bo pomagala, da se naučite objavljati podatke o dogodkih grozda Kubernetes v Amazon Elastic Search s pomočjo prijavnega sredstva Fluentd.

V tem članku boste izvedeli, kako objaviti podatke o dogodkih grozda Kubernetes v Amazonu z uporabo Fluentd-ovega sredstva za sečnjo. Podatki si bodo nato ogledali z uporabo , odprtokodno orodje za vizualizacijo Elasticsearch. Amazon ES je sestavljen iz integrirane integracije Kibana.

Vodili vas bomo po naslednjem postopku:





1. korak: Ustvarjanje grozda Kubernetes

Kubernetes je odprtokodna platforma, ki jo je Google ustvaril za upravljanje vsebniških aplikacij. omogoča upravljanje, spreminjanje obsega in razmestitev vaših vsebniških aplikacij v gručastem okolju. Svoje zabojnike lahko razporedimo med različne gostitelje Guvernerji , sproti prilagodite vsebniške aplikacije z vsemi viri in imate centralizirano okolje za upravljanje vsebnikov.

Začeli bomo z ustvarjanjem grozda Kubernetes in po korakih vam bom prikazal, kako namestiti in konfigurirati Kubernetes na CentOS 7.



eno. Konfigurirajte gostitelje

    • vi / etc / hosts
    • spremenite glede na podrobnosti gostitelja v datoteki gostiteljev

IMG1 - Elasticsearch - Edureka

2. Onemogočite SELinux z izvajanjem spodnjih ukazov



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = uveljavljanje / SELINUX = onemogočeno / g’ / etc / sysconfig / selinux

3. Omogoči modul jedra br_netfilter

Za namestitev kubernetes je potreben modul br_netfilter. Zaženite spodnji ukaz, da omogočite modul jedra br_netfilter.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Štiri. Onemogočite SWAP tako, da zaženete spodnje ukaze.

    • zamenjava -a
    • Nato uredite / etc / fstab in komentirajte zamenjavo

5. Namestite najnovejšo različico Docker CE.Namestite odvisnosti paketa za docker-ce tako, da zaženete spodnje ukaze.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Dodajte repozitorij dockerja v sistem in z ukazom yum namestite docker-ce.

6. Namestite Kubernetes

Z naslednjim ukazom dodajte shrambo kubernetes v sistem centos 7.
    • yum namestite -y kubelet bebeadm kubectl

[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 omogočeno = 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
Namestite pakira kubeadm, kubelet in kubectl z uporabo spodnjega ukaza yum.
  • & systemctl start docker && systemctl omogoči docker

Po končani namestitvi znova zaženite vse te strežnike.Po ponovnem zagonu zaženite servisni docker in kubelet

  • & systemctl start docker && systemctl omogoči docker
  • & systemctl start kubelet && systemctl omogoči kubelet
7. Inicializacija grozdov Kubernetes Prijavite se v glavni strežnik in zaženite spodnji ukaz
  • & systemctl start kubelet && systemctl omogoči kubelet
Ko je Kubernetesova inicializacija končana, boste dobili rezultate.Kopirajte ukaze iz rezultatov, ki ste jih dobili, in Izvedite, da začnete uporabljati gručo. Zapišite si ukaz kubeadm join iz rezultatov. Ukaz bo uporabljen za registracijo novih vozlišč v gruči kubernetes. 8. Razporedite flanelovo mrežo v gručo kubernetes kubectl velja -f

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

Flanelovo omrežje je bilo razporejeno v skupino Kubernetes. Počakajte nekaj časa in nato s pomočjo spodnjih ukazov preverite kubernetes vozlišče in pods.
    • kubectl dobili vozlišča
    • kubectl dobi pods - vse-imenske prostore
In dobili boste, da vozlišče 'k8s-master' deluje kot 'master' gruča s statusom 'ready', in dobili boste vse pods, ki so potrebne za gručo, vključno z 'kube-flannel-ds' za omrežni pod konfiguracijo.

9. Dodajanje vozlišč v gručoPovežite se s strežnikom node01 in zaženite ukaz kubeadm join

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

Povežite se s strežnikom node02 in zaženite ukaz kubeadm join

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

Počakajte nekaj časa in potrdite strežnik glavne gruče 'k8s-master', preverite vozlišča in pods z naslednjim ukazom.

      • kubectl dobili vozlišča

Zdaj boste dobili worker1 in worker2 je bil dodan v gručo s statusom 'pripravljen'.

      • kubectl dobi pods - vse-imenske prostore

Inicializacija in konfiguracija glavnega grozda Kubernetes je končana.

2. korak: Ustvarjanje grozda Amazon ES

Elasticsearch je odprtokodni mehanizem za iskanje in analitiko, ki se uporablja za analizo dnevnikov in sprotno spremljanje aplikacij. Amazon Elasticsearch Service (Amazon ES) je storitev AWS, ki omogoča uvajanje, delovanje in obseg Elasticsearch v oblaku AWS. Amazon ES lahko uporabite za analizo dogodkov pošiljanja e-pošte z vašega Amazon SES

Ustvarili bomo grupo Amazon ES in nato razporedili agent za beleženje Fluentd v gručo Kubernetes, ki bo zbiral dnevnike in jih pošiljal v gručo Amazon ES

Ta razdelek prikazuje, kako uporabiti konzolo Amazon ES za ustvarjanje gruče Amazon ES.

Če želite ustvariti gručo Amazon ES

    1. Prijavite se v konzolo AWS Management Console in odprite konzolo Amazon Elasticsearch Service na https://console.aws.amazon.com/es/
    2. Izberite Ustvarite novo domeno in izberite vrsto razmestitve v konzoli Amazon ES.
    3. Pod možnostjo Različica pustite privzeto vrednost polja različice Elasticsearch.
    4. Izberite Naprej
    5. Vnesite ime za svojo iskalno domeno Elastic na konfiguriraj grozd stran pod Konfigurirajte domeno.
    6. Na strani Konfiguriranje gruče v razdelku Primerki podatkov izberite naslednje možnosti
      • Vrsta primerka - Izberite t2.micro.elasticsearch (upravičeno do brezplačne stopnje).
      • Število primerov - eno
    7. SpodajNamenski glavni primerki
      • Omogoči namenski mojster - Ne omogočite te možnosti.
      • Omogoči ozaveščenost o conah - Ne omogočite te možnosti.
    8. V razdelku Konfiguracija shranjevanja izberite naslednje možnosti.
      • Vrsta skladišča - Izberite EBS. Za nastavitve EBS izberite vrsto nosilca EBS za splošno uporabo (SSD) in velikost glasnosti EBS& thinspod 10.
    9. Pod šifriranjem - Te možnosti ne omogočite
    10. V konfiguraciji posnetka
      • Avtomatska začetna ura posnetka - Izberite Samodejni posnetki začetna ura 00:00 UTC (privzeto).
    11. Izberite Naprej
    12. V razdelku Konfiguracija omrežja izberite VPC Access in izberite podrobnosti glede na vaš VPC, kot je prikazano spodaj.Pri preverjanju pristnosti Kibana: - Te možnosti ne omogočite.
    13. Če želite nastaviti pravilnik o dostopu, izberite Dovoli odprt dostop do domene.Opomba: - V proizvodnji morate omejiti dostop do določenih naslovov IP ali obsegov.
    14. Izberite Naprej.
    15. Na strani Pregled preglejte nastavitve in izberite Potrdi in ustvari.

Opomba: Razdeljevanje grozda bo trajalo do deset minut. Ko kliknete elastično iskalno domeno, si zabeležite svoj URL Kibana.

3. korak: razmestite agent za beleženje Fluentd v gruči Kubernetes

Fluentd je odprtokodni zbiralnik podatkov, ki vam omogoča poenotenje zbiranja in porabe podatkov za boljšo uporabo in razumevanje podatkov. V tem primeru bomo v grozd Kubernetes razporedili beleženje Fluentd, ki bo zbralo dnevniške datoteke in jih poslalo v Amazon Elastic Search.

Ustvarili bomo ClusterRole, ki zagotavlja dovoljenja za pods in predmete imenskega prostora za izdelavo zahtev za pridobivanje, seznam in ogled v gruči.

Najprej moramo konfigurirati dovoljenja RBAC (nadzor dostopa na podlagi vlog), tako da lahko Fluentd dostopa do ustreznih komponent.

plitka vs globoka kopija java

1. fluentd-rbac.yaml:

apiVersion: v1 vrsta: ServiceAccount metapodatki: ime: fluentd imenski prostor: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 vrsta: ClusterRole metapodatki: ime: fluentd imenski prostor: pravila sistema kube: - apiGroups: - ' 'resources: - pods - namespaces glagoli: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metapodatki: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io predmeti: - vrsta: ServiceAccount name: fluentd namespace: kube-system

Ustvari: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Zdaj lahko ustvarimo DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 vrsta: DaemonSet metapodatki: ime: fluentd imenski prostor: kube-sistemske oznake: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: tekoča različica beleženja: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerance: - key: node-role.kubernetes.io/master effect: NoSchedule container: - name: fluentd image: fluentd / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST value: 'elasticsearch.logging' - name: FLUENT_ELASTICSEARCH_PORT value: '9200' - name: FLUENT_ELASTICSEAR 'http: ime: FLUENT_UID vrednost: '0' viri: omejitve: pomnilnik: 200Mi zahteve: procesor: 100m pomnilnik: 200Mi obsegMounts: - ime: varlog mountPath: / var / log - ime: varlibdockercontainers mountPath: / var / lib / docker / vsebniki readOnly : true окончаvanjeGracePeriodSeconds: 30 zvezkov: - ime: varlog hostPath: pot: / var / log - ime: varlibdockercontainers hostPath: pot: / var / lib / docker / container

Prepričajte se, da ste definirali FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT glede na vaše elastično iskalno okolje

Uvedba:

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

Potrdite dnevnike

$ kubectl dnevniki fluentd-lwbt6 -n kube-system | grep povezava

Videti bi morali, da se Fluentd v dnevnikih poveže z Elasticsearch:

4. korak: Vizualizirajte podatke o kubernetih v Kibani

  1. Povežite se z URL-jem nadzorne plošče kibana, da odprete konzolo Amazon ES
  2. Če si želite ogledati dnevnike, ki jih je zbral Fluentd v Kibani, kliknite »Upravljanje« in nato v razdelku »Kibana« izberite »Vzorci indeksa«.
  3. izberite privzeti vzorec indeksa (logstash- *)
  4. Kliknite Naslednji korak in nastavite 'Ime polja časovnega filtra' (@timestamp) in izberite Ustvari vzorec indeksa
  5. Kliknite Odkrij, če si želite ogledati dnevnike aplikacij
  6. Kliknite Vizualiziraj, izberite Ustvari vizualizacijo in izberite Pita. Izpolnite naslednja polja, kot je prikazano spodaj.
    • Izberite kazalo Logstash- * in kliknite razdeljene rezine
    • Združevanje - pomembni izrazi
    • Polje = Kubernetes.pod_name.keyword
    • Velikost - 10

7. In uporabite spremembe

To je to! Tako si lahko predstavljate Kubernetes Pod, ustvarjen v Kibani.

Povzetek :

Spremljanje z analizo dnevnika je ključni sestavni del vsake uvedbe aplikacije. V Kubernetesu lahko zbirate in konsolidirate dnevnike po celotni gruči, da na eni nadzorni plošči spremljate celotno gručo. V našem primeru smo videli, da je fluentd deloval kot posrednik med skupino kubernetes in Amazon ES. Fluentd združuje zbiranje in združevanje dnevnikov ter pošlje dnevnike na Amazon ES za analizo dnevnikov in vizualizacijo podatkov s kibana.

Zgornji primer prikazuje, kako dodati geslo iskanja AWS Elastic in spremljanje kibane v gručo kubernetes z uporabo fluentd.

Če se vam zdi ta spletni dnevnik Kubernetes ustrezen, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.