Cara Memvisualisasikan Peristiwa Kluster Kubernetes dalam masa nyata



Catatan blog ini akan membantu anda belajar bagaimana menerbitkan data peristiwa kluster Kubernetes ke Amazon Elastic Search menggunakan ejen log masuk Fluentd.

Dalam artikel ini, anda akan belajar bagaimana menerbitkan data peristiwa kluster Kubernetes ke Amazon menggunakan ejen pembalakan Fluentd. Data kemudian akan dilihat menggunakan , alat visualisasi sumber terbuka untuk Elasticsearch. Amazon ES terdiri daripada integrasi Kibana bersepadu.

Kami akan memandu anda melalui proses berikut:





Langkah 1: Membuat Kluster Kubernetes

Kubernetes adalah platform sumber terbuka yang dibuat oleh Google untuk menguruskan aplikasi yang dikemas. ini membolehkan anda mengurus, menskalakan dan menyebarkan aplikasi yang dikemas dalam lingkungan berkelompok. Kami dapat mengatur bekas kami di pelbagai host dengan Gabenor , skala aplikasi kontena dengan semua sumber dengan cepat, dan mempunyai persekitaran pengurusan kontena terpusat.

Kami akan bermula dengan membuat kluster Kubernetes dan saya akan menunjukkan kepada anda langkah demi langkah, mengenai cara memasang dan mengkonfigurasi Kubernetes di CentOS 7.



satu. Konfigurasi Host

    • vi / etc / host
    • buat perubahan mengikut perincian hos anda dalam fail hos

IMG1 - Pencarian Elastik - Edureka

2. Lumpuhkan SELinux dengan melaksanakan perintah di bawah



    • setenforce 0
    • sed -i –follow-symlinks 's / SELINUX = menegakkan / SELINUX = dilumpuhkan / g' / etc / sysconfig / selinux

3. Dayakan br_netfilter Kernel Module

Modul br_netfilter diperlukan untuk pemasangan kubernetes. Jalankan arahan di bawah untuk mengaktifkan modul kernel br_netfilter.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Empat. Lumpuhkan SWAP dengan menjalankan perintah di bawah.

    • pertukaran -a
    • Kemudian edit / etc / fstab dan komen baris pertukaran

apa itu token dalam java

5. Pasang versi terbaru Docker CE.Pasang kebergantungan pakej untuk docker-ce dengan menjalankan perintah di bawah.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Tambahkan repositori docker ke sistem dan pasang docker-ce menggunakan perintah yum.

6. Pasang Kubernetes

Gunakan arahan 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
Pasang pakej kubeadm, kubelet, dan kubectl menggunakan dengan menjalankan perintah yum di bawah.
  • systemctl start docker && systemctl aktifkan docker

Setelah pemasangan selesai, mulakan semula semua pelayan tersebut.Selepas memulakan semula memulakan perkhidmatan docker dan kubelet

  • systemctl start docker && systemctl aktifkan docker
  • systemctl start kubelet && systemctl aktifkan kubelet
7. Permulaan Kluster Kubernetes Log masuk ke master server dan jalankan arahan di bawah
  • systemctl start kubelet && systemctl aktifkan kubelet
Setelah inisialisasi Kubernetes selesai, anda akan mendapat hasilnya.Salin perintah dari hasil yang anda dapat dan Jalankan untuk mula menggunakan kluster. Buat nota arahan gabungan kubeadm dari hasil. Perintah tersebut akan digunakan untuk mendaftarkan node baru ke kelompok kubernetes. 8. Terapkan rangkaian flanel ke kelompok kubernetes kubectl berlaku -f

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

Rangkaian flanel telah dikerahkan ke kluster Kubernetes. Tunggu sebentar dan kemudian periksa nod dan pod kubernetes menggunakan arahan di bawah.
    • kubectl dapatkan nod
    • kubectl dapatkan pod - semua ruang nama
Dan anda akan mendapat simpul 'k8s-master' berjalan sebagai kluster 'master' dengan status 'siap', dan anda akan mendapat semua pod yang diperlukan untuk kluster, termasuk 'kube-flannel-ds' untuk pod rangkaian konfigurasi.

