Kako vizualizirati događaje klastera Kubernetes u stvarnom vremenu



Ovaj će vam post na blogu pomoći da naučite kako objaviti podatke o događajima klastera Kubernetes u Amazon Elastic Search koristeći Fluentd agent za prijavu.

U ovom ćete članku naučiti kako objaviti podatke o događajima klastera Kubernetes na Amazonu korištenjem Fluentd agensa za bilježenje. Podaci će se zatim pregledavati pomoću , alat za vizualizaciju otvorenog koda za Elasticsearch. Amazon ES sastoji se od integrirane Kibana integracije.

Provest ćemo vas kroz sljedeći postupak:





Korak 1: Stvaranje Kubernetes klastera

Kubernetes je platforma otvorenog koda koju je Google stvorio za upravljanje kontejneriranim aplikacijama. omogućuje vam upravljanje, skaliranje i primjenu kontejneriranih aplikacija u klasteriziranom okruženju. Svoje kontejnere možemo orkestrirati na raznim domaćinima Namjesnici , skalirajte kontejnerirane aplikacije sa svim resursima u letu i imate centralizirano okruženje za upravljanje spremnicima.

Započet ćemo sa stvaranjem Kubernetes klastera i pokazat ću vam korak po korak kako instalirati i konfigurirati Kubernetes na CentOS 7.



jedan. Konfigurirajte hostove

    • vi / etc / hosts
    • napravite promjene u skladu s pojedinostima vašeg domaćina u datoteci domaćina

IMG1 - Elasticsearch - Edureka

2. Onemogućite SELinux izvršavanjem naredbi u nastavku



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = provođenje / SELINUX = onemogućeno / g’ / etc / sysconfig / selinux

3. Omogući br_netfilter modul jezgre

Modul br_netfilter potreban je za instalaciju kubernetesa. Pokrenite naredbu u nastavku da omogućite modul br_netfilter kernel.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Četiri. Onemogućite SWAP izvođenjem naredbi ispod.

    • zamjena -a
    • Zatim uredite / etc / fstab i komentirajte zamjenski redak

5. Instalirajte najnoviju verziju Dockera CE.Instalirajte ovisnosti paketa za docker-ce izvođenjem naredbi ispod.

    • yum instalirati -y yum-utils device-mapper-persistent-data lvm2
Dodajte spremište dockera u sustav i instalirajte docker-ce pomoću naredbe yum.

6. Instalirajte Kubernetes

Upotrijebite sljedeću naredbu za dodavanje spremišta kubernetes u sustav centos 7.
    • njam instaliraj -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
Instalirajte pakira kubeadm, kubelet i kubectl koristeći izvođenjem yum naredbe ispod.
  • systemctl start docker && systemctl omogući docker

Nakon završetka instalacije, ponovno pokrenite sve te poslužitelje.Nakon ponovnog pokretanja pokrenite servisni docker i kubelet

  • systemctl start docker && systemctl omogući docker
  • systemctl start kubelet && systemctl omogući kubelet
7. Inicijalizacija klastera Kubernetesa Prijavite se na glavni poslužitelj i pokrenite naredbu u nastavku
  • systemctl start kubelet && systemctl omogući kubelet
Kad je Kubernetesova inicijalizacija završena, dobit ćete rezultate.Kopirajte naredbe iz rezultata koje ste dobili i izvršite ih da biste počeli koristiti klaster. Zabilježite naredbu kubeadm join iz rezultata. Naredba će se koristiti za registraciju novih čvorova u klaster kubernetes. 8. Postavite flanelsku mrežu na klaster kubernetes kubectl primijeniti -f

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

Flanela mreža raspoređena je na klaster Kubernetes. Pričekajte neko vrijeme, a zatim provjerite kubernetes čvor i mahune pomoću naredbi u nastavku.
    • kubectl dobiti čvorove
    • kubectl dobiva mahune –sve prostore imena
I dobit ćete da čvor 'k8s-master' radi kao 'master' klaster sa statusom 'spreman' i dobit ćete sve mahune potrebne za klaster, uključujući 'kube-flannel-ds' za mrežni pod konfiguracija.

