Cara Memvisualisasikan Acara Cluster Kubernetes secara real-time



Entri blog ini akan membantu Anda mempelajari cara memublikasikan data peristiwa klaster Kubernetes ke Amazon Elastic Search menggunakan agen pencatatan Fluentd.

Di artikel ini, Anda akan mempelajari cara mempublikasikan data peristiwa klaster Kubernetes ke Amazon menggunakan agen penebangan Fluentd. Data tersebut kemudian akan dilihat menggunakan , alat visualisasi sumber terbuka untuk Elasticsearch. Amazon ES terdiri dari integrasi Kibana terintegrasi.

Kami akan memandu Anda melalui proses berikut:





Langkah 1: Membuat Cluster Kubernetes

Kubernetes adalah platform open source yang dibuat oleh Google untuk mengelola aplikasi dalam container. ini memungkinkan Anda untuk mengelola, menskalakan, dan menerapkan aplikasi dalam container di lingkungan berkerumun. Kami dapat mengatur container kami di berbagai host dengan Gubernur , menskalakan aplikasi dalam container dengan semua resource dengan cepat, dan memiliki lingkungan pengelolaan container terpusat.

Kita akan mulai dengan membuat cluster Kubernetes dan saya akan menunjukkan kepada Anda langkah demi langkah, tentang cara menginstal dan mengkonfigurasi Kubernetes di CentOS 7.



struktur dan algoritma data java

satu. Konfigurasi Host

    • vi / etc / hosts
    • buat perubahan sesuai dengan detail host Anda di file host

IMG1 - Elasticsearch - Edureka

2. Nonaktifkan SELinux dengan menjalankan perintah di bawah ini



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = menegakkan / SELINUX = dinonaktifkan / g’ / etc / sysconfig / selinux

3. Aktifkan Modul Kernel br_netfilter

Modul br_netfilter diperlukan untuk instalasi kubernetes. Jalankan perintah di bawah ini untuk mengaktifkan modul kernel br_netfilter.
    • modprobe br_netfilter
    • echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables

Empat. Nonaktifkan SWAP dengan menjalankan perintah di bawah ini.

    • swapoff -a
    • Kemudian edit / etc / fstab dan beri komentar pada baris swap

5. Instal Docker CE versi terbaru.Instal dependensi paket untuk buruh pelabuhan dengan menjalankan perintah di bawah ini.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Tambahkan repositori buruh pelabuhan ke sistem dan instal buruh pelabuhan menggunakan perintah yum.

6. Instal Kubernetes

Gunakan perintah berikut untuk menambahkan repositori kubernetes ke sistem centos 7.
    • yum install -y kubelet bebeadm kubectl

