V tem članku boste izvedeli, kako objaviti podatke o dogodkih grozda Kubernetes v Amazonu z uporabo Fluentd-ovega sredstva za sečnjo. Podatki si bodo nato ogledali z uporabo , odprtokodno orodje za vizualizacijo Elasticsearch. Amazon ES je sestavljen iz integrirane integracije Kibana.
Vodili vas bomo po naslednjem postopku:
- Ustvarjanje grozda Kubernetes
- Ustvarjanje Amazon ES gruče
- Razporedite agent za beleženje Fluentd v gruči Kubernetes
- Vizualizirajte datum kubernetov v Kibani
1. korak: Ustvarjanje grozda Kubernetes
Kubernetes je odprtokodna platforma, ki jo je Google ustvaril za upravljanje vsebniških aplikacij. omogoča upravljanje, spreminjanje obsega in razmestitev vaših vsebniških aplikacij v gručastem okolju. Svoje zabojnike lahko razporedimo med različne gostitelje Guvernerji , sproti prilagodite vsebniške aplikacije z vsemi viri in imate centralizirano okolje za upravljanje vsebnikov.
Začeli bomo z ustvarjanjem grozda Kubernetes in po korakih vam bom prikazal, kako namestiti in konfigurirati Kubernetes na CentOS 7.
eno. Konfigurirajte gostitelje
- vi / etc / hosts
- spremenite glede na podrobnosti gostitelja v datoteki gostiteljev
2. Onemogočite SELinux z izvajanjem spodnjih ukazov
- setenforce 0
- sed -i –follow-symlinks ‘s / SELINUX = uveljavljanje / SELINUX = onemogočeno / g’ / etc / sysconfig / selinux
3. Omogoči modul jedra br_netfilter
Za namestitev kubernetes je potreben modul br_netfilter. Zaženite spodnji ukaz, da omogočite modul jedra br_netfilter.- modprobe br_netfilter
- echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables
Štiri. Onemogočite SWAP tako, da zaženete spodnje ukaze.
- zamenjava -a
- Nato uredite / etc / fstab in komentirajte zamenjavo
5. Namestite najnovejšo različico Docker CE.Namestite odvisnosti paketa za docker-ce tako, da zaženete spodnje ukaze.
- 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 namestite -y docker-ce
6. Namestite Kubernetes
Z naslednjim ukazom dodajte shrambo kubernetes v sistem centos 7.- yum namestite -y kubelet bebeadm kubectl
[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 omogočeno = 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 EOFNamestite pakira kubeadm, kubelet in kubectl z uporabo spodnjega ukaza yum.
- & systemctl start docker && systemctl omogoči docker
Po končani namestitvi znova zaženite vse te strežnike.Po ponovnem zagonu zaženite servisni docker in kubelet
- & systemctl start docker && systemctl omogoči docker
- & systemctl start kubelet && systemctl omogoči kubelet
- & systemctl start kubelet && systemctl omogoči kubelet
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Flanelovo omrežje je bilo razporejeno v skupino Kubernetes. Počakajte nekaj časa in nato s pomočjo spodnjih ukazov preverite kubernetes vozlišče in pods.- kubectl dobili vozlišča
- kubectl dobi pods - vse-imenske prostore
9. Dodajanje vozlišč v gručoPovežite se s strežnikom node01 in zaženite ukaz kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Povežite se s strežnikom node02 in zaženite ukaz kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Počakajte nekaj časa in potrdite strežnik glavne gruče 'k8s-master', preverite vozlišča in pods z naslednjim ukazom.
- kubectl dobili vozlišča
Zdaj boste dobili worker1 in worker2 je bil dodan v gručo s statusom 'pripravljen'.
- kubectl dobi pods - vse-imenske prostore
Inicializacija in konfiguracija glavnega grozda Kubernetes je končana.
2. korak: Ustvarjanje grozda Amazon ES
Elasticsearch je odprtokodni mehanizem za iskanje in analitiko, ki se uporablja za analizo dnevnikov in sprotno spremljanje aplikacij. Amazon Elasticsearch Service (Amazon ES) je storitev AWS, ki omogoča uvajanje, delovanje in obseg Elasticsearch v oblaku AWS. Amazon ES lahko uporabite za analizo dogodkov pošiljanja e-pošte z vašega Amazon SES
Ustvarili bomo grupo Amazon ES in nato razporedili agent za beleženje Fluentd v gručo Kubernetes, ki bo zbiral dnevnike in jih pošiljal v gručo Amazon ES
Ta razdelek prikazuje, kako uporabiti konzolo Amazon ES za ustvarjanje gruče Amazon ES.
Če želite ustvariti gručo Amazon ES
- Prijavite se v konzolo AWS Management Console in odprite konzolo Amazon Elasticsearch Service na https://console.aws.amazon.com/es/
- Izberite Ustvarite novo domeno in izberite vrsto razmestitve v konzoli Amazon ES.
- Pod možnostjo Različica pustite privzeto vrednost polja različice Elasticsearch.
- Izberite Naprej
- Vnesite ime za svojo iskalno domeno Elastic na konfiguriraj grozd stran pod Konfigurirajte domeno.
- Na strani Konfiguriranje gruče v razdelku Primerki podatkov izberite naslednje možnosti
- Vrsta primerka - Izberite t2.micro.elasticsearch (upravičeno do brezplačne stopnje).
- Število primerov - eno
- SpodajNamenski glavni primerki
- Omogoči namenski mojster - Ne omogočite te možnosti.
- Omogoči ozaveščenost o conah - Ne omogočite te možnosti.
- V razdelku Konfiguracija shranjevanja izberite naslednje možnosti.
- Vrsta skladišča - Izberite EBS. Za nastavitve EBS izberite vrsto nosilca EBS za splošno uporabo (SSD) in velikost glasnosti EBS& thinspod 10.
- Pod šifriranjem - Te možnosti ne omogočite
- V konfiguraciji posnetka
- Avtomatska začetna ura posnetka - Izberite Samodejni posnetki začetna ura 00:00 UTC (privzeto).
- Izberite Naprej
- V razdelku Konfiguracija omrežja izberite VPC Access in izberite podrobnosti glede na vaš VPC, kot je prikazano spodaj.Pri preverjanju pristnosti Kibana: - Te možnosti ne omogočite.
- Če želite nastaviti pravilnik o dostopu, izberite Dovoli odprt dostop do domene.Opomba: - V proizvodnji morate omejiti dostop do določenih naslovov IP ali obsegov.
- Izberite Naprej.
- Na strani Pregled preglejte nastavitve in izberite Potrdi in ustvari.
Opomba: Razdeljevanje grozda bo trajalo do deset minut. Ko kliknete elastično iskalno domeno, si zabeležite svoj URL Kibana.
3. korak: razmestite agent za beleženje Fluentd v gruči Kubernetes
Fluentd je odprtokodni zbiralnik podatkov, ki vam omogoča poenotenje zbiranja in porabe podatkov za boljšo uporabo in razumevanje podatkov. V tem primeru bomo v grozd Kubernetes razporedili beleženje Fluentd, ki bo zbralo dnevniške datoteke in jih poslalo v Amazon Elastic Search.
Ustvarili bomo ClusterRole, ki zagotavlja dovoljenja za pods in predmete imenskega prostora za izdelavo zahtev za pridobivanje, seznam in ogled v gruči.
Najprej moramo konfigurirati dovoljenja RBAC (nadzor dostopa na podlagi vlog), tako da lahko Fluentd dostopa do ustreznih komponent.
plitka vs globoka kopija java
1. fluentd-rbac.yaml:
apiVersion: v1 vrsta: ServiceAccount metapodatki: ime: fluentd imenski prostor: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 vrsta: ClusterRole metapodatki: ime: fluentd imenski prostor: pravila sistema kube: - apiGroups: - ' 'resources: - pods - namespaces glagoli: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metapodatki: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io predmeti: - vrsta: ServiceAccount name: fluentd namespace: kube-system
Ustvari: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Zdaj lahko ustvarimo DaemonSet.
2. fluentd-daemonset.yaml
apiVersion: extensions / v1beta1 vrsta: DaemonSet metapodatki: ime: fluentd imenski prostor: kube-sistemske oznake: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: tekoča različica beleženja: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerance: - key: node-role.kubernetes.io/master effect: NoSchedule container: - name: fluentd image: fluentd / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST value: 'elasticsearch.logging' - name: FLUENT_ELASTICSEARCH_PORT value: '9200' - name: FLUENT_ELASTICSEAR 'http: ime: FLUENT_UID vrednost: '0' viri: omejitve: pomnilnik: 200Mi zahteve: procesor: 100m pomnilnik: 200Mi obsegMounts: - ime: varlog mountPath: / var / log - ime: varlibdockercontainers mountPath: / var / lib / docker / vsebniki readOnly : true окончаvanjeGracePeriodSeconds: 30 zvezkov: - ime: varlog hostPath: pot: / var / log - ime: varlibdockercontainers hostPath: pot: / var / lib / docker / container
Prepričajte se, da ste definirali FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT glede na vaše elastično iskalno okolje
Uvedba:
$ kubectl create -f kubernetes / fluentd-daemonset.yaml
Potrdite dnevnike
$ kubectl dnevniki fluentd-lwbt6 -n kube-system | grep povezava
Videti bi morali, da se Fluentd v dnevnikih poveže z Elasticsearch:
4. korak: Vizualizirajte podatke o kubernetih v Kibani
- Povežite se z URL-jem nadzorne plošče kibana, da odprete konzolo Amazon ES
- Če si želite ogledati dnevnike, ki jih je zbral Fluentd v Kibani, kliknite »Upravljanje« in nato v razdelku »Kibana« izberite »Vzorci indeksa«.
- izberite privzeti vzorec indeksa (logstash- *)
- Kliknite Naslednji korak in nastavite 'Ime polja časovnega filtra' (@timestamp) in izberite Ustvari vzorec indeksa
- Kliknite Odkrij, če si želite ogledati dnevnike aplikacij
- Kliknite Vizualiziraj, izberite Ustvari vizualizacijo in izberite Pita. Izpolnite naslednja polja, kot je prikazano spodaj.
- Izberite kazalo Logstash- * in kliknite razdeljene rezine
- Združevanje - pomembni izrazi
- Polje = Kubernetes.pod_name.keyword
- Velikost - 10
7. In uporabite spremembe
To je to! Tako si lahko predstavljate Kubernetes Pod, ustvarjen v Kibani.
Povzetek :
Spremljanje z analizo dnevnika je ključni sestavni del vsake uvedbe aplikacije. V Kubernetesu lahko zbirate in konsolidirate dnevnike po celotni gruči, da na eni nadzorni plošči spremljate celotno gručo. V našem primeru smo videli, da je fluentd deloval kot posrednik med skupino kubernetes in Amazon ES. Fluentd združuje zbiranje in združevanje dnevnikov ter pošlje dnevnike na Amazon ES za analizo dnevnikov in vizualizacijo podatkov s kibana.
Zgornji primer prikazuje, kako dodati geslo iskanja AWS Elastic in spremljanje kibane v gručo kubernetes z uporabo fluentd.
Če se vam zdi ta spletni dnevnik Kubernetes ustrezen, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu.
Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.