Ako vizualizovať klastrové udalosti Kubernetes v reálnom čase



Tento blogový príspevok vám pomôže, aby ste sa naučili, ako publikovať údaje o udalostiach klastra Kubernetes na Amazon Elastic Search pomocou agenta protokolovania Fluentd.

V tomto článku sa dozviete, ako publikovať údaje udalostí klastra Kubernetes na Amazone pomocou agenta ťažby Fluentd. Údaje sa potom zobrazia pomocou , vizualizačný nástroj otvoreného zdroja pre Elasticsearch. Amazon ES pozostáva z integrovanej integrácie Kibana.

Prevedieme vás týmto procesom:





Krok 1: Vytvorenie klastra Kubernetes

Kubernetes je platforma otvoreného zdroja vytvorená spoločnosťou Google na správu kontajnerovaných aplikácií. umožňuje vám spravovať, škálovať a nasadzovať vaše kontajnerizované aplikácie v klastrovanom prostredí. Môžeme organizovať naše kontajnery medzi rôznymi hostiteľmi s Guvernéri , škálovať kontajnerované aplikácie so všetkými prostriedkami za behu a mať prostredie centralizovanej správy kontajnerov.

Začneme s vytváraním klastra Kubernetes a ukážem vám krok za krokom, ako nainštalovať a nakonfigurovať Kubernetes na CentOS 7.



jeden. Nakonfigurujte hostiteľov

    • vi / etc / hosts
    • vykonajte zmeny podľa podrobností hostiteľa v súbore hostiteľov

IMG1 - Elasticsearch - Edureka

2. Zakážte SELinux vykonaním nasledujúcich príkazov



    • nasadenie 0
    • sed -i –follow-symlinks ‘s / SELINUX = vynútiteľný / SELINUX = deaktivovaný / g’ / etc / sysconfig / selinux

3. Povoliť modul jadra br_netfilter

Pre inštaláciu kubernetes je potrebný modul br_netfilter. Spustením príkazu nižšie povolíte modul jadra br_netfilter.
    • modprobe br_netfilter
    • echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables

Štyri. Deaktivujte SWAP spustením pod príkazmi.

    • výmena -a
    • Potom upravte / etc / fstab a okomentujte swapový riadok

5. Nainštalujte si najnovšiu verziu Docker CE.Nainštalujte si balíkové závislosti pre docker-ce spustením nižšie uvedených príkazov.

    • yum install -y yum-utils zariadenie-mapovač-perzistentné-dáta lvm2
Pridajte docker úložisko do systému a nainštalujte docker-ce pomocou príkazu yum.

6. Nainštalujte si Kubernetes

Pomocou nasledujúceho príkazu pridajte úložisko kubernetes do systému centos 7.
    • yum nainštalovať -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
Nainštalujte balíčky kubeadm, kubelet a kubectl pomocou spustenia príkazu yum nižšie.
  • systemctl start docker && systemctl enable docker

Po dokončení inštalácie reštartujte všetky tieto servery.Po reštarte spustite ukotviteľný panel služieb a kubelet

  • systemctl start docker && systemctl enable docker
  • systemctl start kubelet && systemctl povoliť kubelet
7. Inicializácia klastra Kubernetes Prihláste sa na hlavný server a spustite nasledujúci príkaz
  • systemctl start kubelet && systemctl povoliť kubelet
Po dokončení inicializácie Kubernetes získate výsledky.Skopírujte príkazy z výsledkov, ktoré ste dostali, a vykonaním príkazu začnite používať klaster. Z výsledkov si poznačte príkaz kubeadm join. Príkaz sa použije na registráciu nových uzlov do klastra kubernetes. 8. Nasaďte flanelovú sieť do klastra kubernetes kubectl použiť -f

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

Flanelová sieť bola nasadená do klastra Kubernetes. Počkajte nejaký čas a potom pomocou nižšie uvedených príkazov skontrolujte uzol a pody kubernetes.
    • kubectl získať uzly
    • kubectl get pods - all-namespaces
Získate uzol „k8s-master“, ktorý beží ako „hlavný“ klaster so stavom „pripravený“, a získate všetky pody, ktoré sú potrebné pre klaster, vrátane „kube-flannel-ds“ pre sieťový pod. konfigurácia.