9. Menambah Node ke klusterSambung ke pelayan node01 dan jalankan perintah bergabung kubeadm

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

Sambung ke pelayan node02 dan jalankan perintah bergabung kubeadm

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

Tunggu sebentar dan Sahkan pelayan kluster induk ‘k8s-master’, periksa nod dan pod menggunakan arahan berikut.

      • kubectl dapatkan nod

Sekarang anda akan mendapat pekerja1 dan pekerja2 telah ditambahkan ke kluster dengan status 'siap'.

      • kubectl dapatkan pod - semua ruang nama

Permulaan dan konfigurasi induk kluster Kubernetes telah selesai.

Langkah 2: Membuat kluster Amazon ES

Elasticsearch adalah mesin carian dan analisis sumber terbuka yang digunakan untuk analisis log dan pemantauan aplikasi masa nyata. Amazon Elasticsearch Service (Amazon ES) adalah perkhidmatan AWS yang membolehkan penggunaan, operasi, dan skala Elasticsearch di awan AWS. Anda boleh menggunakan Amazon ES untuk menganalisis peristiwa penghantaran e-mel dari Amazon SES anda

Kami akan membuat kluster Amazon ES dan kemudian menyebarkan ejen log masuk Fluentd ke kluster Kubernetes yang akan mengumpulkan log dan menghantar ke kluster Amazon ES

php cara mencetak array

Bahagian ini menunjukkan cara menggunakan konsol Amazon ES untuk membuat kluster Amazon ES.

Untuk membuat kluster Amazon ES

    1. Log masuk ke AWS Management Console dan buka konsol Perkhidmatan Elasticsearch Amazon di https://console.aws.amazon.com/es/
    2. Pilih Buat Domain Baru dan pilih jenis Penerapan di konsol Amazon ES.
    3. Di bawah Versi, tinggalkan nilai lalai dari bidang versi Elasticsearch.
    4. Pilih Seterusnya
    5. Taipkan nama untuk domain carian Elastik anda di konfigurasi kluster halaman bawah Konfigurasikan Domain.
    6. Pada halaman Konfigurasi kluster, pilih pilihan berikut di bawah Instance data
      • Jenis contoh - Pilih t2.micro.elasticsearch (Tahap percuma layak).
      • Bilangan Contoh - satu
    7. Di bawahContoh Master yang berdedikasi
      • Dayakan tuan yang berdedikasi - Jangan aktifkan pilihan ini.
      • Aktifkan kesedaran zon - Jangan aktifkan pilihan ini.
    8. Di bawah konfigurasi Penyimpanan, pilih pilihan berikut.
      • Jenis simpanan - Pilih EBS. Untuk tetapan EBS, pilih jenis kelantangan EBS Tujuan Umum (SSD) dan ukuran kelantangan EBS& thinspdaripada 10.
    9. Di bawah penyulitan - Jangan aktifkan pilihan ini
    10. Di bawah konfigurasi snapshot
      • Waktu mula snapshot automatik - Pilih tangkapan automatik jam mula 00:00 UTC (lalai).
    11. Pilih Seterusnya
    12. Di bawah konfigurasi Rangkaian pilih Akses VPC dan pilih perincian seperti yang ditunjukkan oleh VPC anda di bawah.Di bawah pengesahan Kibana: - Jangan aktifkan pilihan ini.
    13. Untuk menetapkan dasar akses, pilih Izinkan akses terbuka ke domain.Catatan: - Dalam pengeluaran, anda harus menghadkan akses ke Alamat IP atau Ranges tertentu.
    14. Pilih Seterusnya.
    15. Pada halaman Ulasan, tinjau tetapan anda, dan kemudian pilih Sahkan dan Buat.

Catatan: Kluster akan memakan masa hingga sepuluh minit untuk digunakan. Perhatikan URL Kibana anda setelah anda mengklik domain carian elastik yang dibuat.

Langkah 3: Terapkan agen pembalakan Fluentd pada kluster Kubernetes