[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 diaktifkan = 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
Instal paket kubeadm, kubelet, dan kubectl menggunakan perintah yum di bawah ini.
  • systemctl mulai buruh pelabuhan && systemctl mengaktifkan buruh pelabuhan

Setelah penginstalan selesai, mulai ulang semua server tersebut.Setelah restart mulai layanan buruh pelabuhan dan kubelet

  • systemctl mulai buruh pelabuhan && systemctl mengaktifkan buruh pelabuhan
  • systemctl mulai kubelet && systemctl aktifkan kubelet
7. Inisialisasi Cluster Kubernetes Masuk ke server master dan jalankan perintah di bawah ini
  • systemctl mulai kubelet && systemctl aktifkan kubelet
Setelah inisialisasi Kubernetes selesai, Anda akan mendapatkan hasilnya.Salin perintah dari hasil yang Anda dapatkan dan Jalankan untuk mulai menggunakan cluster. Catat perintah gabungan kubeadm dari hasil. Perintah tersebut akan digunakan untuk mendaftarkan node baru ke cluster kubernetes. 8. Menerapkan jaringan flanel ke klaster kubernetes kubectl apply -f

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

Jaringan flanel telah di-deploy ke cluster Kubernetes. Tunggu beberapa saat dan kemudian periksa kubernetes node dan pod menggunakan perintah di bawah ini.
    • kubectl mendapatkan node
    • kubectl mendapatkan pods –all-namespaces
Dan Anda akan mendapatkan node 'k8s-master' berjalan sebagai cluster 'master' dengan status 'ready', dan Anda akan mendapatkan semua pod yang diperlukan untuk cluster tersebut, termasuk 'kube-flannel-ds' untuk jaringan pod konfigurasi.

9. Menambahkan Node ke clusterHubungkan ke server node01 dan jalankan perintah kubeadm join

    • kubeadm bergabung 172.31.7.47:6443 –token di03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5ab

Hubungkan ke server node02 dan jalankan perintah kubeadm join

    • kubeadm bergabung 172.31.7.47:6443 –token di03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0c5ab

Tunggu beberapa saat dan Validasi server cluster master 'k8s-master', periksa node dan pod menggunakan perintah berikut.

      • kubectl mendapatkan node

Sekarang Anda akan mendapatkan pekerja1 dan pekerja2 telah ditambahkan ke cluster dengan status 'siap'.

      • kubectl mendapatkan pods –all-namespaces

Inisialisasi dan konfigurasi master cluster Kubernetes telah selesai.

Langkah 2: Membuat klaster Amazon ES

Elasticsearch adalah mesin pencari dan analitik open source yang digunakan untuk analisis log dan pemantauan aplikasi secara real-time. Amazon Elasticsearch Service (Amazon ES) adalah layanan AWS yang memungkinkan penerapan, operasi, dan skala Elasticsearch di cloud AWS. Anda dapat menggunakan Amazon ES untuk menganalisis peristiwa pengiriman email dari Amazon SES Anda

Kami akan membuat klaster Amazon ES dan kemudian Menerapkan agen logging Fluentd ke klaster Kubernetes yang akan mengumpulkan log dan mengirim ke klaster Amazon ES

Bagian ini menunjukkan cara menggunakan konsol Amazon ES untuk membuat klaster Amazon ES.

Untuk membuat klaster Amazon ES

    1. Masuk ke AWS Management Console dan buka konsol Amazon Elasticsearch Service di https://console.aws.amazon.com/es/
    2. Pilih Buat Domain Baru dan pilih tipe Deployment di konsol Amazon ES.
    3. Di bawah Versi, biarkan nilai default bidang versi Elasticsearch.
    4. Pilih Next
    5. Ketik nama untuk domain pencarian Elastis Anda di konfigurasikan cluster halaman di bawah Konfigurasi Domain.
    6. Di halaman Configure cluster, pilih opsi berikut di bawah Data Instances
      • Jenis instance - Pilih t2.micro.elasticsearch (Tingkat gratis yang memenuhi syarat).
      • Jumlah Instance - satu
    7. DibawahMesin Virtual Master Khusus
      • Aktifkan master khusus - Jangan aktifkan opsi ini.
      • Aktifkan kesadaran zona - Jangan aktifkan opsi ini.
    8. Di bawah Konfigurasi penyimpanan, pilih opsi berikut.
      • Jenis penyimpanan - Pilih EBS. Untuk pengaturan EBS, pilih jenis volume EBS Tujuan Umum (SSD) dan ukuran volume EBS& menipiskandari 10.
    9. Di bawah enkripsi - Jangan aktifkan opsi ini
    10. Di bawah konfigurasi snapshot
      • Jam mulai snapshot otomatis - Pilih snapshot Otomatis mulai jam 00:00 UTC (default).
    11. Pilih Berikutnya
    12. Di bawah Konfigurasi jaringan pilih Akses VPC dan pilih detail sesuai VPC Anda yang ditampilkan di bawah ini.Di bawah otentikasi Kibana: - Jangan aktifkan opsi ini.
    13. Untuk mengatur kebijakan akses, pilih Izinkan akses terbuka ke domain.Catatan: - Dalam produksi Anda harus membatasi akses ke IPaddress atau Ranges tertentu.
    14. Pilih Berikutnya.
    15. Pada halaman Tinjau, tinjau pengaturan Anda, lalu pilih Konfirmasi dan Buat.

Catatan: Cluster akan membutuhkan waktu hingga sepuluh menit untuk diterapkan. Catat URL Kibana Anda setelah Anda mengklik domain pencarian elastis yang dibuat.

Langkah 3: Terapkan agen logging Fluentd di cluster Kubernetes

Fluentd adalah pengumpul data sumber terbuka, yang memungkinkan Anda menyatukan pengumpulan dan konsumsi data untuk penggunaan dan pemahaman data yang lebih baik. Dalam kasus ini, kami akan menerapkan pencatatan Fluentd di klaster Kubernetes, yang akan mengumpulkan file log dan mengirimkannya ke Amazon Elastic Search.

Kita akan membuat ClusterRole yang memberikan izin pada pod dan objek namespace untuk membuat permintaan get, list dan watch ke cluster.

Pertama, kita perlu mengkonfigurasi izin RBAC (kontrol akses berbasis peran) sehingga Fluentd dapat mengakses komponen yang sesuai.

1.fluentd-rbac.yaml:

java system.exit (1)
apiVersion: v1 jenis: Metadata ServiceAccount: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 jenis: ClusterRole metadata: name: fluentd namespace: kube-system rules: - apiGroups: - ' 'sumber daya: - pods - kata kerja namespace: - get - list - watch --- jenis: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization Subjek .k8s.io: - jenis: Nama Akun Layanan: ruang nama fluentd: kube-system

Buat: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Sekarang, kita dapat membuat DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 jenis: DaemonSet metadata: name: fluentd namespace: kube-system labels: k8s-app: fluentd-logging versi: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: fluentd-logging versi: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: toleransi fluentd: - key: node-role.kubernetes.io/master effect: NoSchedule containers: - name: gambar fluentd: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST nilai: 'elasticsearch.logging' - nama: FLUENT_ELASTICSEARCH_PORT nilai: '9200' - nama: FLUENT_ELASTICSEARCH_SCH '- nilai:' http '- nilai name: FLUENT_UID nilai: '0' resources: limit: memory: 200Mi request: cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: / var / log - name: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : benar terminationGracePeriodSeconds: 30 volume: - nama: varlog hostPath: jalur: / var / log - nama: varlibdockercontainers hostPath: jalur: / var / lib / docker / containers

Pastikan untuk mendefinisikan FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT sesuai dengan lingkungan pencarian elastis Anda

Menyebarkan:

c ++ fungsi penyortiran

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

Validasi log

$ kubectl mencatat fluentd-lwbt6 -n kube-system | grep Koneksi

Anda akan melihat bahwa Fluentd terhubung ke Elasticsearch di dalam log:

Langkah 4: Visualisasikan data kubernetes di Kibana

  1. Hubungkan ke URL dasbor kibana untuk mendapatkan dari konsol Amazon ES
  2. Untuk melihat log yang dikumpulkan oleh Fluentd di Kibana, klik 'Manajemen' lalu pilih 'Pola Indeks' di bawah 'Kibana'
  3. pilih pola Indeks default (logstash- *)
  4. Klik Langkah Berikutnya dan setel 'Nama bidang filter waktu' (@timestamp) dan pilih Buat pola indeks
  5. Klik Temukan untuk melihat log aplikasi Anda
  6. Klik Visualisasikan dan pilih buat visualisasi dan pilih Pai. Isi kolom berikut seperti yang ditunjukkan di bawah ini.
    • Pilih Logstash- * index dan klik split slices
    • Agregasi - Istilah penting
    • Bidang = Kubernetes.pod_name.keyword
    • Ukuran - 10

7. Dan Terapkan Perubahan

Itu dia! Ini adalah bagaimana Anda dapat memvisualisasikan Pod Kubernetes yang dibuat di Kibana.

Ringkasan :

Pemantauan dengan analisis log adalah komponen penting dari penerapan aplikasi apa pun. Anda dapat mengumpulkan dan menggabungkan log di seluruh cluster Anda di Kubernetes untuk memantau seluruh cluster dari satu dasbor tunggal. Dalam contoh kami, kami telah melihat tindakan fluentd sebagai mediator antara kubernetes cluster dan Amazon ES. Fluentd menggabungkan pengumpulan dan agregasi log dan mengirim log ke Amazon ES untuk analitik log dan visualisasi data dengan kibana.

Contoh di atas menunjukkan bagaimana menambahkan AWS Elastic search logging dan kibana monitoring ke kubernetes cluster menggunakan fluentd.

Jika Anda merasa blog Kubernetes ini relevan, lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali.