U ovom ćete članku naučiti kako objaviti podatke o događajima klastera Kubernetes na Amazonu korištenjem Fluentd agensa za bilježenje. Podaci će se zatim pregledavati pomoću , alat za vizualizaciju otvorenog koda za Elasticsearch. Amazon ES sastoji se od integrirane Kibana integracije.
Provest ćemo vas kroz sljedeći postupak:
- Stvaranje Kubernetes klastera
- Stvaranje Amazon ES klastera
- Postavite agent za prijavu Fluentd na klaster Kubernetes
- Vizualizirajte datum kuberneta u Kibani
Korak 1: Stvaranje Kubernetes klastera
Kubernetes je platforma otvorenog koda koju je Google stvorio za upravljanje kontejneriranim aplikacijama. omogućuje vam upravljanje, skaliranje i primjenu kontejneriranih aplikacija u klasteriziranom okruženju. Svoje kontejnere možemo orkestrirati na raznim domaćinima Namjesnici , skalirajte kontejnerirane aplikacije sa svim resursima u letu i imate centralizirano okruženje za upravljanje spremnicima.
Započet ćemo sa stvaranjem Kubernetes klastera i pokazat ću vam korak po korak kako instalirati i konfigurirati Kubernetes na CentOS 7.
jedan. Konfigurirajte hostove
- vi / etc / hosts
- napravite promjene u skladu s pojedinostima vašeg domaćina u datoteci domaćina
2. Onemogućite SELinux izvršavanjem naredbi u nastavku
- setenforce 0
- sed -i –follow-symlinks ‘s / SELINUX = provođenje / SELINUX = onemogućeno / g’ / etc / sysconfig / selinux
3. Omogući br_netfilter modul jezgre
Modul br_netfilter potreban je za instalaciju kubernetesa. Pokrenite naredbu u nastavku da omogućite modul br_netfilter kernel.- modprobe br_netfilter
- echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables
Četiri. Onemogućite SWAP izvođenjem naredbi ispod.
- zamjena -a
- Zatim uredite / etc / fstab i komentirajte zamjenski redak
5. Instalirajte najnoviju verziju Dockera CE.Instalirajte ovisnosti paketa za docker-ce izvođenjem naredbi ispod.
- yum instalirati -y yum-utils device-mapper-persistent-data lvm2
- yum-config-manager –dodaj-repo https://download.docker.com/linux/centos/docker-ce.repo
- njam instalirajte -y docker-ce
6. Instalirajte Kubernetes
Upotrijebite sljedeću naredbu za dodavanje spremišta kubernetes u sustav centos 7.- njam instaliraj -y kubelet bebeadm kubectl
[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled = 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 EOFInstalirajte pakira kubeadm, kubelet i kubectl koristeći izvođenjem yum naredbe ispod.
- systemctl start docker && systemctl omogući docker
Nakon završetka instalacije, ponovno pokrenite sve te poslužitelje.Nakon ponovnog pokretanja pokrenite servisni docker i kubelet
- systemctl start docker && systemctl omogući docker
- systemctl start kubelet && systemctl omogući kubelet
- systemctl start kubelet && systemctl omogući kubelet
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Flanela mreža raspoređena je na klaster Kubernetes. Pričekajte neko vrijeme, a zatim provjerite kubernetes čvor i mahune pomoću naredbi u nastavku.- kubectl dobiti čvorove
- kubectl dobiva mahune –sve prostore imena
9. Dodavanje čvorova u klasterSpojite se na poslužitelj node01 i pokrenite naredbu kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Spojite se na node02 poslužitelj i pokrenite naredbu kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Pričekajte neko vrijeme i provjerite valjanost glavnog poslužitelja klastera 'k8s-master', provjerite čvorove i mahune pomoću sljedeće naredbe.
- kubectl dobiti čvorove
Sada ćete dobiti worker1 i worker2 je dodan u klaster sa statusom 'spreman'.
- kubectl dobiva mahune –sve prostore imena
Inicijalizacija i konfiguracija matičnog klastera Kubernetes je dovršena.
Korak 2: Stvaranje Amazon ES klastera
Elasticsearch je motor za pretraživanje i analitiku otvorenog koda koji se koristi za analizu dnevnika i nadzor aplikacija u stvarnom vremenu. Amazon Elasticsearch Service (Amazon ES) je AWS usluga koja omogućuje postavljanje, rad i opseg Elasticsearch-a u AWS oblaku. Amazon ES možete koristiti za analizu događaja slanja e-pošte s vašeg Amazon SES-a
kako koristiti tostring u javi -
Stvorit ćemo Amazon ES klaster, a zatim rasporediti agent za prijavu Fluentd u klaster Kubernetes koji će prikupljati zapisnike i slati u Amazon ES klaster
Ovaj odjeljak pokazuje kako koristiti Amazon ES konzolu za stvaranje Amazon ES klastera.
Da biste stvorili Amazon ES klaster
- Prijavite se na AWS Management Console i otvorite Amazon Elasticsearch Service konzolu na https://console.aws.amazon.com/es/
- Odaberi Stvorite novu domenu i odaberite vrstu implementacije u Amazon ES konzoli.
- U odjeljku Verzija ostavite zadanu vrijednost polja verzije Elasticsearch.
- Odaberite Dalje
- Upišite naziv svoje Elastic domene pretraživanja na konfigurirati klaster stranica pod Konfigurirajte domenu.
- Na stranici Konfiguriranje klastera odaberite sljedeće opcije u odjeljku Primjeri podataka
- Vrsta instance - Odaberite t2.micro.elasticsearch (ispunjava uvjete za besplatnu razinu).
- Broj instance - jedan
- Pod, ispodNamjenske glavne instance
- Omogući namjenski master - Nemojte omogućiti ovu opciju.
- Omogućite svjesnost o zonama - Nemojte omogućiti ovu opciju.
- U odjeljku Konfiguracija pohrane odaberite sljedeće mogućnosti.
- Vrsta spremišta - Odaberite EBS. Za postavke EBS-a odaberite vrstu volumena EBS opće namjene (SSD) i veličinu EBS glasnoće& tankood 10.
- Pod šifriranjem - Nemojte omogućiti ovu opciju
- U konfiguraciji snimke
- Automatski početni sat snimke - Odaberite Automatske snimke početak sata 00:00 UTC (zadano).
- Odaberite Dalje
- U odjeljku Konfiguracija mreže odaberite VPC pristup i odaberite detalje prema vašem VPC-u prikazano je dolje.Pod provjerom autentičnosti Kibana: - Nemojte omogućiti ovu opciju.
- Da biste postavili pravila pristupa, odaberite Dopusti otvoreni pristup domeni.Napomena: - U proizvodnji biste trebali ograničiti pristup određenim IPadresama ili rasponima.
- Odaberite Dalje.
- Na stranici Pregled pregledajte svoje postavke, a zatim odaberite Potvrdi i izradi.
Napomena: Klasteru će trebati do deset minuta za postavljanje. Zapamtite svoj Kibana URL kada kliknete na elastičnu domenu za pretraživanje koja je stvorena.
Korak 3: Postavite agent za prijavu Fluentd na klaster Kubernetes
Fluentd je skupljač podataka otvorenog koda koji vam omogućuje objedinjavanje prikupljanja i potrošnje podataka radi bolje upotrebe i razumijevanja podataka. U ovom ćemo slučaju rasporediti prijavu Fluentd na klaster Kubernetes, koja će prikupiti datoteke dnevnika i poslati ih Amazon Elastic Search.
Stvorit ćemo ClusterRole koji pruža dozvole za pods i objekte prostora imena za izradu zahtjeva za dobivanje, popis i gledanje klastera.
Prvo, moramo konfigurirati dozvole RBAC (kontrola pristupa zasnovana na ulogama) tako da Fluentd može pristupiti odgovarajućim komponentama.
1.fluentd-rbac.yaml:
apiVersion: v1 vrsta: ServiceAccount metapodaci: ime: fluentd prostor imena: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 vrsta: ClusterRole metapodaci: name: fluentd prostor imena: pravila sistema kube: - apiGroups: - ' 'resursi: - pods - glagoli prostora prostora: - get - list - watch --- vrsta: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metapodaci: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io predmeti: - vrsta: ServiceAccount name: fluentd space names: kube-system
Stvori: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Sada možemo stvoriti DaemonSet.
2. fluentd-daemonset.yaml
apiVersion: extensions / v1beta1 vrsta: DaemonSet metapodaci: ime: fluentd prostor imena: kube-sistemske oznake: k8s-app: fluentd-logging verzija: v1 kubernetes.io/cluster-service: 'true' specifikacija: predložak: metapodaci: oznake: k8s -app: verzija fluentd-logging: v1 kubernetes.io/cluster-service: 'true' specifikacija: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - 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 ' ime: FLUENT_UID vrijednost: '0' resursi: ograničenja: memorija: 200Mi zahtjeva: procesor: 100m memorija: 200Mi količinaMounts: - ime: varlog mountPath: / var / log - ime: varlibdockercontainers mountPath: / var / lib / docker / kontejneri readOnly : true prestanakGracePeriodSeconds: 30 svezaka: - name: varlog hostPath: path: / var / log - name: varlibdockercontainers hostPath: put: / var / lib / docker / kontejneri
Svakako definirajte FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT prema vašem elastičnom okruženju pretraživanja
Postaviti:
$ kubectl create -f kubernetes / fluentd-daemonset.yaml
razlike između html i xml
Potvrdite zapisnike
$ kubectl zapisnici fluentd-lwbt6 -n kube-system | grep veza
Trebali biste vidjeti da se Fluentd povezuje s Elasticsearchom unutar dnevnika:
Korak 4: Vizualizirajte podatke kubernetesa u Kibani
- Spojite se na URL kibana nadzorne ploče da biste došli s Amazon ES konzole
- Da biste vidjeli zapisnike koje je prikupio Fluentd u Kibani, kliknite 'Upravljanje', a zatim odaberite 'Uzorci indeksa' pod 'Kibana'
- odaberite zadani uzorak indeksa (logstash- *)
- Kliknite Sljedeći korak i postavite 'Naziv polja vremenskog filtra' (@timestamp) i odaberite Stvaranje uzorka indeksa
- Kliknite Otkrij da biste pregledali zapisnike aplikacija
- Kliknite Vizualiziraj i odaberite izradi vizualizaciju i odaberite Pita. Ispunite sljedeća polja kako je prikazano dolje.
- Odaberite Logstash- * index i kliknite podijeljene kriške
- Agregacija - značajni pojmovi
- Polje = Kubernetes.pod_name.keyword
- Veličina - 10
7. I primijeni promjene
To je to! Na ovaj način možete vizualizirati Kubernetes Pod stvoren u Kibani.
Sažetak :
Nadzor analizom dnevnika ključna je komponenta bilo koje primjene aplikacije. Možete skupiti i konsolidirati zapisnike preko svojeg klastera u Kubernetesu kako biste nadzirali cijelu klasteru s jedne nadzorne ploče. U našem primjeru vidjeli smo kako fluentd djeluje kao posrednik između klastera kubernetes i Amazon ES. Fluentd kombinira prikupljanje i agregiranje dnevnika i šalje zapisnike Amazonu ES za analitiku dnevnika i vizualizaciju podataka s kibanom.
Gornji primjer pokazuje kako dodati AWS Elastic zapisivanje pretraživanja i praćenje kibane u kubernetes klaster koristeći fluentd.
Ako vam se učini da je ovaj Kubernetesov blog relevantan, pogledajte Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta.
Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.