Jak vizualizovat události clusteru Kubernetes v reálném čase



Tento příspěvek na blogu vám pomůže naučit se, jak publikovat data událostí klastru Kubernetes na Amazon Elastic Search pomocí agenta protokolování Fluentd.

V tomto článku se dozvíte, jak publikovat data událostí klastru Kubernetes na Amazonu pomocí agenta protokolování Fluentd. Data budou poté zobrazena pomocí , open-source vizualizační nástroj pro Elasticsearch. Amazon ES se skládá z integrované integrace Kibana.

Provedeme vás následujícím procesem:





Krok 1: Vytvoření klastru Kubernetes

Kubernetes je open source platforma vytvořená společností Google pro správu kontejnerových aplikací. umožňuje vám spravovat, škálovat a nasazovat vaše kontejnerizované aplikace v klastrovaném prostředí. Můžeme organizovat naše kontejnery napříč různými hostiteli s Guvernéři , škálovat kontejnerizované aplikace se všemi prostředky za běhu a mít prostředí centralizované správy kontejnerů.

Začneme s vytvářením klastru Kubernetes a já vám ukážu krok za krokem, jak nainstalovat a nakonfigurovat Kubernetes na CentOS 7.



jeden. Nakonfigurujte hostitele

    • vi / etc / hosts
    • proveďte změny podle podrobností o hostiteli v souboru hostitelů

IMG1 - Elasticsearch - Edureka

2. Zakažte SELinux provedením níže uvedených příkazů



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = vynucení / SELINUX = deaktivováno / g’ / etc / sysconfig / selinux

3. Povolte modul jádra br_netfilter

Pro instalaci kubernetes je vyžadován modul br_netfilter. Spuštěním níže uvedeného příkazu povolte modul jádra br_netfilter.
    • modprobe br_netfilter
    • echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables

Čtyři. Zakažte SWAP spuštěním níže uvedených příkazů.

    • swapoff -a
    • Poté upravte / etc / fstab a okomentujte odkládací řádek

5. Nainstalujte si nejnovější verzi Docker CE.Nainstalujte závislosti balíčku pro docker-ce spuštěním níže uvedených příkazů.

    • yum install -y yum-utils mapovač zařízení-perzistentní data lvm2
Přidejte docker repository do systému a nainstalujte docker-ce pomocí příkazu yum.

6. Nainstalujte Kubernetes

Pomocí následujícího příkazu přidejte úložiště kubernetes do systému 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
Nainstalujte balíčky kubeadm, kubelet a kubectl pomocí spuštěním příkazu yum níže.
  • systemctl start docker && systemctl enable docker

Po dokončení instalace restartujte všechny tyto servery.Po restartu spusťte ukotvitelný panel služeb a kubelet

  • systemctl start docker && systemctl enable docker
  • systemctl start kubelet && systemctl povolit kubelet
7. Inicializace klastru Kubernetes Přihlaste se k hlavnímu serveru a spusťte níže uvedený příkaz
  • systemctl start kubelet && systemctl povolit kubelet
Po dokončení inicializace Kubernetes získáte výsledky.Zkopírujte příkazy z výsledků, které jste dostali, a proveďte jej, abyste mohli začít používat cluster. Z výsledků si poznamenejte příkaz kubeadm join. Příkaz se použije k registraci nových uzlů do kubernetes clusteru. 8. Nasadit flanelovou síť do kubernetes clusteru kubectl platí -f

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

Síť flanelu byla nasazena do klastru Kubernetes. Počkejte nějakou dobu a poté pomocí níže uvedených příkazů zkontrolujte uzel a lusky kubernetes.
    • kubectl získat uzly
    • kubectl get pods - all-namespaces
Získáte uzel „k8s-master“ spuštěný jako „hlavní“ klastr se stavem „připraven“ a získáte všechny pody, které jsou pro klastr potřebné, včetně „kube-flannel-ds“ pro síťový pod konfigurace.

9. Přidání uzlů do klastruPřipojte se k serveru node01 a spusťte příkaz kubeadm join

přejít na příkaz c ++
    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5

Připojte se k serveru node02 a spusťte příkaz kubeadm join

pro smyčkový program v Javě
    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5

Počkejte nějakou dobu a ověřte server hlavního klastru „k8s-master“, zkontrolujte uzly a lusky pomocí následujícího příkazu.

      • kubectl získat uzly

Nyní získáte pracovník1 a pracovník2 byl přidán do klastru se stavem „připraven“.

      • kubectl get pods - all-namespaces

Inicializace a konfigurace klastru Kubernetes clusteru byla dokončena.

Krok 2: Vytvoření klastru Amazon ES

Elasticsearch je open source vyhledávací a analytický modul, který se používá pro analýzu protokolů a monitorování aplikací v reálném čase. Amazon Elasticsearch Service (Amazon ES) je služba AWS, která umožňuje nasazení, provoz a rozsah Elasticsearch v cloudu AWS. Amazon ES můžete použít k analýze událostí odesílání e-mailů z vašeho Amazon SES

Vytvoříme klastr Amazon ES a poté nasadíme agenta protokolování Fluentd do klastru Kubernetes, který bude shromažďovat protokoly a odesílat do klastru Amazon ES

Tato část ukazuje, jak použít konzolu Amazon ES k vytvoření clusteru Amazon ES.

Chcete-li vytvořit klastr Amazon ES

    1. Přihlaste se do konzoly pro správu AWS a otevřete konzolu služby Amazon Elasticsearch Service na https://console.aws.amazon.com/es/
    2. Vybrat Vytvořte novou doménu a zvolte typ nasazení v konzole Amazon ES.
    3. V části Verze ponechejte výchozí hodnotu pole verze Elasticsearch.
    4. Vyberte Další
    5. Zadejte název své elastické vyhledávací domény na konfigurovat cluster stránka pod Konfigurovat doménu.
    6. Na stránce Konfigurovat cluster vyberte v části Instance dat následující možnosti
      • Typ instance - Vyberte t2.micro.elasticsearch (volná úroveň způsobilá).
      • Číslo instance - jeden
    7. PodVyhrazené hlavní instance
      • Povolit vyhrazenou hlavní jednotku - Nepovolujte tuto možnost.
      • Povolit povědomí o zóně - Nepovolujte tuto možnost.
    8. V části Konfigurace úložiště vyberte následující možnosti.
      • Typ úložiště - Vyberte EBS. Pro nastavení EBS zvolte typ svazku EBS typu General Purpose (SSD) a velikost svazku EBS& thinspz 10.
    9. Pod šifrováním - Tuto možnost nepovolujte
    10. V rámci konfigurace snímků
      • Automatická hodina začátku hodiny - Zvolte Automatizované snímky počáteční hodinu 00:00 UTC (výchozí).
    11. Zvolte Další
    12. V části Konfigurace sítě vyberte VPC Access a níže vyberte podrobnosti podle vašeho VPC.Pod ověřováním Kibana: - Nepovolujte tuto možnost.
    13. Chcete-li nastavit zásady přístupu, vyberte Povolit otevřený přístup k doméně.Poznámka: - V produkčním prostředí byste měli omezit přístup na konkrétní IP adresu nebo rozsahy.
    14. Zvolte Další.
    15. Na stránce Kontrola zkontrolujte svá nastavení a poté vyberte Potvrdit a Vytvořit.

Poznámka: Nasazení clusteru bude trvat až deset minut. Jakmile kliknete na vytvořenou elastickou vyhledávací doménu, všimněte si své adresy URL Kibana.

Krok 3: Nasazení agenta protokolování Fluentd do klastru Kubernetes

Fluentd je sběrač dat s otevřeným zdrojem, který vám umožní sjednotit sběr a spotřebu dat pro lepší využití a pochopení dat. V tomto případě nasadíme protokolování Fluentd na klastr Kubernetes, který shromáždí soubory protokolu a odešle do Amazon Elastic Search.

Vytvoříme ClusterRole, která poskytuje oprávnění na lusky a objekty oboru názvů, aby bylo možné získat, vypsat a sledovat požadavek na cluster.

Nejprve musíme nakonfigurovat oprávnění RBAC (řízení přístupu na základě rolí), aby měl Fluentd přístup k příslušným komponentám.

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: - ' 'resources: - pods - namespaces verbs: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization Subjekty .k8s.io: - druh: ServiceAccount name: fluentd namespace: kube-system

Vytvořit: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Nyní můžeme vytvořit 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: verze pro plynulé protokolování: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountname: fluentd tolerance: - klíč: node-role.kubernetes.io/master účinek: 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 : true ukončeníGracePeriodSeconds: 30 svazků: ​​- název: varlog hostPath: cesta: / var / log - název: varlibdockercontainers hostPath: cesta: / var / lib / docker / containers

Nezapomeňte definovat FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT podle vašeho elastického vyhledávacího prostředí

Nasazení:

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

Ověřte protokoly

$ kubectl protokoly fluentd-lwbt6 -n kube-system | grep připojení

Měli byste vidět, že se Fluentd připojuje k Elasticsearch v protokolech:

Krok 4: Vizualizujte data kubernetes v Kibaně

  1. Připojte se k adrese URL řídicího panelu kibana a získejte z konzoly Amazon ES
  2. Chcete-li zobrazit protokoly shromážděné společností Fluentd v Kibaně, klikněte na „Správa“ a poté vyberte „Indexové vzory“ v části „Kibana“
  3. vyberte výchozí vzor indexu (logstash- *)
  4. Klikněte na Další krok a nastavte „Název pole časového filtru“ (@timestamp) a zvolte Vytvořit indexový vzor
  5. Klepnutím na Objevit zobrazíte protokoly aplikací
  6. Klikněte na Vizualizovat, vyberte vytvořit vizualizaci a zvolte Koláč. Vyplňte následující pole, jak je uvedeno níže.
    • Vyberte index Logstash- * a klikněte na rozdělené řezy
    • Agregace - významné pojmy
    • Pole = Kubernetes.pod_name.keyword
    • Velikost - 10

7. A proveďte změny

A je to! Takto si můžete vizualizovat Kubernetes Pod vytvořený v Kibaně.

jak přidat java na cestu

souhrn :

Monitorování pomocí analýzy protokolu je kritickou součástí jakéhokoli nasazení aplikace. Můžete shromažďovat a konsolidovat protokoly napříč vaším clusterem v Kubernetes a monitorovat celý cluster z jednoho jediného řídicího panelu. V našem příkladu jsme viděli, že fluentd působí jako prostředník mezi kubernetes cluster a Amazon ES. Fluentd kombinuje sběr a agregaci protokolů a odesílá protokoly do Amazon ES pro analýzu protokolů a vizualizaci dat pomocí kibana.

Výše uvedený příklad ukazuje, jak přidat protokolování vyhledávání AWS Elastic a monitorování kibany do kubernetes clusteru pomocí fluentd.

Pokud shledáte tento blog Kubernetes relevantní, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě.

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme.