Τρόπος οπτικοποίησης συμβάντων συμπλέγματος Kubernetes σε πραγματικό χρόνο



Αυτή η ανάρτηση ιστολογίου θα σας βοηθήσει να μάθετε πώς να δημοσιεύετε δεδομένα συμβάντων συμπλέγματος Kubernetes στην Amazon Elastic Search χρησιμοποιώντας το Fluentd logging agent.

Σε αυτό το άρθρο, θα μάθετε πώς να δημοσιεύετε δεδομένα συμβάντων συμπλέγματος Kubernetes στην Amazon χρησιμοποιώντας το Fluentd logging agent. Στη συνέχεια, τα δεδομένα θα προβληθούν χρησιμοποιώντας , ένα εργαλείο οπτικοποίησης ανοιχτού κώδικα για την Elasticsearch. Το Amazon ES αποτελείται από ολοκληρωμένη ενσωμάτωση Kibana.

Θα σας καθοδηγήσουμε με την ακόλουθη διαδικασία:





Βήμα 1: Δημιουργία συμπλέγματος Kubernetes

Το Kubernetes είναι μια πλατφόρμα ανοιχτού κώδικα που δημιουργήθηκε από την Google για τη διαχείριση εφαρμογών σε κοντέινερ. Σας επιτρέπει να διαχειριστείτε, να κλιμακώσετε και να αναπτύξετε τις εφαρμογές σας σε κοντέινερ σε περιβάλλον συμπλέγματος. Μπορούμε να ενορχηστρώσουμε τα κοντέινερ μας σε διάφορους κεντρικούς υπολογιστές με Διοικητές , κλιμακώστε τις εφαρμογές με κοντέινερ με όλους τους πόρους εν κινήσει και αποκτήστε ένα κεντρικό περιβάλλον διαχείρισης κοντέινερ.

Θα ξεκινήσουμε με τη δημιουργία συμπλέγματος Kubernetes και θα σας δείξω βήμα προς βήμα, πώς να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους του Kubernetes στο CentOS 7.



ένας. Διαμόρφωση κεντρικών υπολογιστών

    • vi / etc / host
    • κάντε αλλαγές σύμφωνα με τις λεπτομέρειες του κεντρικού υπολογιστή σας στο αρχείο κεντρικών υπολογιστών

IMG1 - Elasticsearch - Edureka

2. Απενεργοποιήστε το SELinux εκτελώντας τις παρακάτω εντολές



    • setenforce 0
    • sed -i –follow-symlinks ’s / SELINUX = نافذ / SELINUX = απενεργοποιημένο / g’ / etc / sysconfig / selinux

3. Ενεργοποίηση br_netfilter Kernel Module

βρείτε τον μεγαλύτερο αριθμό σε έναν πίνακα java
Η μονάδα br_netfilter απαιτείται για εγκατάσταση kubernetes. Εκτελέστε την παρακάτω εντολή για να ενεργοποιήσετε τη μονάδα πυρήνα br_netfilter.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Τέσσερα. Απενεργοποιήστε το SWAP εκτελώντας τις παρακάτω εντολές.

    • ανταλλαγή -α
    • Στη συνέχεια, επεξεργαστείτε / etc / fstab και σχολιάστε τη γραμμή ανταλλαγής

5. Εγκαταστήστε την τελευταία έκδοση του Docker CE.Εγκαταστήστε τις εξαρτήσεις πακέτων για το docker-ce εκτελώντας τις παρακάτω εντολές.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Προσθέστε το αποθετήριο docker στο σύστημα και εγκαταστήστε το docker-ce χρησιμοποιώντας την εντολή yum.

6. Εγκαταστήστε το Kubernetes

Χρησιμοποιήστε την ακόλουθη εντολή για να προσθέσετε το αποθετήριο kubernetes στο σύστημα centos 7.
    • yum install -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 EOF
Εγκαταστήστε το πακέτα kubeadm, kubelet και kubectl χρησιμοποιώντας εκτελώντας την εντολή yum παρακάτω.
  • systemctl start docker && systemctl ενεργοποιήστε το docker

Αφού ολοκληρωθεί η εγκατάσταση, επανεκκινήστε όλους αυτούς τους διακομιστές.Μετά την επανεκκίνηση, ξεκινήστε τις υπηρεσίες docker και kubelet

  • systemctl start docker && systemctl ενεργοποιήστε το docker
  • systemctl start kubelet && systemctl ενεργοποίηση kubelet
7. Αρχικοποίηση συμπλέγματος Kubernetes Συνδεθείτε στον κύριο διακομιστή και εκτελέστε την παρακάτω εντολή
  • systemctl start kubelet && systemctl ενεργοποίηση kubelet
Μόλις ολοκληρωθεί η προετοιμασία του Kubernetes, θα λάβετε τα αποτελέσματα.Αντιγράψτε τις εντολές από τα αποτελέσματα που λάβατε και εκτελέστε τις για να αρχίσετε να χρησιμοποιείτε το σύμπλεγμα. Σημειώστε την εντολή kubeadm join από τα αποτελέσματα. Η εντολή θα χρησιμοποιηθεί για την καταχώριση νέων κόμβων στο σύμπλεγμα kubernetes. 8. Αναπτύξτε το δίκτυο flannel στο σύμπλεγμα kubernetes kubectl εφαρμογή -f

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

Το δίκτυο flannel έχει αναπτυχθεί στο σύμπλεγμα Kubernetes. Περιμένετε για λίγο και, στη συνέχεια, ελέγξτε τον κόμβο kubernetes και τα pods χρησιμοποιώντας τις παρακάτω εντολές.
    • kubectl λήψη κόμβων
    • kubectl λήψη λοβών –όλων των ονομάτων
Και θα λάβετε ότι ο κόμβος «k8s-master» λειτουργεί ως σύμπλεγμα «master» με κατάσταση «έτοιμο» και θα λάβετε όλα τα pods που χρειάζονται για το σύμπλεγμα, συμπεριλαμβανομένου του «kube-flannel-ds» για pod δίκτυο διαμόρφωση.

9. Προσθήκη κόμβων στο σύμπλεγμαΣυνδεθείτε στον διακομιστή node01 και εκτελέστε την εντολή kubeadm join

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

Συνδεθείτε στον διακομιστή node02 και εκτελέστε την εντολή kubeadm join

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

Περιμένετε για λίγο και επικυρώστε τον κύριο διακομιστή συμπλέγματος «k8s-master», ελέγξτε τους κόμβους και τις ομάδες δεδομένων χρησιμοποιώντας την ακόλουθη εντολή.

      • kubectl λήψη κόμβων

Τώρα θα πάρετε τον εργαζόμενο1 και ο εργαζόμενος2 έχει προστεθεί στο σύμπλεγμα με την κατάσταση «έτοιμο».

      • kubectl λήψη λοβών –όλων των ονομάτων

Η αρχική προετοιμασία και ρύθμιση παραμέτρων του συμπλέγματος Kubernetes ολοκληρώθηκε.

Βήμα 2: Δημιουργία συμπλέγματος Amazon ES

Το Elasticsearch είναι μια μηχανή αναζήτησης και ανάλυσης ανοιχτού κώδικα που χρησιμοποιείται για ανάλυση καταγραφής και παρακολούθηση εφαρμογών σε πραγματικό χρόνο. Η υπηρεσία Amazon Elasticsearch (Amazon ES) είναι μια υπηρεσία AWS που επιτρέπει την ανάπτυξη, τη λειτουργία και την κλίμακα της Elasticsearch στο σύννεφο AWS. Μπορείτε να χρησιμοποιήσετε το Amazon ES για να αναλύσετε συμβάντα αποστολής email από το Amazon SES

Θα δημιουργήσουμε ένα σύμπλεγμα Amazon ES και στη συνέχεια θα αναπτύξουμε τον παράγοντα καταγραφής Fluentd στο σύμπλεγμα Kubernetes, ο οποίος θα συλλέγει αρχεία καταγραφής και θα στέλνει στο σύμπλεγμα Amazon ES

Αυτή η ενότητα δείχνει τον τρόπο χρήσης της κονσόλας Amazon ES για τη δημιουργία ενός συμπλέγματος Amazon ES.

Για να δημιουργήσετε ένα σύμπλεγμα Amazon ES

    1. Συνδεθείτε στην AWS Management Console και ανοίξτε την Amazon Elasticsearch Service κονσόλα στη διεύθυνση https://console.aws.amazon.com/es/
    2. Επιλέγω Δημιουργήστε έναν νέο τομέα και επιλέξτε τον τύπο ανάπτυξης στην κονσόλα Amazon ES.
    3. Στην έκδοση, αφήστε την προεπιλεγμένη τιμή του πεδίου έκδοσης Elasticsearch.
    4. Επιλέξτε Επόμενο
    5. Πληκτρολογήστε ένα όνομα για τον τομέα ελαστικής αναζήτησης στο διαμόρφωση συμπλέγματος σελίδα κάτω Διαμόρφωση τομέα.
    6. Στη σελίδα Ρύθμιση παραμέτρων συμπλέγματος, ορίστε τις ακόλουθες επιλογές κάτω από τις παρουσίες δεδομένων
      • Τύπος παρουσίας - Επιλέξτε t2.micro.elasticsearch (Κατάλληλο για δωρεάν βαθμίδα).
      • Αριθμός παρουσίας - ένας
    7. ΥπόΑφιερωμένες βασικές παρουσίες
      • Ενεργοποίηση αποκλειστικού πλοιάρχου - Μην ενεργοποιήσετε αυτήν την επιλογή.
      • Ενεργοποίηση ενημέρωσης ζώνης - Μην ενεργοποιήσετε αυτήν την επιλογή.
    8. Στην ενότητα Διαμόρφωση αποθήκευσης, ορίστε τις ακόλουθες επιλογές.
      • Τύπος αποθήκευσης - Επιλέξτε EBS. Για τις ρυθμίσεις EBS, επιλέξτε τον τύπο τόμου EBS General Purpose (SSD) και το μέγεθος έντασης EBS& thinspαπό 10.
    9. Υπό κρυπτογράφηση - Μην ενεργοποιήσετε αυτήν την επιλογή
    10. Υπό διαμόρφωση στιγμιότυπου
      • Αυτόματη ώρα έναρξης στιγμιότυπου - Επιλέξτε Αυτόματη λήψη στιγμιότυπων ώρα έναρξης 00:00 UTC (προεπιλογή).
    11. Επιλέξτε Επόμενο
    12. Στην ενότητα Διαμόρφωση δικτύου, επιλέξτε Πρόσβαση VPC και επιλέξτε λεπτομέρειες σύμφωνα με το VPC που εμφανίζεται παρακάτω.Στην περιοχή ελέγχου ταυτότητας Kibana: - Μην ενεργοποιήσετε αυτήν την επιλογή.
    13. Για να ορίσετε την πολιτική πρόσβασης, επιλέξτε Να επιτρέπεται η ανοικτή πρόσβαση στον τομέα.Σημείωση: - Κατά την παραγωγή θα πρέπει να περιορίσετε την πρόσβαση σε συγκεκριμένες διευθύνσεις IP ή Ranges.
    14. Επιλέξτε Επόμενο.
    15. Στη σελίδα Έλεγχος, ελέγξτε τις ρυθμίσεις σας και, στη συνέχεια, επιλέξτε Επιβεβαίωση και Δημιουργία.

Σημείωση: Το σύμπλεγμα θα διαρκέσει έως και δέκα λεπτά για την ανάπτυξη. Σημειώστε τη διεύθυνση URL του Kibana μόλις κάνετε κλικ στον ελαστικό τομέα αναζήτησης που δημιουργήθηκε.

Βήμα 3: Ανάπτυξη παράγοντα καταγραφής Fluentd στο σύμπλεγμα Kubernetes

Το Fluentd είναι ένας συλλέκτης δεδομένων ανοιχτού κώδικα, ο οποίος σας επιτρέπει να ενοποιήσετε τη συλλογή και την κατανάλωση δεδομένων για καλύτερη χρήση και κατανόηση των δεδομένων. Σε αυτήν την περίπτωση, θα αναπτύξουμε την καταγραφή Fluentd στο σύμπλεγμα Kubernetes, το οποίο θα συλλέξει τα αρχεία καταγραφής και θα τα στείλει στο Amazon Elastic Search.

Θα δημιουργήσουμε ένα ClusterRole το οποίο παρέχει δικαιώματα σε αντικείμενα pods και namespace για να ζητήσουμε λήψη, λίστα και παρακολούθηση στο cluster.

Πρώτον, πρέπει να ρυθμίσουμε τα δικαιώματα RBAC (έλεγχος πρόσβασης βάσει ρόλου) έτσι ώστε το Fluentd να έχει πρόσβαση στα κατάλληλα στοιχεία.

1. fluentd-rbac.yaml:

apiVersion: είδος v1: Μεταδεδομένα ServiceAccount: όνομα: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 είδος: Μεταδεδομένα ClusterRole: name: fluentd namespace: κανόνες συστήματος kube: - apiGroups: - ' 'πόροι: - ρήματα pods - namespaces: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 μεταδεδομένα: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization Θέματα .k8s.io: - είδος: Service Όνομα λογαριασμού: fluentd namespace: kube-system

Δημιουργία: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Τώρα, μπορούμε να δημιουργήσουμε το DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 type: 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: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master effects: NoSchedule container: - όνομα: fluentd image: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST value: 'elasticsearch.logging' - όνομα: FLUENT_ELASTICSEARCH_PORT τιμή: '9200' - όνομα: FLUENT_ELASTICSEARCH_SCHE Όνομα: FLUENT_UID τιμή: πόροι '0': όρια: μνήμη: 200Mi αιτήματα: cpu: 100m μνήμη: 200Mi volumeMounts: - name: varlog mountPath: / var / log - name: varlibdockercontainers mountPath: / var / lib / docker / container που διαβάζονται μόνο : true terminationGracePeriodSeconds: 30 τόμοι: - name: varlog hostPath: path: / var / log - name: varlibdockercontainers hostPath: path: / var / lib / docker / κοντέινερ

Φροντίστε να ορίσετε FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT σύμφωνα με το ελαστικό περιβάλλον αναζήτησης

Παρατάσσω:

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

Επικυρώστε τα αρχεία καταγραφής

$ kubectl logs fluentd-lwbt6 -n kube-system | Σύνδεση grep

Θα πρέπει να δείτε ότι το Fluentd συνδέεται με την Elasticsearch στα αρχεία καταγραφής:

Βήμα 4: Οπτικοποιήστε τα δεδομένα kubernetes στο Kibana

  1. Συνδεθείτε στο URL του πίνακα εργαλείων kibana για να λάβετε από την κονσόλα Amazon ES
  2. Για να δείτε τα αρχεία καταγραφής που συλλέγει ο Fluentd στο Kibana, κάντε κλικ στο 'Διαχείριση' και, στη συνέχεια, επιλέξτε 'Ευρετήρια μοτίβων' στην ενότητα 'Kibana'
  3. επιλέξτε το προεπιλεγμένο μοτίβο ευρετηρίου (logstash- *)
  4. Κάντε κλικ στο Επόμενο βήμα και ορίστε το 'Όνομα πεδίου φίλτρου ώρας' (@timestamp) και επιλέξτε Δημιουργία μοτίβου ευρετηρίου
  5. Κάντε κλικ στο Discover για να δείτε τα αρχεία καταγραφής της εφαρμογής σας
  6. Κάντε κλικ στην επιλογή Οπτικοποίηση και επιλέξτε δημιουργία οπτικοποίησης και επιλέξτε Πίτα. Συμπληρώστε τα ακόλουθα πεδία όπως φαίνεται παρακάτω.
    • Επιλέξτε ευρετήριο Logstash- * και κάντε κλικ σε διαχωρισμένες φέτες
    • Συγκέντρωση - Σημαντικοί όροι
    • Πεδίο = Kubernetes.pod_name.keyword
    • Μέγεθος - 10

7. Και εφαρμόστε αλλαγές

Αυτό είναι! Έτσι μπορείτε να απεικονίσετε το Kubernetes Pod που δημιουργήθηκε στο Kibana.

Περίληψη :

Η παρακολούθηση με ανάλυση καταγραφής είναι ένα κρίσιμο στοιχείο κάθε ανάπτυξης εφαρμογών. Μπορείτε να συγκεντρώσετε και να συγκεντρώσετε αρχεία καταγραφής σε όλο το σύμπλεγμα σας στο Kubernetes για να παρακολουθήσετε ολόκληρο το σύμπλεγμα από ένα μόνο ταμπλό. Στο παράδειγμά μας, είδαμε το fluentd να ενεργεί ως μεσολαβητής μεταξύ του συμπλέγματος kubernetes και του Amazon ES. Το Fluentd συνδυάζει τη συλλογή και τη συγκέντρωση αρχείων καταγραφής και στέλνει αρχεία καταγραφής στο Amazon ES για αναλυτικά στοιχεία καταγραφής και οπτικοποίηση δεδομένων με το kibana.

Το παραπάνω παράδειγμα δείχνει πώς μπορείτε να προσθέσετε AWS Elastic logging search και kibana monitoring στο σύμπλεγμα kubernetes χρησιμοποιώντας το fluentd.

Εάν βρήκατε αυτό το ιστολόγιο Kubernetes σχετικό, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.