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:
- Membuat Kluster Kubernetes
- Membuat kluster Amazon ES
- Terapkan agen pembalakan Fluentd pada kluster Kubernetes
- Bayangkan tarikh kubernetes di Kibana
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
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
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum install -y docker-ce
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 EOFPasang 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
- systemctl start kubelet && systemctl aktifkan kubelet
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
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
- Log masuk ke AWS Management Console dan buka konsol Perkhidmatan Elasticsearch Amazon di https://console.aws.amazon.com/es/
- Pilih Buat Domain Baru dan pilih jenis Penerapan di konsol Amazon ES.
- Di bawah Versi, tinggalkan nilai lalai dari bidang versi Elasticsearch.
- Pilih Seterusnya
- Taipkan nama untuk domain carian Elastik anda di konfigurasi kluster halaman bawah Konfigurasikan Domain.
- Pada halaman Konfigurasi kluster, pilih pilihan berikut di bawah Instance data
- Jenis contoh - Pilih t2.micro.elasticsearch (Tahap percuma layak).
- Bilangan Contoh - satu
- Di bawahContoh Master yang berdedikasi
- Dayakan tuan yang berdedikasi - Jangan aktifkan pilihan ini.
- Aktifkan kesedaran zon - Jangan aktifkan pilihan ini.
- 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.
- Di bawah penyulitan - Jangan aktifkan pilihan ini
- Di bawah konfigurasi snapshot
- Waktu mula snapshot automatik - Pilih tangkapan automatik jam mula 00:00 UTC (lalai).
- Pilih Seterusnya
- 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.
- Untuk menetapkan dasar akses, pilih Izinkan akses terbuka ke domain.Catatan: - Dalam pengeluaran, anda harus menghadkan akses ke Alamat IP atau Ranges tertentu.
- Pilih Seterusnya.
- 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
- Sambungkan ke URL papan pemuka kibana untuk mendapatkan dari konsol Amazon ES
- Untuk melihat log yang dikumpulkan oleh Fluentd di Kibana, klik 'Pengurusan' dan kemudian pilih 'Pola Indeks' di bawah 'Kibana'
- pilih corak Indeks lalai (logstash- *)
- Klik Langkah Seterusnya dan tetapkan 'Nama medan penapis masa' (@timestamp) dan pilih Buat corak indeks
- Klik Discover untuk melihat log aplikasi anda
- 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.