Paano mailarawan ang mga Kubernetes Cluster na Kaganapan sa real-time



Ang post sa blog na ito ay tutulong sa iyo na malaman kung paano mai-publish ang data ng mga kaganapan ng kumpol ng Kubernetes sa Amazon Elastic Search gamit ang Fluentd logging agent.

Sa artikulong ito, malalaman mo kung paano mai-publish ang data ng mga kaganapan ng kumpol ng Kubernetes sa Amazon gamit ang Fluentd logging agent. Titingnan ang data gamit ang , isang tool ng visualization na bukas na mapagkukunan para sa Elasticsearch. Ang Amazon ES ay binubuo ng integrated Kibana integration.

Dadalhin namin ka sa pamamagitan ng sumusunod na proseso:





Hakbang 1: Paglikha ng isang Kubernetes Cluster

Ang Kubernetes ay isang bukas na platform ng mapagkukunan na nilikha ng Google upang pamahalaan ang mga lalagyan na application. nagbibigay-daan ito sa iyo upang pamahalaan, sukatin at i-deploy ang iyong mga lalagyan na app sa isang clustered na kapaligiran. Maaari naming iayos ang aming mga lalagyan sa iba't ibang mga host na may Mga Gobernador , sukatin ang mga containerized app sa lahat ng mga mapagkukunan nang mabilis, at magkaroon ng isang sentralisadong kapaligiran sa pamamahala ng lalagyan.

Magsisimula kami sa paglikha ng kumpol ng Kubernetes at ipapakita ko sa iyo hakbang-hakbang, sa kung paano i-install at i-configure ang Kubernetes sa CentOS 7.



isa I-configure ang Mga Host

    • vi / etc / host
    • gumawa ng mga pagbabago alinsunod sa mga detalye ng iyong host sa file ng mga host

IMG1 - Elasticsearch - Edureka

2. Huwag paganahin ang SELinux sa pamamagitan ng pagpapatupad ng mga utos sa ibaba



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = pagpapatupad / SELINUX = hindi pinagana / g’ / etc / sysconfig / selinux

3. Paganahin ang br_netfilter Kernel Module

Kinakailangan ang module ng br_netfilter para sa pag-install ng kubernetes. Patakbuhin ang utos sa ibaba upang paganahin ang module ng kernel na br_netfilter.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / tulay / tulay-nf-call-iptables

Apat. Huwag paganahin ang SWAP sa pamamagitan ng pagpapatakbo sa ibaba ng mga utos.

    • swapoff -a
    • Pagkatapos i-edit / etc / fstab at magkomento sa linya ng swap

5. I-install ang pinakabagong bersyon ng Docker CE.I-install ang mga dependency ng package para sa docker-ce sa pamamagitan ng pagpapatakbo sa ibaba ng mga utos.

    • yum install -y yum-utils aparato-mapper-persistent-data lvm2
Idagdag ang repository ng docker sa system at i-install ang docker-ce gamit ang yum command.

6. I-install ang Kubernetes

Gamitin ang sumusunod na utos upang idagdag ang repository ng kubernetes sa sistema ng centos 7.
    • yum install -y kubelet bebeadm kubectl

[kubernetes] pangalan = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 pinagana = 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
I-install ang mga pakete kubeadm, kubelet, at kubectl gamit ang pagpapatakbo ng yum command sa ibaba.
  • simulan ng systemctl ang docker at& systemctl paganahin ang docker

Matapos makumpleto ang pag-install, i-restart ang lahat ng mga server.Matapos muling simulan ang mga serbisyo ng docker at kubelet

  • simulan ng systemctl ang docker at& systemctl paganahin ang docker
  • simulan ng systemctl kubelet && systemctl paganahin ang kubelet
7. Pagpapakilala sa Kubernetes Cluster Mag-login sa master server at patakbuhin ang utos sa ibaba
  • simulan ng systemctl kubelet && systemctl paganahin ang kubelet
Kapag nakumpleto ang pagsisimula ng Kubernetes, makukuha mo ang mga resulta.Kopyahin ang mga utos mula sa mga resulta na nakuha mo at Isagawa ito upang simulang gamitin ang cluster. Gumawa ng isang tala ng utos ng kubeadm sumali mula sa mga resulta. Gagamitin ang utos upang magparehistro ng mga bagong node sa kubernetes cluster. 8. I-deploy ang flannel network sa kubernetes cluster ilapat ang kubectl -f

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

Ang flannel network ay na-deploy sa Kubernetes cluster. Maghintay para sa ilang oras at pagkatapos suriin ang kubernetes node at mga pod gamit ang mga utos sa ibaba.
    • kumuha ng node ang kubectl
    • kumuha ang kubectl ng mga pod – lahat ng namespace
At makukuha mo ang node na 'k8s-master' ay tumatakbo bilang isang 'master' cluster na may katayuan na 'handa', at makukuha mo ang lahat ng mga pod na kinakailangan para sa kumpol, kasama ang 'kube-flannel-ds' para sa network pod pagsasaayos

