Kuidas Kubernetes klastri sündmusi reaalajas visualiseerida



See ajaveebipostitus aitab teil teada saada, kuidas avaldada Kubernetes klastri sündmuste andmeid Amazon Elastic Searchis, kasutades logimisagenti Fluentd.

Selles artiklis saate teada, kuidas Kubernetes klastri sündmuste andmeid Amazonis avaldada kasutades logimisagenti Fluentd. Seejärel vaadatakse andmeid kasutades , Elasticsearchi avatud lähtekoodiga visualiseerimise tööriist. Amazon ES koosneb integreeritud Kibana integreerimisest.

Tutvustame teid järgmise protsessiga:





1. samm: Kubernetese klastri loomine

Kubernetes on avatud lähtekoodiga platvorm, mille Google on loonud konteinerrakenduste haldamiseks. see võimaldab teil konteinerirakendusi hallata, skaleerida ja juurutada rühmitatud keskkonnas. Saame oma konteinereid erinevate hostide kaudu orkestreerida Kubernetes , laiendage konteinerirakendusi kõigi ressurssidega käigu pealt ja neil on tsentraliseeritud konteinerihalduskeskkond.

Alustame Kubernetes-klastri loomisega ja näitan teile samm-sammult, kuidas Kubernetes CentOS 7-sse installida ja konfigureerida.



üks. Hosti seadistamine

    • vi / etc / hosts
    • teha muudatusi vastavalt hostifailis olevatele hostiandmetele

IMG1 - Elasticsearch - Edureka

2. Keelake SELinux, käivitades allpool olevad käsud



    • setenforce 0
    • sed -i –follow-symlinks ’s / SELINUX = jõustamine / SELINUX = keelatud / g’ / etc / sysconfig / selinux

3. Luba br_netfilter Kerneli moodul

Kubernetese installimiseks on vajalik moodul br_netfilter. Br_netfilter kerneli mooduli lubamiseks käivitage allolev käsk.
    • modprobe br_netfilter
    • echo ’1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Neli. Keela SWAP, käivitades käskude all.

    • vahetada -a
    • Seejärel muutke / etc / fstab ja kommenteerige vahetuse rida

5. Installige Docker CE uusim versioon.Paigaldage docker-ce paketisõltuvused käskude all.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Lisage dockeri hoidla süsteemi ja installige docker-ce käsu yum abil.

6. Install Kubernetes

Kubernetese hoidla lisamiseks centos 7 süsteemi kasutage järgmist käsku.
    • yum install -y kubelet bebeadm kubectl

[kubernetes] nimi = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 lubatud = 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
Installige pakendab kubeadm, kubelet ja kubectl, käivitades allpool käsu yum.
  • systemctl start docker && systemctl lubab dockeri

Pärast installi lõppu taaskäivitage kõik need serverid.Pärast taaskäivitamist käivitage teenuste dokkija ja kubelet

  • systemctl start docker && systemctl lubab dockeri
  • systemctl start kubelet && systemctl lubab kubelet
7. Kubernetes Cluster Initialization Logige sisse põhiserverisse ja käivitage järgmine käsk
  • systemctl start kubelet && systemctl lubab kubelet
Kui Kubernetese lähtestamine on lõpule jõudnud, saate tulemused.Kopeerige saadud tulemustest käsud ja käivitage see klastri kasutamise alustamiseks. Märkige tulemustest üles käsu kubeadm join. Käsku kasutatakse uute sõlmede registreerimiseks kubernetese klastris. 8. Paigaldage flanellivõrk kubernetese klastrisse kubectl kohaldatakse -f

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

Flanellivõrk on Kubernetes klastrisse juurutatud. Oodake mõnda aega ja kontrollige seejärel kubernetese sõlme ja kaunu, kasutades allolevaid käske.
    • kubectl saada sõlmed
    • kubectl saada kaunad - kõik-nimeruumid
Ja saate, et sõlm 'k8s-master' töötab kui 'põhi' klaster olekuga 'valmis' ja saate kõik klastri jaoks vajalikud kaunad, sealhulgas võrgu podi jaoks mõeldud 'kube-flannel-ds' seadistamine.

9. Sõlmede lisamine klastrisseLooge ühendus serveriga node01 ja käivitage käsk kubeadm join

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

