Kā reāllaikā vizualizēt Kubernetes kopas notikumus



Šis emuāra ziņojums palīdzēs jums uzzināt, kā publicēt Kubernetes kopas notikumu datus Amazon Elastic Search, izmantojot Fluentd reģistrēšanas aģentu.

Šajā rakstā jūs uzzināsiet, kā Kubernetes kopas notikumu datus publicēt Amazon izmantojot mežizstrādes aģentu Fluentd. Pēc tam dati tiks apskatīti, izmantojot , atvērtā koda vizualizācijas rīks Elasticsearch. Amazon ES sastāv no integrētas Kibana integrācijas.

Mēs iepazīsimies ar šādu procesu:





1. darbība: Kubernetes kopas izveide

Kubernetes ir atvērtā koda platforma, kuru Google izveidoja konteinerizētu lietojumprogrammu pārvaldībai. tas ļauj jums pārvaldīt, mērogot un izvietot savas konteinerizētās lietotnes sakopotā vidē. Mēs varam izvietot savus konteinerus dažādos resursdatoros Gubernatori , mērogot konteinerā esošās lietotnes ar visiem resursiem, un tām ir centralizēta konteineru pārvaldības vide.

Mēs sāksim ar Kubernetes kopas izveidi un es jums soli pa solim parādīšu, kā Kubernetes instalēt un konfigurēt CentOS 7.



viens. Konfigurēt saimniekus

    • vi / etc / hosts
    • veikt izmaiņas atbilstoši resursdatora informācijai resursdatora failā

IMG1 - Elasticsearch - Edureka

2. Atspējojiet SELinux, izpildot zemāk esošās komandas



    • setenforce 0
    • sed -i –follow-symlinks ’s / SELINUX = izpildīšana / SELINUX = atspējota / g’ / etc / sysconfig / selinux

3. Iespējot br_netfilter kodola moduli

Modulis br_netfilter ir nepieciešams kubernetes instalēšanai. Palaidiet zemāk esošo komandu, lai iespējotu br_netfilter kodola moduli.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Četri. Atspējojiet SWAP, palaižot zem komandām.

    • nomainīt -a
    • Pēc tam rediģējiet / etc / fstab un komentējiet mijmaiņas līniju

5. Instalējiet jaunāko Docker CE versiju.Instalējiet pakotnes atkarības no docker-ce, palaižot zem komandām.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Pievienojiet dokstacijas repozitoriju sistēmai un instalējiet docker-ce, izmantojot komandu yum.

6. Instalējiet Kubernetes

Izmantojiet šo komandu, lai pievienotu kubernetes krātuvi centos 7 sistēmai.
    • yum install -y kubelet bebeadm kubectl

