Kuinka visualisoida Kubernetes-klusteritapahtumia reaaliajassa



Tämä blogiviesti auttaa sinua julkaisemaan Kubernetes-klusteritapahtumatiedot Amazon Elastic Search -palvelussa Fluentd-lokiagentilla.

Tässä artikkelissa opit, kuinka Kubernetes-klusteritapahtumatiedot julkaistaan ​​Amazonissa käyttämällä Fluentd-kirjausagenttia. Tietoja tarkastellaan sitten käyttämällä , avoimen lähdekoodin visualisointityökalu Elasticsearchille. Amazon ES koostuu integroidusta Kibana-integraatiosta.

Opastamme sinut läpi seuraavan prosessin:





Vaihe 1: Kubernetes-klusterin luominen

Kubernetes on avoimen lähdekoodin alusta, jonka Google on luonut konttisovellusten hallintaan. sen avulla voit hallita, skaalata ja ottaa käyttöön säilöityjä sovelluksia klusteroidussa ympäristössä. Voimme organisoida konttimme eri isäntien kanssa Kuvernöörit , skaalaa konttisovellukset kaikilla resursseilla lennossa ja sinulla on keskitetty säilönhallintaympäristö.

Aloitamme Kubernetes-klusterin luomisesta ja esitän sinulle askel askeleelta, kuinka Kubernetes asennetaan ja määritetään CentOS 7: een.



yksi. Määritä isännät

    • vi / etc / hosts
    • tee muutoksia isäntätiedostossa olevien isäntätietojesi mukaan

IMG1 - Elasticsearch - Edureka

luokka vs käyttöliittymä java

2. Poista SELinux käytöstä suorittamalla alla olevat komennot



    • setenforce 0
    • sed -i –follow-symlinkit ’s / SELINUX = toimeenpano / SELINUX = pois käytöstä / g’ / etc / sysconfig / selinux

3. Ota br_netfilter-ytimen moduuli käyttöön

Br_netfilter-moduuli vaaditaan kubernetes-asennusta varten. Ota br_netfilter-ytimoduuli käyttöön suorittamalla alla oleva komento.
    • modprobe br_netfilter
    • echo ’1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Neljä. Poista SWAP käytöstä suorittamalla komentojen alapuolella.

    • vaihto -a
    • Muokkaa sitten / etc / fstab ja kommentoi vaihtolinjaa

5. Asenna Docker CE: n uusin versio.Asenna docker-ce: n pakettiriippuvuudet suorittamalla komentojen alapuolella.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Lisää telakointiasiakirja järjestelmään ja asenna docker-ce yum-komennolla.

6. Asenna Kubernetes

Käytä seuraavaa komentoa kubernetes-arkiston lisäämiseen centos 7 -järjestelmään.
    • yum install -y kubelet bebeadm kubectl

[kubernetes] nimi = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 käytössä = 1 gpgcheck = 1 repo_gpgcheck = 1 gpgkey = https: //packages.cloud.google. fi / yum / doc / yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF
Asenna pakkaa kubeadm, kubelet ja kubectl suorittamalla alla olevan yum-komennon.
  • systemctl start docker && systemctl salli docker

Kun asennus on valmis, käynnistä kaikki nämä palvelimet uudelleen.Käynnistä uudelleenkäynnistyksen jälkeen palvelujen telakointiasema ja kubelet

  • systemctl start docker && systemctl salli docker
  • systemctl Käynnistä kubelet && systemctl ota kubelet käyttöön
7. Kubernetes-klusterin alustus Kirjaudu pääpalvelimeen ja suorita alla oleva komento
  • systemctl Käynnistä kubelet && systemctl ota kubelet käyttöön
Kun Kubernetes-alustus on valmis, saat tulokset.Kopioi komennot saamistasi tuloksista ja suorita se aloittaaksesi klusterin käytön. Merkitse kubeadm join -komento muistiin tuloksista. Komennoa käytetään uusien solmujen rekisteröimiseen kubernetesi klusteriin. 8. Asenna flanelliverkko kubernetes-klusteriin kubectl sovelletaan -f

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

Flanelliverkko on otettu käyttöön Kubernetes-klusteriin. Odota hetki ja tarkista sitten kubernetesolmu ja -kotelot alla olevien komentojen avulla.
    • kubectl saa solmut
    • kubectl saa palkoja - kaikki nimitilat
Ja saat 'k8s-master' -solmun käynnissä olevan 'master' -klusterina, jonka tila on 'valmis', ja saat kaikki klusterille tarvittavat palkit, mukaan lukien verkkopodin 'kube-flannel-ds' kokoonpano.

9. Solmujen lisääminen klusteriinMuodosta yhteys node01-palvelimeen ja suorita kubeadm join-komento

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

Muodosta yhteys solmu02-palvelimeen ja suorita kubeadm join -komento

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

Odota hetki ja tarkista ”k8s-master” master-klusteripalvelin, tarkista solmut ja podit seuraavalla komennolla.

mikä on ohimenevää java
      • kubectl saa solmut

Nyt saat työntekijä1 ja työntekijä2 on lisätty klusteriin tilalla 'valmis'.

      • kubectl saa palkoja - kaikki nimitilat

Kubernetes-klusterin isännän alustus ja määritys on saatu päätökseen.

Vaihe 2: Amazon ES -klusterin luominen

Elasticsearch on avoimen lähdekoodin haku- ja analysointimoottori, jota käytetään lokianalyysiin ja sovellusten reaaliaikaiseen seurantaan. Amazon Elasticsearch Service (Amazon ES) on AWS-palvelu, joka mahdollistaa Elasticsearchin käyttöönoton, käytön ja laajuuden AWS-pilvessä. Voit analysoida sähköpostin lähetystapahtumia Amazon SES: stä Amazon ES: n avulla

Luomme Amazon ES -klusterin ja otamme Fluentd-lokiagentin käyttöön Kubernetes-klusteriin, joka kerää lokit ja lähettää Amazon ES -klusteriin

Tässä osassa kerrotaan, miten Amazon ES -konsolia käytetään luomaan Amazon ES -klusteri.

Amazon ES -klusterin luominen

    1. Kirjaudu sisään AWS-hallintakonsoliin ja avaa Amazon Elasticsearch Service -konsoli osoitteessa https://console.aws.amazon.com/es/
    2. Valitse Luo uusi toimialue ja valitse Käyttöönoton tyyppi Amazon ES -konsolissa.
    3. Jätä Versio-kohtaan Elasticsearch version -kentän oletusarvo.
    4. Valitse Seuraava
    5. Kirjoita nimi elastiselle hakuverkkotunnuksellesi määrittää klusterin sivun alla Määritä toimialue.
    6. Valitse Määritä klusteri -sivulta seuraavat asetukset Data-ilmentymät -kohdassa
      • Ilmentymän tyyppi - Valitse t2.micro.elasticsearch (ilmainen taso kelvollinen).
      • Ilmentymien lukumäärä - yksi
    7. AllaDedikoidut pääesimerkit
      • Ota oma päällikkö käyttöön - Älä ota tätä vaihtoehtoa käyttöön.
      • Ota vyöhyketietoisuus käyttöön - Älä ota tätä vaihtoehtoa käyttöön.
    8. Valitse seuraavat vaihtoehdot Tallennuskokoonpano-kohdasta.
      • Tallennustyyppi - Valitse EBS. Valitse EBS-asetuksiksi EBS-volyymityyppi Yleiskäyttöinen (SSD) ja EBS-volyymikoko& thinsp10: stä.
    9. Salaus - Älä ota tätä vaihtoehtoa käyttöön
    10. Tilannekuvan määrityksessä
      • Automaattinen tilannekuvan aloitustunti - Valitse Automaattisten tilannevedosten aloitusaika 00:00 UTC (oletus).
    11. Valitse Seuraava
    12. Valitse Verkkoasetukset-kohdasta VPC-yhteys ja valitse yksityiskohdat VPC: n mukaan alla.Kohdassa Kibana-todennus: - Älä ota tätä vaihtoehtoa käyttöön.
    13. Määritä käyttöoikeudet valitsemalla Salli avoin pääsy toimialueelle.Huomaa: - Tuotannossa sinun tulisi rajoittaa pääsyä tiettyihin IP-osoitteisiin tai alueisiin.
    14. Valitse Seuraava.
    15. Tarkista tarkistussivulla asetuksesi ja valitse sitten Vahvista ja luo.

Huomautus: Klusterin käyttöönotto kestää jopa kymmenen minuuttia. Ota huomioon Kibana-URL-osoitteesi, kun napsautat luotua joustavaa hakuverkkotunnusta.

Vaihe 3: Ota Fluentd-kirjausagentti käyttöön Kubernetes-klusterissa

Fluentd on avoimen lähdekoodin tiedonkerääjä, jonka avulla voit yhtenäistää tiedonkeruun ja kulutuksen tietojen paremman käytön ja ymmärtämisen kannalta. Tässä tapauksessa otamme Fluentd-kirjauksen käyttöön Kubernetes-klusterissa, joka kerää lokitiedostot ja lähettää Amazon Elastic Search -palveluun.

Luomme ClusterRole-sovelluksen, joka tarjoaa pod- ja nimiavaruusobjektien oikeudet hakea, luetteloida ja katsella pyyntöjä klusteriin.

Ensinnäkin meidän on määritettävä RBAC (roolipohjainen pääsynhallinta) -oikeudet, jotta Fluentd voi käyttää sopivia komponentteja.

1. virtaava d-rbac.yaml:

apiVersion: v1 kind: ServiceAccount-metatiedot: nimi: fluentd nimitila: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole-metatiedot: nimi: fluentd nimitila: kube-järjestelmän säännöt: - apiGroups: - '' 'resurssit: - palkit - nimitilojen verbit: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io-aiheita: - laji: ServiceAccount-nimi: sujuva nimitila: kube-system

Luo: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Nyt voimme luoda DaemonSetin.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 kind: DaemonSet-metatiedot: nimi: fluentd nimitila: kube-system tags: k8s-app: fluentd-lokiversio: v1 kubernetes.io/cluster-service: 'true' spec: malli: metadata: labels: k8s -app: fluentd-kirjausversio: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: sujuvat toleranssit: - avain: solmu-role.kubernetes.io/master effect: NoSchedule-säilöt: - nimi: fluentd-kuva: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nimi: FLUENT_ELASTICSEARCH_HOST -arvo: 'elasticsearch.logging' - nimi: FLUENT_ELASTICSEARCH_PORT-arvo: '9200' - nimi: FLUENT_ELASTICSEARCH_S ' nimi: FLUENT_UID-arvo: '0' -resurssit: rajoitukset: muisti: 200Mi-pyynnöt: prosessori: 100m muisti: 200Mi-tilaMount: - nimi: varlog mountPath: / var / log - nimi: varlibdockercontainers mountPath: / var / lib / docker / container readOnly : true nutraukintaGracePeriodSeconds: 30 taltiota: - nimi: varlog hostPath: polku: / var / log - nimi: varlibdockercontainers hostPath: polku: / var / lib / docker / container

Muista määritellä FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT joustavan hakuympäristön mukaan

Ota käyttöön:

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

Vahvista lokit

$ kubectl kirjaa fluentd-lwbt6 -n kube-system | grep Yhteys

Sinun pitäisi nähdä, että Fluentd muodostaa yhteyden Elasticsearchiin lokien sisällä:

Vaihe 4: Visualisoi kubernetesi tiedot Kibanassa

  1. Muodosta yhteys kibana-hallintapaneelin URL-osoitteeseen saadaksesi Amazon ES -konsolista
  2. Jos haluat nähdä Fluentdin keräämät lokit Kibanassa, napsauta 'Management' ja valitse sitten 'Kibana' -kohdasta 'Index Patterns'.
  3. valitse oletushakemistokuvio (logstash- *)
  4. Napsauta Seuraava vaihe ja aseta Aikasuodatinkentän nimi (@timestamp) ja valitse Luo hakemistokuvio
  5. Napsauta Discover-painiketta nähdäksesi sovelluslokisi
  6. Napsauta Visualize ja valitse luo visualisointi ja valitse Pie. Täytä seuraavat kentät alla olevan kuvan mukaisesti.
    • Valitse Logstash- * hakemisto ja napsauta jaettuja viipaleita
    • Yhteenveto - Merkittävät termit
    • Kenttä = Kubernetes.pod_name.keyword
    • Koko - 10

poistu ohjelmasta java

7. Ja ota muutokset käyttöön

Se siitä! Näin voit visualisoida Kibanassa luodun Kubernetes Podin.

Yhteenveto :

Loki-analyysin avulla tapahtuva seuranta on kriittinen osa sovellusten käyttöönottoa. Voit kerätä ja yhdistää lokit klusterisi yli Kubernetesissa seuratakseen koko klusteria yhdestä hallintapaneelista. Esimerkissämme olemme nähneet sujuvasti toimivan välittäjänä kubernetes-klusterin ja Amazon ES: n välillä. Fluentd yhdistää lokien keräämisen ja yhdistämisen ja lähettää lokit Amazon ES: lle lokianalytiikkaan ja tietojen visualisointiin kibanan kanssa.

Yllä oleva esimerkki osoittaa, kuinka AWS Elastic -hakukirjaaminen ja kibanavalvonta lisätään kubernetes-klusteriin fluentd-sovelluksella.

Jos pidit tämän Kubernetes-blogin merkityksellisenä, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa.

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja palaamme sinuun.