Looge ühendus serveriga node02 ja käivitage käsk kubeadm join

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

Oodake mõnda aega ja kontrollige põhiklastri serverit ’k8s-master’, kontrollige sõlme ja kaunasid järgmise käsu abil.

      • kubectl saada sõlmed

Nüüd saate töötaja1 ja töötaja2 on lisatud klastrisse olekuga ‘valmis’.

      • kubectl saada kaunad - kõik-nimeruumid

Kubernetes klastrijuhi initsialiseerimine ja seadistamine on lõpule viidud.

2. samm: Amazon ES klastri loomine

Elasticsearch on avatud lähtekoodiga otsingu- ja analüüsimootor, mida kasutatakse logide analüüsimiseks ja rakenduste reaalajas jälgimiseks. Amazon Elasticsearch Service (Amazon ES) on AWS-teenus, mis võimaldab Elasticsearchi juurutamist, toimimist ja ulatust AWS-i pilves. Amazon ES-i abil saate analüüsida oma Amazon SES-i e-posti saatmise sündmusi

Loome Amazon ES klastri ja juurutame seejärel Fluentdi logimisagendi Kubernetes klastrisse, mis kogub logisid ja saadab Amazon ES klastrisse

Selles jaotises on näidatud, kuidas kasutada Amazon ES-i konsooli Amazon ES-klastri loomiseks.

Amazon ES klastri loomiseks

    1. Logige sisse AWS-i juhtimiskonsooli ja avage Amazon Elasticsearch Service'i konsool aadressil https://console.aws.amazon.com/es/
    2. Valige Looge uus domeen ja valige juurutamise tüüp Amazon ES konsoolis.
    3. Jaotises Versioon jätke välja Elasticsearch version vaikeväärtus.
    4. Valige Järgmine
    5. Sisestage oma elastse otsingu domeeni nimi klastri konfigureerimine leht all Domeeni seadistamine.
    6. Lehel Klastri konfigureerimine valige andmete eksemplaride all järgmised valikud
      • Eksemplari tüüp - Valige t2.micro.elasticsearch (sobib tasuta tasemele).
      • Eksemplaride arv - üks
    7. UnderPühendatud peaeksemplarid
      • Luba pühendunud master - Ärge lubage seda suvandit.
      • Luba tsooniteadlikkus - Ärge lubage seda suvandit.
    8. Jaotises Salvestuse konfiguratsioon valige järgmised suvandid.
      • Salvestuse tüüp - Valige EBS. EBS-i seadete jaoks valige EBS-i mahtüüp Üldotstarbeline (SSD) ja EBS-i maht& thinsp10-st.
    9. Krüptimise all - Ärge lubage seda suvandit
    10. Hetkepildi konfiguratsiooni all
      • Automatiseeritud hetktõmmise algustund - Valige Automatiseeritud hetktõmmiste algustund 00:00 UTC (vaikimisi).
    11. Valige Järgmine
    12. Valige jaotises Võrgukonfiguratsioon VPC juurdepääs ja valige üksikasjad vastavalt VPC-le.Kibana autentimise all: - ärge lubage seda suvandit.
    13. Juurdepääsupoliitika määramiseks valige Luba avatud juurdepääs domeenile.Märkus: - Tootmises peaksite piirama juurdepääsu konkreetsetele IP-aadressidele või vahemikele.
    14. Valige Järgmine.
    15. Vaadake lehel Ülevaatus oma seaded üle ja valige seejärel Kinnita ja looge.

Märkus. Klastri juurutamine võtab aega kuni kümme minutit. Kui klõpsate loodud elastse otsingu domeenil, võtke teadmiseks oma Kibana URL.

3. samm: juurutage Fluentdi logimisagent Kubernetes klastrisse

Fluentd on avatud lähtekoodiga andmekoguja, mis võimaldab andmete paremaks kasutamiseks ja mõistmiseks ühtlustada andmete kogumist ja tarbimist. Sellisel juhul juurutame Kubernetes klastrisse Fluentdi logimise, mis kogub logifailid ja saadab Amazon Elastic Searchi.

Loome ClusterRole'i, mis annab õigused kaunadele ja nimeruumi objektidele klastrite hankimise, loendamise ja vaatamise taotluste esitamiseks.

Esiteks peame konfigureerima RBAC-i (rollipõhise juurdepääsu juhtimise) õigused, et Fluentd pääseks juurde asjakohastele komponentidele.

1. fluentd-rbac.yaml:

apiVersion: v1 liik: ServiceAccount metaandmed: nimi: fluentd nimeruum: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 liik: ClusterRole metaandmed: nimi: fluentd nimeruum: kube-süsteemi reeglid: - apiGroups: - ' 'ressursid: - kaunad - nimeruumide verbid: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metaandmed: nimi: fluentd roleRef: liik: ClusterRole nimi: fluentd apiGroup: rbac.authorization .k8s.io subjektid: - liik: ServiceAccount nimi: ladus nimeruum: kube-system

Loo: $ kubectl luua -f kubernetes / fluentd-rbac.yaml
Nüüd saame luua DaemonSeti.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 kind: DaemonSet metaandmed: nimi: fluentd nimeruum: kube-süsteemi sildid: k8s-app: fluentd-logimise versioon: v1 kubernetes.io/cluster-service: 'true' spec: mall: metaandmed: siltid: k8s -app: fluentd-logimise versioon: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerantsid: - võti: node-role.kubernetes.io/master effect: NoSchedule konteinerid: - nimi: fluentd pilt: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nimi: FLUENT_ELASTICSEARCH_HOST väärtus: 'elasticsearch.logging' - nimi: FLUENT_ELASTICSEARCH_PORT väärtus: '9200' - nimi: FLUENT_ELASTICSEARCH_S ' nimi: FLUENT_UID väärtus: '0' ressursid: piirangud: mälu: 200Mi taotlused: protsessor: 100 m mälu: 200Mi mahtMounts: - nimi: varlog mountPath: / var / log - nimi: varlibdockercontainers mountPath: / var / lib / docker / container readNow : tõeline lõpetamineGracePeriodSeconds: 30 köidet: - nimi: varlog hostPath: tee: / var / log - nimi: varlibdockercontainers hostPath: tee: / var / lib / docker / container

Kindlasti määrake FLUENT_ELASTICSEARCH_HOST ja FLUENT_ELASTICSEARCH_PORT vastavalt teie elastsele otsingukeskkonnale

Juurutada:

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

Valideeri logid

ringraja planeerimise programm c-s

$ kubectl logib fluentd-lwbt6 -n kube-system | grep Ühendus

Peaksite nägema, et Fluentd loob logides ühenduse Elasticsearchiga:

4. samm: visualiseerige Kibanas kubernetese andmed

  1. Amazon ES-i konsoolilt saamiseks looge ühendus kibana armatuurlaua URL-iga
  2. Fluentdi Kibanas kogutud logide nägemiseks klõpsake nuppu „Haldus” ja seejärel valige jaotises „Kibana” „Indeksi mustrid”.
  3. vali vaikimisi indeksi muster (logstash- *)
  4. Klõpsake nuppu Järgmine samm ja määrake ajafiltrivälja nimi (@timestamp) ning valige käsk Loo registrimuster
  5. Rakenduste logide kuvamiseks klõpsake nuppu Avasta
  6. Klõpsake nuppu Visualiseeri, valige Visualiseerimine ja valige Pie. Täitke järgmised väljad, nagu allpool näidatud.
    • Valige Logstash- * register ja klõpsake jagatud viilusid
    • Liitmine - olulised terminid
    • Field = Kubernetes.pod_name.keyword
    • Suurus - 10

7. Ja rakendage muudatused

See on kõik! Nii saate visualiseerida Kibanas loodud Kubernetes Podi.

Kokkuvõte :

Logianalüüsi abil jälgimine on mis tahes rakenduse juurutamise kriitiline komponent. Kubernetes saate kogu klastri logisid koguda ja koondada, et jälgida kogu klastrit ühelt juhtpaneelilt. Oma näites oleme näinud ladusat tegutsemist vahendajana kubernetese klastri ja Amazon ES vahel. Fluentd ühendab logide kogumise ja liitmise ning saadab logid analüüsi ja andmete visualiseerimiseks Amazon ES-ile kibanaga.

Ülaltoodud näide näitab, kuidas lisada AWS Elastic otsingu logimine ja kibana jälgimine kubernetese klastrisse fluentd abil.

Kui leiate, et see Kubernetese ajaveeb on asjakohane, vaadake järgmist Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.