9. Pridanie uzlov do klastraPripojte sa k serveru node01 a spustite príkaz kubeadm join

nastavenie cesty triedy v jave
    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5

Pripojte sa k serveru node02 a spustite príkaz kubeadm join

hlboké klonovanie a plytké klonovanie v jave
    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5

Počkajte nejaký čas a overte server hlavného klastra „k8s-master“, skontrolujte uzly a pody pomocou nasledujúceho príkazu.

      • kubectl získať uzly

Teraz získate Worker1 a Worker2 bol pridaný do klastra so stavom „pripravený“.

      • kubectl get pods - all-namespaces

Inicializácia a konfigurácia hlavného servera klastra Kubernetes bola dokončená.

Krok 2: Vytvorenie klastra Amazon ES

Elasticsearch je vyhľadávací a analytický nástroj otvoreného zdroja, ktorý sa používa na analýzu protokolov a monitorovanie aplikácií v reálnom čase. Amazon Elasticsearch Service (Amazon ES) je služba AWS, ktorá umožňuje nasadenie, prevádzku a rozsah Elasticsearch v oblaku AWS. Môžete použiť Amazon ES na analýzu udalostí odosielania e-mailov z vášho Amazon SES

Vytvoríme klaster Amazon ES a potom nasadíme agenta protokolovania Fluentd do klastra Kubernetes, ktorý bude zhromažďovať protokoly a odosielať ich do klastra Amazon ES

Táto časť ukazuje, ako používať konzolu Amazon ES na vytvorenie klastra Amazon ES.

Na vytvorenie klastra Amazon ES

    1. Prihláste sa do konzoly AWS Management Console a otvorte konzolu Amazon Elasticsearch Service na adrese https://console.aws.amazon.com/es/
    2. Vyberte Vytvorte novú doménu a vyberte typ nasadenia v konzole Amazon ES.
    3. V časti Verzia ponechajte predvolenú hodnotu poľa verzie Elasticsearch.
    4. Vyberte Ďalej
    5. Na server zadajte názov svojej elastickej vyhľadávacej domény konfigurovať klaster stránka pod Konfigurovať doménu.
    6. Na stránke Konfigurovať klaster vyberte v časti Inštancie údajov nasledujúce možnosti
      • Typ inštancie - Vyberte si t2.micro.elasticsearch (vhodná pre bezplatnú vrstvu).
      • Číslo inštancie - jeden
    7. PodVyhradené hlavné inštancie
      • Povoliť vyhradenú hlavnú jednotku - Nepovoľujte túto možnosť.
      • Povoliť povedomie o zóne - Nepovoľujte túto možnosť.
    8. V časti Konfigurácia úložiska vyberte nasledujúce možnosti.
      • Typ úložiska - Vyberte EBS. Pre nastavenia EBS vyberte typ zväzku EBS na všeobecné použitie (SSD) a veľkosť zväzku EBS& thinspz 10.
    9. Pod šifrovaním - Nepovoľujte túto možnosť
    10. Pod konfiguráciou snímky
      • Automatická hodina začatia hodiny - Vyberte Automatizované snímky, začiatočná hodina 00:00 UTC (predvolené).
    11. Vyberte Ďalej
    12. V časti Konfigurácia siete vyberte prístup VPC a nižšie vyberte podrobnosti podľa vášho VPC.V rámci autentifikácie Kibana: - Nepovoľujte túto možnosť.
    13. Ak chcete nastaviť politiku prístupu, vyberte Povoliť otvorený prístup k doméne.Poznámka: - Vo výrobe by ste mali obmedziť prístup na konkrétnu adresu IP alebo rozsahy.
    14. Vyberte Ďalej.
    15. Na stránke Kontrola skontrolujte svoje nastavenia a potom zvoľte Potvrdiť a Vytvoriť.

Poznámka: Nasadenie klastra bude trvať až desať minút. Po kliknutí na vytvorenú elastickú vyhľadávaciu doménu si poznačte svoju adresu URL Kibana.

Krok 3: Nasadenie agenta protokolovania Fluentd na klastri Kubernetes

