كيفية تصور أحداث مجموعة Kubernetes في الوقت الفعلي



سيساعدك منشور المدونة هذا في تعلم كيفية نشر بيانات أحداث مجموعة Kubernetes على Amazon Elastic Search باستخدام وكيل التسجيل Fluentd.

في هذه المقالة ، ستتعلم كيفية نشر بيانات أحداث مجموعة Kubernetes على Amazon باستخدام وكيل تسجيل Fluentd. سيتم بعد ذلك عرض البيانات باستخدام ، أداة تصور مفتوحة المصدر للبحث المرن. يتكون Amazon ES من تكامل Kibana المتكامل.

سنرشدك خلال العملية التالية:





الخطوة 1: إنشاء مجموعة Kubernetes

Kubernetes هو نظام أساسي مفتوح المصدر أنشأته Google لإدارة التطبيقات المعبأة في حاويات. يمكّنك من إدارة تطبيقاتك المعبأة في حاويات وتوسيع نطاقها ونشرها في بيئة مجمعة. يمكننا تنظيم حاوياتنا عبر مضيفين مختلفين باستخدام حكام وتوسيع نطاق التطبيقات المعبأة في حاويات باستخدام جميع الموارد أثناء التنقل ، ولديك بيئة إدارة حاوية مركزية.

سنبدأ بإنشاء مجموعة Kubernetes وسأشرح لك خطوة بخطوة حول كيفية تثبيت وتهيئة Kubernetes على CentOS 7.



واحد. تكوين المضيفين

    • vi / etc / hosts
    • قم بإجراء التغييرات وفقًا لتفاصيل المضيف في ملف المضيفين

IMG1 - Elasticsearch - Edureka

2. قم بتعطيل SELinux بتنفيذ الأوامر أدناه



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = فرض / SELINUX = معطل / g '/ etc / sysconfig / selinux

3. تفعيل وحدة نواة br_netfilter

مطلوب وحدة br_netfilter لتثبيت kubernetes. قم بتشغيل الأمر أدناه لتمكين وحدة kernel br_netfilter.
    • modprobe br_netfilter
    • صدى '1'> / proc / sys / net / bridge / bridge / nf-call-iptables

أربعة. قم بتعطيل SWAP عن طريق تشغيل الأوامر أدناه.

    • مبادلة -a
    • ثم قم بتحرير / 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 ممكّن = 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 تمكين عامل الإرساء

بعد اكتمال التثبيت ، أعد تشغيل كل هذه الخوادم.بعد إعادة التشغيل ، ابدأ تشغيل الخدمات و kubelet

  • systemctl start docker && systemctl تمكين عامل الإرساء
  • systemctl بدء kubelet && systemctl تمكين kubelet
7. تهيئة مجموعة Kubernetes قم بتسجيل الدخول إلى الخادم الرئيسي وقم بتشغيل الأمر أدناه
  • systemctl بدء kubelet && systemctl تمكين kubelet
بمجرد اكتمال تهيئة Kubernetes ، ستحصل على النتائج.انسخ الأوامر من النتائج التي حصلت عليها وقم بتنفيذها لبدء استخدام الكتلة. قم بتدوين أمر الانضمام kubeadm من النتائج. سيتم استخدام الأمر لتسجيل عقد جديدة في مجموعة kubernetes. 8. انشر شبكة الفانيلا في مجموعة kubernetes kubectl تطبيق -f

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

تم نشر شبكة الفانيلا في مجموعة Kubernetes. انتظر لبعض الوقت ثم تحقق من عقدة kubernetes والبودات باستخدام الأوامر أدناه.
    • kubectl الحصول على العقد
    • kubectl الحصول على قرون - جميع مساحات الأسماء
وستحصل على عقدة 'k8s-master' تعمل كمجموعة 'رئيسية' مع حالة 'جاهز' ، وستحصل على جميع الكبسولات اللازمة للمجموعة ، بما في ذلك 'kube-flannel-ds' لحجرة الشبكة ترتيب.