9. Dodavanje čvorova u klasterSpojite se na poslužitelj node01 i pokrenite naredbu kubeadm join

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

Spojite se na node02 poslužitelj i pokrenite naredbu kubeadm join

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

Pričekajte neko vrijeme i provjerite valjanost glavnog poslužitelja klastera 'k8s-master', provjerite čvorove i mahune pomoću sljedeće naredbe.

      • kubectl dobiti čvorove

Sada ćete dobiti worker1 i worker2 je dodan u klaster sa statusom 'spreman'.

      • kubectl dobiva mahune –sve prostore imena

Inicijalizacija i konfiguracija matičnog klastera Kubernetes je dovršena.

Korak 2: Stvaranje Amazon ES klastera

Elasticsearch je motor za pretraživanje i analitiku otvorenog koda koji se koristi za analizu dnevnika i nadzor aplikacija u stvarnom vremenu. Amazon Elasticsearch Service (Amazon ES) je AWS usluga koja omogućuje postavljanje, rad i opseg Elasticsearch-a u AWS oblaku. Amazon ES možete koristiti za analizu događaja slanja e-pošte s vašeg Amazon SES-a

kako koristiti tostring u javi -

Stvorit ćemo Amazon ES klaster, a zatim rasporediti agent za prijavu Fluentd u klaster Kubernetes koji će prikupljati zapisnike i slati u Amazon ES klaster

Ovaj odjeljak pokazuje kako koristiti Amazon ES konzolu za stvaranje Amazon ES klastera.

Da biste stvorili Amazon ES klaster

    1. Prijavite se na AWS Management Console i otvorite Amazon Elasticsearch Service konzolu na https://console.aws.amazon.com/es/
    2. Odaberi Stvorite novu domenu i odaberite vrstu implementacije u Amazon ES konzoli.
    3. U odjeljku Verzija ostavite zadanu vrijednost polja verzije Elasticsearch.
    4. Odaberite Dalje
    5. Upišite naziv svoje Elastic domene pretraživanja na konfigurirati klaster stranica pod Konfigurirajte domenu.
    6. Na stranici Konfiguriranje klastera odaberite sljedeće opcije u odjeljku Primjeri podataka
      • Vrsta instance - Odaberite t2.micro.elasticsearch (ispunjava uvjete za besplatnu razinu).
      • Broj instance - jedan
    7. Pod, ispodNamjenske glavne instance
      • Omogući namjenski master - Nemojte omogućiti ovu opciju.
      • Omogućite svjesnost o zonama - Nemojte omogućiti ovu opciju.
    8. U odjeljku Konfiguracija pohrane odaberite sljedeće mogućnosti.
      • Vrsta spremišta - Odaberite EBS. Za postavke EBS-a odaberite vrstu volumena EBS opće namjene (SSD) i veličinu EBS glasnoće& tankood 10.
    9. Pod šifriranjem - Nemojte omogućiti ovu opciju
    10. U konfiguraciji snimke
      • Automatski početni sat snimke - Odaberite Automatske snimke početak sata 00:00 UTC (zadano).
    11. Odaberite Dalje
    12. U odjeljku Konfiguracija mreže odaberite VPC pristup i odaberite detalje prema vašem VPC-u prikazano je dolje.Pod provjerom autentičnosti Kibana: - Nemojte omogućiti ovu opciju.
    13. Da biste postavili pravila pristupa, odaberite Dopusti otvoreni pristup domeni.Napomena: - U proizvodnji biste trebali ograničiti pristup određenim IPadresama ili rasponima.
    14. Odaberite Dalje.
    15. Na stranici Pregled pregledajte svoje postavke, a zatim odaberite Potvrdi i izradi.

Napomena: Klasteru će trebati do deset minuta za postavljanje. Zapamtite svoj Kibana URL kada kliknete na elastičnu domenu za pretraživanje koja je stvorena.

Korak 3: Postavite agent za prijavu Fluentd na klaster Kubernetes

Fluentd je skupljač podataka otvorenog koda koji vam omogućuje objedinjavanje prikupljanja i potrošnje podataka radi bolje upotrebe i razumijevanja podataka. U ovom ćemo slučaju rasporediti prijavu Fluentd na klaster Kubernetes, koja će prikupiti datoteke dnevnika i poslati ih Amazon Elastic Search.

Stvorit ćemo ClusterRole koji pruža dozvole za pods i objekte prostora imena za izradu zahtjeva za dobivanje, popis i gledanje klastera.

Prvo, moramo konfigurirati dozvole RBAC (kontrola pristupa zasnovana na ulogama) tako da Fluentd može pristupiti odgovarajućim komponentama.

1.fluentd-rbac.yaml:

apiVersion: v1 vrsta: ServiceAccount metapodaci: ime: fluentd prostor imena: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 vrsta: ClusterRole metapodaci: name: fluentd prostor imena: pravila sistema kube: - apiGroups: - ' 'resursi: - pods - glagoli prostora prostora: - get - list - watch --- vrsta: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metapodaci: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io predmeti: - vrsta: ServiceAccount name: fluentd space names: kube-system

Stvori: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Sada možemo stvoriti DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 vrsta: DaemonSet metapodaci: ime: fluentd prostor imena: kube-sistemske oznake: k8s-app: fluentd-logging verzija: v1 kubernetes.io/cluster-service: 'true' specifikacija: predložak: metapodaci: oznake: k8s -app: verzija fluentd-logging: v1 kubernetes.io/cluster-service: 'true' specifikacija: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - 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 ' ime: FLUENT_UID vrijednost: '0' resursi: ograničenja: memorija: 200Mi zahtjeva: procesor: 100m memorija: 200Mi količinaMounts: - ime: varlog mountPath: / var / log - ime: varlibdockercontainers mountPath: / var / lib / docker / kontejneri readOnly : true prestanakGracePeriodSeconds: 30 svezaka: - name: varlog hostPath: path: / var / log - name: varlibdockercontainers hostPath: put: / var / lib / docker / kontejneri

Svakako definirajte FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT prema vašem elastičnom okruženju pretraživanja

Postaviti:

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

razlike između html i xml

Potvrdite zapisnike

$ kubectl zapisnici fluentd-lwbt6 -n kube-system | grep veza

Trebali biste vidjeti da se Fluentd povezuje s Elasticsearchom unutar dnevnika:

Korak 4: Vizualizirajte podatke kubernetesa u Kibani

  1. Spojite se na URL kibana nadzorne ploče da biste došli s Amazon ES konzole
  2. Da biste vidjeli zapisnike koje je prikupio Fluentd u Kibani, kliknite 'Upravljanje', a zatim odaberite 'Uzorci indeksa' pod 'Kibana'
  3. odaberite zadani uzorak indeksa (logstash- *)
  4. Kliknite Sljedeći korak i postavite 'Naziv polja vremenskog filtra' (@timestamp) i odaberite Stvaranje uzorka indeksa
  5. Kliknite Otkrij da biste pregledali zapisnike aplikacija
  6. Kliknite Vizualiziraj i odaberite izradi vizualizaciju i odaberite Pita. Ispunite sljedeća polja kako je prikazano dolje.
    • Odaberite Logstash- * index i kliknite podijeljene kriške
    • Agregacija - značajni pojmovi
    • Polje = Kubernetes.pod_name.keyword
    • Veličina - 10

7. I primijeni promjene

To je to! Na ovaj način možete vizualizirati Kubernetes Pod stvoren u Kibani.

Sažetak :

Nadzor analizom dnevnika ključna je komponenta bilo koje primjene aplikacije. Možete skupiti i konsolidirati zapisnike preko svojeg klastera u Kubernetesu kako biste nadzirali cijelu klasteru s jedne nadzorne ploče. U našem primjeru vidjeli smo kako fluentd djeluje kao posrednik između klastera kubernetes i Amazon ES. Fluentd kombinira prikupljanje i agregiranje dnevnika i šalje zapisnike Amazonu ES za analitiku dnevnika i vizualizaciju podataka s kibanom.

Gornji primjer pokazuje kako dodati AWS Elastic zapisivanje pretraživanja i praćenje kibane u kubernetes klaster koristeći fluentd.

Ako vam se učini da je ovaj Kubernetesov blog relevantan, pogledajte Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.