Fluentd je open source zberač dát, ktorý vám umožní zjednotiť zber a spotrebu dát pre lepšie využitie a pochopenie dát. V tomto prípade nasadíme protokolovanie Fluentd na klastri Kubernetes, ktorý bude zhromažďovať súbory denníkov a odosielať ich do Amazon Elastic Search.

Vytvoríme ClusterRole, ktorá poskytuje povolenia pre pody a objekty menného priestoru na vykonanie žiadosti o získanie, zoznam a sledovanie klastra.

Najskôr musíme nakonfigurovať povolenia RBAC (riadenie prístupu na základe rolí), aby mohol Fluentd pristupovať k príslušným komponentom.

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: - ' 'zdroje: - pody - slovesá menných priestorov: - získať - zoznam - sledovať --- druh: ClusterRoleBinding apiVerzia: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io predmety: - druh: ServiceAccount názov: fluentd namespace: kube-system

Vytvoriť: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Teraz môžeme vytvoriť 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: verzia s protokolom fluentd: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountname: fluentd tolerancie: - kľúč: node-role.kubernetes.io/master efekt: NoSchedule containers: - name: fluentd image: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST value: 'elasticsearch.logging' - name: FLUENT_ELASTICSEARCH_PORT value: '9200' - name: FLUENT_ELASTICSEAR '' - name: FLUENT_UID value: '0' resources: limits: memory: 200Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: / var / log - name: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : pravdivé ukončenieGracePeriodSeconds: 30 zväzkov: - názov: varlog hostPath: cesta: / var / log - názov: varlibdockercontainers hostPath: cesta: / var / lib / docker / containers

Nezabudnite definovať FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT podľa vášho elastického vyhľadávacieho prostredia

Nasadiť:

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

Overte denníky

$ kubectl protokoly fluentd-lwbt6 -n kube-system | grep Pripojenie

Mali by ste vidieť, že Fluentd sa pripája k Elasticsearch v protokoloch:

Krok 4: Vizualizácia údajov kubernetes v Kibane

  1. Pripojte sa k adrese URL palubnej dosky kibana a dostanete sa z konzoly Amazon ES
  2. Ak chcete zobraziť protokoly zhromaždené spoločnosťou Fluentd v Kibane, kliknite na položku „Správa“ a potom v časti „Kibana“ vyberte položku „Indexové vzory“.
  3. zvoľte predvolený vzor indexu (logstash- *)
  4. Kliknite na Ďalší krok a nastavte „Názov poľa filtra času“ (@timestamp) a zvoľte Vytvoriť vzor indexu
  5. Kliknutím na tlačidlo Objaviť zobrazíte protokoly aplikácií
  6. Kliknite na Vizualizovať, vyberte vytvoriť vizualizáciu a vyberte možnosť Koláč. Vyplňte nasledujúce polia, ako je uvedené nižšie.
    • Vyberte index Logstash- * a kliknite na rozdelené rezy
    • Agregácia - dôležité pojmy
    • Pole = Kubernetes.pod_name.keyword
    • Veľkosť - 10

7. A použite zmeny

To je všetko! Takto si môžete vizualizovať Kubernetes Pod vytvorený v Kibane.

ako pridať javu na cestu -

Zhrnutie :

Monitorovanie pomocou analýzy protokolov je kritickou súčasťou každého nasadenia aplikácie. Môžete zhromažďovať a konsolidovať protokoly vo svojom klastri v Kubernetes, aby ste mohli monitorovať celý klaster z jedného jediného palubného panela. V našom príklade sme videli, že fluentd pôsobí ako prostredník medzi kubernetovým klastrom a Amazon ES. Fluentd kombinuje zhromažďovanie a agregáciu protokolov a odosiela protokoly spoločnosti Amazon ES na analýzu a vizualizáciu protokolov pomocou protokolu kibana.

Vyššie uvedený príklad ukazuje, ako pridať klaster kubernetes pomocou fluentd protokolovanie vyhľadávania AWS Elastic a monitorovanie kibany.

Ak sa vám zdá tento blog Kubernetes relevantný, pozrite si stránku autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.