9. إضافة العقد إلى الكتلةقم بالاتصال بخادم node01 وقم بتشغيل الأمر kubeadm Join

    • kubeadm انضم 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4

قم بالاتصال بخادم node02 وقم بتشغيل الأمر kubeadm Join

    • kubeadm انضم 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4

انتظر بعض الوقت وتحقق من صحة خادم المجموعة الرئيسية 'k8s-master' ، وتحقق من العقد والبودات باستخدام الأمر التالي.

      • kubectl الحصول على العقد

ستحصل الآن على worker1 و worker2 تمت إضافتهما إلى المجموعة بالحالة 'جاهز'.

      • kubectl الحصول على قرون - جميع مساحات الأسماء

تم إكمال تهيئة وتهيئة Kubernetes الرئيسي للكتلة.

الخطوة 2: إنشاء مجموعة Amazon ES

Elasticsearch هو محرك بحث وتحليلات مفتوح المصدر يستخدم لتحليل السجلات ومراقبة التطبيقات في الوقت الفعلي. Amazon Elasticsearch Service (Amazon ES) هي خدمة AWS تتيح نشر Elasticsearch وتشغيلها وتوسيع نطاقها في سحابة AWS. يمكنك استخدام Amazon ES لتحليل أحداث إرسال البريد الإلكتروني من 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 للأغراض العامة (SSD) وحجم وحدة تخزين EBSرقيقمن 10.
    9. تحت التشفير - لا تقم بتمكين هذا الخيار
    10. تحت تكوين لقطة
      • ساعة بدء لقطة تلقائية - اختر ساعة بدء اللقطات الآلية 00:00 UTC (افتراضي).
    11. اختر التالي
    12. ضمن تكوين الشبكة ، حدد VPC Access وحدد التفاصيل حسب VPC الموضح أدناه.ضمن مصادقة Kibana: - لا تقم بتمكين هذا الخيار.
    13. لتعيين نهج الوصول ، حدد السماح بالوصول المفتوح إلى المجال.ملاحظة: - في الإنتاج ، يجب تقييد الوصول إلى عنوان IP أو نطاقات محددة.
    14. اختر التالي.
    15. في صفحة المراجعة ، قم بمراجعة الإعدادات الخاصة بك ، ثم اختر تأكيد وإنشاء.

ملاحظة: سيستغرق نشر المجموعة ما يصل إلى عشر دقائق. لاحظ عنوان URL الخاص بـ Kibana بمجرد النقر فوق مجال البحث المرن الذي تم إنشاؤه.

الخطوة 3: نشر وكيل التسجيل Fluentd على مجموعة Kubernetes

Fluentd هو جامع بيانات مفتوح المصدر ، يتيح لك توحيد جمع البيانات واستهلاكها من أجل استخدام وفهم أفضل للبيانات. في هذه الحالة ، سنقوم بنشر Fluentd logging على مجموعة Kubernetes ، والتي ستجمع ملفات السجل وإرسالها إلى Amazon Elastic Search.

سننشئ ClusterRole الذي يوفر أذونات على البودات وكائنات مساحة الأسماء لتقديم طلب الحصول على المجموعة وإدراجها ومشاهدتها.

أولاً ، نحتاج إلى تكوين أذونات RBAC (التحكم في الوصول المستند إلى الدور) حتى يتمكن Fluentd من الوصول إلى المكونات المناسبة.

1. flluentd-rbac.yaml:

apiVersion: v1 type: ServiceAccount metadata: الاسم: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 النوع: ClusterRole metadata: name: fluentd namepace: kube-system rules: - apiGroups: - ' الموارد: - pods - namespaces verbs: - get - list - watch - kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: Cluster اسم الدور: fluentd apiGroup: rbac.authorization .k8s.io مواضيع: - النوع: اسم حساب الخدمة: مساحة الاسم بطلاقة: نظام kube

إنشاء: $ kubectl create -f kubernetes / fluentd-rbac.yaml
الآن ، يمكننا إنشاء DaemonSet.