[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 iespējots = 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
Instalējiet pakotnes kubeadm, kubelet un kubectl, palaižot zemāk komandu yum.
  • startctock start & & systemctl iespējojiet docker

Kad instalēšana ir pabeigta, restartējiet visus šos serverus.Pēc restartēšanas palaidiet pakalpojumu dokstaciju un kubelet

  • startctock start & & systemctl iespējojiet docker
  • systemctl startēt kubelet && systemctl iespējot kubelet
7. Kubernetes kopas inicializēšana Piesakieties galvenajā serverī un palaidiet zemāk esošo komandu
  • systemctl startēt kubelet && systemctl iespējot kubelet
Kad Kubernetes inicializēšana būs pabeigta, jūs iegūsiet rezultātus.Nokopējiet komandas no iegūtajiem rezultātiem un izpildiet to, lai sāktu izmantot kopu. No rezultātiem atzīmējiet komandu kubeadm join. Komanda tiks izmantota jaunu mezglu reģistrēšanai kubernetes kopā. 8. Izvietojiet flaneļa tīklu kubernetes kopā kubectl piemērot -f

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

Flaneļa tīkls ir izvietots Kubernetes kopā. Pagaidiet kādu laiku un pēc tam pārbaudiet kubernetes mezglu un pākstis, izmantojot zemāk esošās komandas.
    • kubectl iegūt mezglus
    • kubectl iegūt pākstis - visas nosaukumvietas
Jūs iegūsiet, ka mezgls “k8s-master” darbojas kā “galvenais” kopa ar statusu “gatavs”, un jūs saņemsiet visas kopai nepieciešamās pākstis, ieskaitot tīkla pogu “kube-flannel-ds”. konfigurācija.

9. Mezglu pievienošana kopaiIzveidojiet savienojumu ar serveri node01 un palaidiet komandu kubeadm join

    • kubeadm pievienoties 172.31.7.47:6443 - runāts at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4

Izveidojiet savienojumu ar node02 serveri un palaidiet komandu kubeadm join

    • kubeadm pievienoties 172.31.7.47:6443 - runāts at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4

Pagaidiet kādu laiku un pārbaudiet galvenā klastera serveri ‘k8s-master’, pārbaudiet mezglus un pākstis, izmantojot šo komandu.

      • kubectl iegūt mezglus

Tagad jūs saņemsiet darbinieks1 un darbinieks2 ir pievienots kopai ar statusu “gatavs”.

      • kubectl iegūt pākstis - visas nosaukumvietas

Kubernetes kopu galvenā inicializācija un konfigurēšana ir pabeigta.

2. solis: Amazon ES klastera izveide

Elasticsearch ir atvērtā koda meklēšanas un analīzes programma, kas tiek izmantota žurnālu analīzei un lietojumprogrammu reāllaika uzraudzībai. Amazon Elasticsearch Service (Amazon ES) ir AWS pakalpojums, kas ļauj Elasticsearch izvietošanu, darbību un mērogu AWS mākonī. Varat izmantot Amazon ES, lai analizētu e-pasta ziņojumu sūtīšanas notikumus no sava Amazon SES

Mēs izveidosim Amazon ES kopu un pēc tam izvietosim Fluentd mežizstrādes aģentu Kubernetes kopā, kas apkopos žurnālus un nosūtīs tos uz Amazon ES kopu

Šajā sadaļā ir parādīts, kā izmantot Amazon ES konsoli, lai izveidotu Amazon ES kopu.

Lai izveidotu Amazon ES kopu

    1. Pierakstieties AWS pārvaldības konsolē un atveriet Amazon Elasticsearch Service konsoli vietnē https://console.aws.amazon.com/es/
    2. Atlasiet Izveidojiet jaunu domēnu un izvēlieties Izvietošanas veids Amazon ES konsolē.
    3. Sadaļā Versija atstājiet lauka Elasticsearch versija noklusējuma vērtību.
    4. Atlasiet Tālāk
    5. Vietnē ierakstiet elastīgā meklēšanas domēna nosaukumu konfigurēt kopu lapa zem Konfigurēt domēnu.
    6. Lapas Konfigurēt kopu sadaļā Datu eksemplāri atlasiet šīs opcijas
      • Instances tips - Izvēlieties t2.micro.elasticsearch (piemērots bezmaksas līmenis).
      • Gadījumu skaits - viens
    7. ZemĪpašas galvenās instances
      • Iespējot veltīto meistaru - Neiespējojiet šo opciju.
      • Iespējot zonu izpratni - Neiespējojiet šo opciju.
    8. Sadaļā Krātuves konfigurācija izvēlieties šādas opcijas.
      • Uzglabāšanas veids - Izvēlieties EBS. Lai iestatītu EBS iestatījumus, izvēlieties EBS apjoma tipu General Purpose (SSD) un EBS apjoma lielumu& thinspno 10.
    9. Zem šifrēšanas - Neiespējojiet šo opciju
    10. Zem momentuzņēmuma konfigurācijas
      • Automatizēta momentuzņēmuma sākuma stunda - Izvēlieties Automatizēto momentuzņēmumu sākuma stunda 00:00 UTC (noklusējums).
    11. Izvēlieties Tālāk
    12. Sadaļā Tīkla konfigurācija atlasiet VPC piekļuve un atlasiet sīkāku informāciju, kā norādīts jūsu VPC.Sadaļā Kibana autentifikācija: - neiespējojiet šo opciju.
    13. Lai iestatītu piekļuves politiku, atlasiet Atļaut atvērtu piekļuvi domēnam.Piezīme: - Ražošanā jums jāierobežo piekļuve noteiktai IP adresei vai diapazoniem.
    14. Izvēlieties Tālāk.
    15. Pārskatīšanas lapā pārskatiet iestatījumus un pēc tam izvēlieties Apstiprināt un izveidot.

Piezīme. Klastera izvietošana prasīs līdz desmit minūtēm. Kad noklikšķināt uz izveidotā elastīgā meklēšanas domēna, ņemiet vērā savu Kibana URL.

3. darbība: Fluentd reģistrēšanas aģenta izvietošana Kubernetes kopā

Fluentd ir atvērtā pirmkoda datu savācējs, kas ļauj apvienot datu vākšanu un patēriņu, lai labāk izmantotu un izprastu datus. Šajā gadījumā mēs izvietosim Fluentd reģistrēšanu Kubernetes kopā, kas apkopos žurnāla failus un nosūtīs tos Amazon Elastic Search.

Mēs izveidosim ClusterRole, kas nodrošina atļaujas pākstīm un nosaukumvietas objektiem, lai saņemtu kopas saņemšanas, saraksta un skatīšanās pieprasījumus.

Pirmkārt, mums jākonfigurē RBAC (uz lomu balstītas piekļuves kontroles) atļaujas, lai Fluentd varētu piekļūt atbilstošajiem komponentiem.

1. fluentd-rbac.yaml:

apiVersion: v1 kind: ServiceAccount metadati: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd namespace: kube-system rules: - apiGroups: - ' 'resursi: - pākstis - nosaukumvietu darbības vārdi: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadati: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io priekšmeti: - veids: ServiceAccount nosaukums: tekoša vārdu telpa: kube-system

Izveidot: $ kubectl izveidot -f kubernetes / fluentd-rbac.yaml
Tagad mēs varam izveidot DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 kind: DaemonSet metadati: name: fluentd namespace: kube-system labels: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: fluentd-logging versija: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerances: - atslēga: node-role.kubernetes.io/master effect: NoSchedule containers: - nosaukums: fluentd attēls: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nosaukums: FLUENT_ELASTICSEARCH_HOST vērtība: 'elasticsearch.logging' - nosaukums: FLUENT_ELASTICSEARCH_PORT vērtība: '9200' - nosaukums: FLUENT_ELASTICSEARCH_S ' nosaukums: FLUENT_UID vērtība: '0' resursi: ierobežojumi: atmiņa: 200Mi pieprasījumi: cpu: 100m atmiņa: 200Mi sējumsMounts: - nosaukums: varlog mountPath: / var / log - nosaukums: varlibdockercontainers mountPath: / var / lib / docker / container readOnly : true nutraukumsGracePeriodSeconds: 30 sējumi: - nosaukums: varlog hostPath: ceļš: / var / log - nosaukums: varlibdockercontainers hostPath: ceļš: / var / lib / docker / container

Noteikti definējiet FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT atbilstoši elastīgajai meklēšanas videi

Izvietot:

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

šķirošanas funkcija c ++

Apstipriniet žurnālus

$ kubectl reģistrē fluentd-lwbt6 -n kube-system | grep Savienojums

Jums vajadzētu redzēt, ka Fluentd žurnālos izveido savienojumu ar Elasticsearch:

4. darbība: vizualizējiet datus par kubernetēm Kibanā

  1. Izveidojiet savienojumu ar kibana informācijas paneļa URL, lai saņemtu no Amazon ES konsoles
  2. Lai skatītu Fluentd apkopotos žurnālus Kibanā, noklikšķiniet uz “Management” un pēc tam sadaļā “Kibana” atlasiet “Index Patterns”.
  3. izvēlieties noklusējuma indeksa modeli (logstash- *)
  4. Noklikšķiniet uz Nākamā darbība un iestatiet Laika filtra lauka nosaukums (@timestamp) un izvēlieties Izveidot indeksa modeli
  5. Noklikšķiniet uz Atklāt, lai skatītu lietojumprogrammu žurnālus
  6. Noklikšķiniet uz Vizualizēt un atlasiet Izveidot vizualizāciju un izvēlieties Pie. Aizpildiet šādus laukus, kā parādīts zemāk.
    • Atlasiet indeksu Logstash- * un noklikšķiniet uz sadalīt šķēles
    • Apkopošana - nozīmīgi termini
    • Lauks = Kubernetes.pod_name.keyword
    • Izmērs - 10

7. Un pielietojiet izmaiņas

Tieši tā! Šādi jūs varat vizualizēt Kibanā izveidoto Kubernetes Pod.

Kopsavilkums :

Uzraudzība, izmantojot žurnāla analīzi, ir jebkuras lietojumprogrammas izvietošanas kritiskā sastāvdaļa. Jūs varat apkopot un apvienot žurnālus savā klasterī Kubernetes, lai uzraudzītu visu kopu no viena informācijas paneļa. Mūsu piemērā mēs esam redzējuši, ka brīvi darbojas kā starpnieks starp kubernetes kopu un Amazon ES. Fluentd apvieno žurnālu vākšanu un apkopošanu un nosūta žurnālus uz Amazon ES žurnālu analīzei un datu vizualizēšanai ar kibanu.

Iepriekš minētajā piemērā parādīts, kā pievienot AWS Elastic meklēšanas reģistrēšanu un kibana uzraudzību kubernetes kopai, izmantojot fluentd.

Ja jums šis Kubernetes emuārs šķita atbilstošs, skatiet vietni Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē.

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.