9. Pagdaragdag ng mga Node sa kumpolKumonekta sa node01 server at patakbuhin ang kubeadm sumali sa utos

    • kubeadm sumali sa 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5

Kumonekta sa node02 server at patakbuhin ang kubeadm sumali sa utos

    • kubeadm sumali sa 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5

Maghintay para sa ilang oras at Patunayan ang 'k8s-master' master cluster server, suriin ang mga node at pod gamit ang sumusunod na utos.

      • kumuha ng node ang kubectl

Ngayon makakakuha ka ng manggagawa1 at ang manggagawa2 ay naidagdag sa kumpol na may katayuang 'handa'.

      • kumuha ang kubectl ng mga pod – lahat ng namespace

Kubernetes cluster master initialization at pagsasaayos ay nakumpleto.

Hakbang 2: Lumilikha ng isang kumpol ng Amazon ES

Ang Elasticsearch ay isang bukas na mapagkukunan ng paghahanap at analytics engine na ginagamit para sa pagtatasa ng pag-log at pagsubaybay sa real-time ng mga application. Ang Amazon Elasticsearch Service (Amazon ES) ay isang serbisyo na AWS na nagpapahintulot sa pag-deploy, pagpapatakbo, at sukat ng Elasticsearch sa ulap ng AWS. Maaari mong gamitin ang Amazon ES upang suriin ang pagpapadala ng mga kaganapan sa email mula sa iyong Amazon SES

pag-uri-uriin () c ++

Lilikha kami ng isang kumpol ng Amazon ES at pagkatapos ay Mag-deploy ng ahente ng pag-log ng Fluentd sa kumpol ng Kubernetes na mangolekta ng mga troso at ipadala sa Amazon ES cluster

Ipinapakita ng seksyong ito kung paano gamitin ang Amazon ES console upang lumikha ng isang kumpol ng Amazon ES.

Upang lumikha ng isang kumpol ng Amazon ES

    1. Mag-sign in sa AWS Management Console at buksan ang Amazon Elasticsearch Service console sa https://console.aws.amazon.com/es/
    2. Pumili Lumikha ng isang Bagong Domain at piliin ang uri ng Pag-deploy sa Amazon ES console.
    3. Sa ilalim ng Bersyon, iwanan ang default na halaga ng patlang ng bersyon ng Elasticsearch.
    4. Piliin ang Susunod
    5. Mag-type ng pangalan para sa iyong Elastic na domain ng paghahanap sa i-configure ang kumpol pahina sa ilalim I-configure ang Domain.
    6. Sa pahina ng I-configure ang kumpol, piliin ang mga sumusunod na pagpipilian sa ilalim ng Mga Halimbawa ng data
      • Uri ng pangyayari - Piliin ang t2.micro.elasticsearch (Karapat-dapat na libreng baitang).
      • Bilang ng Instance - isa
    7. Sa ilalim niNakatuon na Mga Instant ng Master
      • Paganahin ang dedikadong master - Huwag paganahin ang pagpipiliang ito.
      • Paganahin ang kamalayan ng zone - Huwag paganahin ang pagpipiliang ito.
    8. Sa ilalim ng pagsasaayos ng Storage, piliin ang mga sumusunod na pagpipilian.
      • Uri ng imbakan - Piliin ang EBS. Para sa mga setting ng EBS, piliin ang uri ng dami ng EBS ng Pangkalahatang Pakay (SSD) at laki ng dami ng EBS& thinspng 10
    9. Sa ilalim ng pag-encrypt - Huwag paganahin ang pagpipiliang ito
    10. Sa ilalim ng pagsasaayos ng snapshot
      • Awtomatikong oras ng pagsisimula ng snapshot - Piliin ang Mga naka-automate na snapshot ng oras ng pagsisimula 00:00 UTC (default).
    11. Piliin ang Susunod
    12. Sa ilalim ng pagsasaayos ng Network piliin ang VPC Access at piliin ang mga detalye ayon sa iyong VPC ay ipinapakita sa ibaba.Sa ilalim ng pagpapatotoo ng Kibana: - Huwag paganahin ang pagpipiliang ito.
    13. Upang maitakda ang patakaran sa pag-access, piliin ang Payagan ang bukas na pag-access sa domain.Tandaan: - Sa produksyon dapat mong paghigpitan ang pag-access sa tukoy na IPaddress o Mga Saklaw.
    14. Piliin ang Susunod.
    15. Sa pahina ng Suriin, suriin ang iyong mga setting, at pagkatapos ay piliin ang Kumpirmahin at Lumikha.

Tandaan: Ang kumpol ay tatagal ng hanggang sampung minuto upang ma-deploy. Itala ang iyong Kibana URL sa sandaling na-click mo ang nababanat na domain ng paghahanap.

Hakbang 3: Mag-deploy ng Fluentd logging agent sa Kubernetes cluster