2. بطلاقة-daemonset.yaml

apiVersion: extension / v1beta1 النوع: DaemonSet metadata: الاسم: fluentd namespace: kube-system labels: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -التطبيق: إصدار التسجيل بطلاقة: v1 kubernetes.io/cluster-service: المواصفات 'الحقيقية': serviceAccount: fluentd serviceAccountName: التسامح fluentd: - المفتاح: node-role.kubernetes.io/master effect: NoSchedule Container: - الاسم: الصورة بطلاقة: بطلاقة / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - الاسم: FLUENT_ELASTICSEARCH_HOST القيمة: 'elasticsearch.logging' - الاسم: FLUENT_ELASTICSEARCH_PORT القيمة: '9200' - الاسم: FLUENT_ELASTICSEARCH_SCHEME الاسم: FLUENT_UID القيمة: '0' الموارد: الحدود: الذاكرة: 200Mi الطلبات: وحدة المعالجة المركزية: ذاكرة 100 م: 200Mi volumeMounts: - الاسم: varlog mountPath: / var / log - الاسم: varlibdockercontainers mountPath: / var / lib / docker / الحاويات للقراءة فقط : true terminationGracePeriodSeconds: 30 مجلدًا: - الاسم: varlog hostPath: path: / var / log - name: varlibdockercontainers hostPath: المسار: / var / lib / docker / container

تأكد من تحديد FLUENT_ELASTICSEARCH_HOST و FLUENT_ELASTICSEARCH_PORT وفقًا لبيئة البحث المرنة لديك

نشر:

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

تحقق من السجلات

$ kubectl سجلات fluentd-lwbt6 -n kube-system | اتصال grep

يجب أن ترى أن Fluentd يتصل بـ Elasticsearch داخل السجلات:

تثبيت php على نظام التشغيل windows 7

الخطوة 4: تصور بيانات kubernetes في Kibana

  1. اتصل بعنوان URL الخاص بلوحة معلومات kibana للحصول عليه من وحدة تحكم Amazon ES
  2. لمشاهدة السجلات التي تم جمعها بواسطة Fluentd في Kibana ، انقر فوق 'إدارة' ثم حدد 'أنماط الفهرس' ضمن 'Kibana'
  3. اختر نمط الفهرس الافتراضي (logstash- *)
  4. انقر فوق الخطوة التالية وقم بتعيين 'اسم حقل عامل تصفية الوقت' (timestamp) واختر إنشاء نمط فهرس
  5. انقر فوق اكتشاف لعرض سجلات التطبيق الخاص بك
  6. انقر فوق Visualize وحدد إنشاء تصور واختر Pie. املأ الحقول التالية كما هو موضح أدناه.
    • حدد Logstash- * index وانقر فوق تقسيم الشرائح
    • التجميع - مصطلحات مهمة
    • الحقل = Kubernetes.pod_name.keyword
    • مقاس 10

7. وتطبيق التغييرات

هذا هو! هذه هي الطريقة التي يمكنك من خلالها تصور Kubernetes Pod الذي تم إنشاؤه في Kibana.

ملخص :

تعد المراقبة عن طريق تحليل السجل مكونًا مهمًا في أي نشر للتطبيق. يمكنك جمع السجلات ودمجها عبر مجموعتك في Kubernetes لمراقبة المجموعة بأكملها من لوحة معلومات واحدة. في مثالنا ، رأينا بطلاقة تعمل كوسيط بين مجموعة kubernetes و Amazon ES. يجمع Fluentd بين جمع السجلات وتجميعها ويرسل السجلات إلى Amazon ES لتحليلات السجل وتصور البيانات باستخدام kibana.

يوضح المثال أعلاه كيفية إضافة تسجيل بحث AWS Elastic ومراقبة kibana إلى مجموعة kubernetes باستخدام fluentd.

إذا وجدت مدونة Kubernetes هذه ذات صلة ، فراجع ملف من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات وسنعاود الاتصال بك.