Fluentd adalah pengumpul data sumber terbuka, yang memungkinkan anda menyatukan pengumpulan dan penggunaan data untuk penggunaan dan pemahaman data yang lebih baik. Dalam kes ini, kami akan menyebarkan log masuk Fluentd pada kluster Kubernetes, yang akan mengumpulkan fail log dan menghantar ke Amazon Elastic Search.

Kami akan membuat ClusterRole yang memberikan kebenaran pada objek pod dan ruang nama untuk membuat permintaan, senarai dan tontonan untuk kluster.

Pertama, kita perlu mengkonfigurasi izin RBAC (kawalan akses berdasarkan peranan) supaya Fluentd dapat mengakses komponen yang sesuai.

1. fluentd-rbac.yaml:

apiVersion: v1 type: ServiceAccount metadata: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd namespace: peraturan sistem kube: - apiGroups: - ' 'sumber: - kata kerja - kata kerja ruang nama: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization Mata pelajaran .k8s.io: - jenis: PerkhidmatanNama akaun: ruang nama lancar: sistem kube

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

2. fluentd-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: label: k8s -app: versi fluentd-logging: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/ efek: wadah NoSchedule: - name: fluentd image: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST value: 'elasticsearch.logging' - nama: FLUENT_ELASTICSEARCH_PORT nilai: '9200' - nama: FLUENT_ELASTICSEARCH_SCHE name: FLUENT_UID value: '0' resources: had: memory: 200Mi request: cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: / var / log - name: varlibdockercontainers mountPath: / var / lib / docker / container dibacaHanya : true terminationGracePeriodSeconds: 30 volume: - name: varlog hostPath: path: / var / log - nama: varlibdockercontainers hostPath: path: / var / lib / docker / container

Pastikan untuk menentukan FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT mengikut persekitaran carian elastik anda

Sebarkan:

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

Sahkan log

$ kubectl log fluentd-lwbt6 -n kube-system | Sambungan grep

Anda harus melihat bahawa Fluentd menyambung ke Elasticsearch dalam log:

pasang php 7 pada windows

Langkah 4: Visualisasikan data kubernetes di Kibana

  1. Sambungkan ke URL papan pemuka kibana untuk mendapatkan dari konsol Amazon ES
  2. Untuk melihat log yang dikumpulkan oleh Fluentd di Kibana, klik 'Pengurusan' dan kemudian pilih 'Pola Indeks' di bawah 'Kibana'
  3. pilih corak Indeks lalai (logstash- *)
  4. Klik Langkah Seterusnya dan tetapkan 'Nama medan penapis masa' (@timestamp) dan pilih Buat corak indeks
  5. Klik Discover untuk melihat log aplikasi anda
  6. Klik Visualisasi dan pilih buat visualisasi dan pilih Pie. Isi bidang berikut seperti di bawah.
    • Pilih indeks Logstash- * dan klik bahagian berpisah
    • Agregasi - Istilah penting
    • Medan = Kubernetes.pod_name.keyword
    • Saiz - 10

7. Dan Terapkan Perubahan

Itu sahaja! Ini adalah bagaimana anda dapat membayangkan Kubernetes Pod yang dibuat di Kibana.

Ringkasan :

Pemantauan melalui analisis log adalah komponen penting dari penggunaan aplikasi. Anda boleh mengumpulkan dan menggabungkan log di kluster anda di Kubernetes untuk memantau keseluruhan kluster dari satu papan pemuka tunggal. Dalam contoh kami, kami telah melihat fasih bertindak sebagai orang tengah antara kelompok kubernetes dan Amazon ES. Fluentd menggabungkan pengumpulan dan pengumpulan log dan menghantar log ke Amazon ES untuk analisis log dan visualisasi data dengan kibana.

Contoh di atas menunjukkan cara menambahkan penebangan carian AWS Elastic dan pemantauan kibana ke kelompok kubernetes menggunakan fluentd.

Sekiranya anda mendapati blog Kubernetes ini relevan, lihat di oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.