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:
- Vytvorenie klastra Kubernetes
- Vytvorenie klastra Amazon ES
- Nasaďte agenta Fluentd na protokolovanie na klastri Kubernetes
- Vizualizujte dátum kubernetes v Kibane
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
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
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum install -y docker-ce
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 EOFNainš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
- systemctl start kubelet && systemctl povoliť kubelet
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
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
- Prihláste sa do konzoly AWS Management Console a otvorte konzolu Amazon Elasticsearch Service na adrese https://console.aws.amazon.com/es/
- Vyberte Vytvorte novú doménu a vyberte typ nasadenia v konzole Amazon ES.
- V časti Verzia ponechajte predvolenú hodnotu poľa verzie Elasticsearch.
- Vyberte Ďalej
- Na server zadajte názov svojej elastickej vyhľadávacej domény konfigurovať klaster stránka pod Konfigurovať doménu.
- 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
- 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ť.
- 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.
- Pod šifrovaním - Nepovoľujte túto možnosť
- Pod konfiguráciou snímky
- Automatická hodina začatia hodiny - Vyberte Automatizované snímky, začiatočná hodina 00:00 UTC (predvolené).
- Vyberte Ďalej
- 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ť.
- 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.
- Vyberte Ďalej.
- 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
- Pripojte sa k adrese URL palubnej dosky kibana a dostanete sa z konzoly Amazon ES
- 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“.
- zvoľte predvolený vzor indexu (logstash- *)
- Kliknite na Ďalší krok a nastavte „Názov poľa filtra času“ (@timestamp) a zvoľte Vytvoriť vzor indexu
- Kliknutím na tlačidlo Objaviť zobrazíte protokoly aplikácií
- 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.