Ang Fluentd ay isang bukas na kolektor ng data ng mapagkukunan, na nagbibigay-daan sa iyong pagsama-samahin ang koleksyon ng data at pagkonsumo para sa mas mahusay na paggamit at pag-unawa sa data. Sa kasong ito, maglalagay kami ng Fluentd logging sa Kubernetes cluster, na kukolekta ng mga log file at ipadala sa Amazon Elastic Search.

Lilikha kami ng isang ClusterRole na nagbibigay ng mga pahintulot sa mga pod at namespace na bagay upang makakuha ng makakuha, listahan at panonood ng kahilingan sa cluster.

Una, kailangan naming i-configure ang mga pahintulot sa RBAC (kontrol na pag-access na nakabatay sa papel) upang ma-access ng Fluentd ang mga naaangkop na sangkap.

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: - ' 'mapagkukunan: - 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 .k8s.io mga paksa: - uri: Serbisyo Pangalan ng account: matatas na namespace: kube-system

Lumikha: $ kubectl lumikha -f kubernetes / fluentd-rbac.yaml
Ngayon, makakalikha tayo ng DaemonSet.

2. matatas-daemonset.yaml

apiVersion: extensions / v1beta1 kind: DaemonSet metadata: name: fluentd namespace: kube-system label: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: bersyon ng fluentd-logging: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master effects: NoSchedule container: - pangalan: fluentd image: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST halaga: 'elasticsearch.logging' - pangalan: FLUENT_ELASTICSEARCH_PORT halaga: '9200' - pangalan: FLUENT_ELASTICSEARCH_SCHEMCH ' pangalan: FLUENT_UID halaga: '0' mapagkukunan: mga limitasyon: memorya: 200Mi mga kahilingan: cpu: 100m memorya: 200Mi damiMga Account: - pangalan: varlog mountPath: / var / log - pangalan: varlibdockercontainers mountPath: / var / lib / docker / container na basahin Tanging : totoong pagwawakasGracePeriodSeconds: 30 dami: - pangalan: varlog hostPath: path: / var / log - pangalan: varlibdockercontainers hostPath: path: / var / lib / docker / container

Tiyaking tukuyin ang FLUENT_ELASTICSEARCH_HOST at FLUENT_ELASTICSEARCH_PORT alinsunod sa iyong nababanat na kapaligiran sa paghahanap

I-deploy:

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

Patunayan ang mga troso

$ kubectl logs fluentd-lwbt6 -n kube-system | grep Koneksyon

Dapat mong makita na kumonekta ang Fluentd sa Elasticsearch sa loob ng mga tala:

Hakbang 4: I-visualize ang data ng kubernetes sa Kibana

  1. Kumonekta sa kibana dashboard URL upang makakuha mula sa Amazon ES console
  2. Upang makita ang mga log na nakolekta ni Fluentd sa Kibana, i-click ang 'Pamamahala' at pagkatapos ay piliin ang 'Mga pattern ng Index' sa ilalim ng 'Kibana'
  3. piliin ang default na pattern ng Index (logstash- *)
  4. I-click ang Susunod na Hakbang at itakda ang 'Pangalan ng patlang ng oras ng Pangalan' (@timestamp) at piliin ang Lumikha ng pattern sa index
  5. I-click ang Tuklasin upang matingnan ang iyong mga tala ng application
  6. I-click ang I-visualize at piliin ang lumikha ng isang visualization at piliin ang Pie. Punan ang mga sumusunod na patlang tulad ng ipinakita sa ibaba.
    • Piliin ang Logstash- * index at i-click ang mga hiwa ng split
    • Pagsasama-sama - Mga makabuluhang term
    • Field = Kubernetes.pod_name.keyword
    • Laki - 10

7. At Ilapat ang mga Pagbabago

Ayan yun! Ito ay kung paano mo mailarawan ang Kubernetes Pod na nilikha sa Kibana.

Buod :

Ang pagsubaybay sa pamamagitan ng pagtatasa ng log ay isang kritikal na bahagi ng anumang paglawak ng aplikasyon. Maaari mong tipunin at pagsamahin ang mga tala sa iyong cluster sa Kubernetes upang subaybayan ang buong kumpol mula sa isang solong dashboard. Sa aming halimbawa, nakita namin ang matatas na pagkilos bilang isang tagapamagitan sa pagitan ng kubernetes cluster at Amazon ES. Pinagsasama ni Fluentd ang koleksyon ng log at pagsasama-sama at nagpapadala ng mga tala sa Amazon ES para sa log analytics at visualization ng data sa kibana.

Ipinapakita ng halimbawa sa itaas kung paano magdagdag ng AWS Elastic na pag-log sa paghahanap at pagsubaybay sa kibana sa kubernetes cluster gamit ang matatas.

Kung nakita mong may kaugnayan ang blog ng Kubernetes na ito, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalikan ka namin.