En aquest article, aprendreu a publicar les dades dels esdeveniments del clúster de Kubernetes a Amazon mitjançant l'agent de registre Fluentd. A continuació, es visualitzaran les dades mitjançant , una eina de visualització de codi obert per a Elasticsearch. Amazon ES consisteix en una integració integrada de Kibana.
Us guiarem amb el següent procés:
- Creació d'un clúster de Kubernetes
- Creació d’un clúster d’Amazon ES
- Desplegueu l'agent de registre de Fluentd al clúster de Kubernetes
- Visualitzeu la data de kubernetes a Kibana
Pas 1: creació d'un clúster de Kubernetes
Kubernetes és una plataforma de codi obert creada per Google per gestionar aplicacions en contenidors. us permet administrar, escalar i desplegar les vostres aplicacions en contenidors en un entorn agrupat. Podem orquestrar els nostres contenidors a través de diversos hosts Governadors , escalar les aplicacions en contenidors amb tots els recursos sobre la marxa i tenir un entorn de gestió de contenidors centralitzat.
Començarem creant el clúster de Kubernetes i us demostraré pas a pas sobre com instal·lar i configurar Kubernetes a CentOS 7.
1. Configureu els amfitrions
- vi / etc / hosts
- feu canvis segons les dades del vostre amfitrió al fitxer d'amfitrions
2. Desactiveu SELinux executant les ordres següents
- setenforce 0
- sed -i –follow-symlinks ‘s / SELINUX = aplicació / SELINUX = desactivat / g’ / etc / sysconfig / selinux
3. Activeu el mòdul del nucli br_netfilter
El mòdul br_netfilter és necessari per a la instal·lació de kubernetes. Executeu l'ordre següent per habilitar el mòdul del nucli br_netfilter.- modprobe br_netfilter
- echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables
4. Desactiveu SWAP executant les ordres següents.
- permuta -a
- A continuació, editeu / etc / fstab i comenteu la línia d'intercanvi
5. Instal·leu la versió més recent de Docker CE.Instal·leu les dependències del paquet per a docker-ce executant les ordres següents.
- yum install -y yum-utils device-mapper-persistent-data lvm2
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- instal·leu -y docker-ce
6. Instal·leu Kubernetes
Utilitzeu l'ordre següent per afegir el dipòsit de kubernetes al sistema centos 7.- yum install -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 EOFInstal·leu el fitxer paquets kubeadm, kubelet i kubectl mitjançant l'execució de l'ordre yum a continuació.
- systemctl start docker && systemctl enable docker
Un cop finalitzada la instal·lació, reinicieu tots aquests servidors.Després de reiniciar, inicieu els serveis docker i kubelet
- systemctl start docker && systemctl enable docker
- systemctl inicia kubelet && systemctl activa kubelet
- systemctl inicia kubelet && systemctl activa kubelet
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
La xarxa de franel·la s’ha desplegat al clúster Kubernetes. Espereu un temps i, a continuació, comproveu el node i els pods de kubernetes mitjançant les ordres següents.- kubectl aconsegueix nodes
- kubectl aconsegueix pods –tots els espais de noms
9. Addició de nodes al clústerConnecteu-vos al servidor node01 i executeu l'ordre kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a
Connecteu-vos al servidor node02 i executeu l'ordre kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a
Espereu un temps i Valideu el servidor de clúster mestre ‘k8s-master’, comproveu els nodes i els pods mitjançant l’ordre següent.
- kubectl aconsegueix nodes
com s'utilitza l'anaconda python
Ara obtindreu treballador1 i treballador2 s'ha afegit al clúster amb l'estat 'llest'.
- kubectl aconsegueix pods –tots els espais de noms
La inicialització i configuració del mestre del clúster de Kubernetes s'ha completat.
Pas 2: creació d'un clúster d'Amazon ES
Elasticsearch és un motor de cerca i anàlisi de codi obert que s’utilitza per a l’anàlisi de registres i el control en temps real d’aplicacions. Amazon Elasticsearch Service (Amazon ES) és un servei AWS que permet el desplegament, el funcionament i l’escala d’Elasticsearch al núvol AWS. Podeu utilitzar Amazon ES per analitzar esdeveniments d’enviament de correu electrònic des del vostre Amazon SES
Crearem un clúster d’Amazon ES i, a continuació, desplegarem l’agent de registre Fluentd al clúster de Kubernetes que recollirà els registres i l’enviarà al clúster d’Amazon ES
Aquesta secció mostra com utilitzar la consola Amazon ES per crear un clúster Amazon ES.
Per crear un clúster Amazon ES
- Inicieu la sessió a AWS Management Console i obriu la consola Amazon Elasticsearch Service a https://console.aws.amazon.com/es/
- Seleccioneu Creeu un nou domini i trieu Tipus de desplegament a la consola Amazon ES.
- A Versió, deixeu el valor per defecte del camp de la versió d’Elasticsearch.
- Seleccioneu Següent
- Escriviu un nom per al vostre domini de cerca elàstic a configurar el clúster pàgina a sota Configureu el domini.
- A la pàgina Configuració del clúster, seleccioneu les opcions següents a Instàncies de dades
- Tipus d'instància - Trieu t2.micro.elasticsearch (apte per al nivell gratuït).
- Nombre d'instància - 1
- SotaInstàncies mestres dedicades
- Activa el mestre dedicat - No activeu aquesta opció.
- Activa el reconeixement de zones - No activeu aquesta opció.
- A Configuració d'emmagatzematge, trieu les opcions següents.
- Tipus d'emmagatzematge - Trieu EBS. Per a la configuració d'EBS, trieu el tipus de volum EBS de propòsit general (SSD) i la mida del volum EBS& thinspde 10.
- Sota xifratge: No activeu aquesta opció
- A la configuració de la instantània
- Hora d’inici de la instantània automàtica - Trieu les instantànies automàtiques a l’hora d’inici 00:00 UTC (per defecte).
- Trieu Següent
- A Configuració de xarxa, seleccioneu Accés VPC i seleccioneu els detalls segons el vostre VPC que es mostra a continuació.A l'autenticació Kibana: - No activeu aquesta opció.
- Per establir la política d'accés, seleccioneu Permet l'accés obert al domini.Nota: - A la producció, heu de restringir l'accés a adreces IP o intervals específics.
- Trieu Següent.
- A la pàgina Revisa, reviseu la configuració i seleccioneu Confirma i crea.
Nota: El clúster trigarà fins a deu minuts a desplegar-se. Preneu nota de l'URL de Kibana un cop feu clic al domini de cerca elàstic creat.
Pas 3: desplegueu l'agent de registre de Fluentd al clúster de Kubernetes
Fluentd és un recopilador de dades de codi obert que us permet unificar la recopilació i el consum de dades per a un millor ús i comprensió de les dades. En aquest cas, desplegarem el registre de Fluentd al clúster de Kubernetes, que recollirà els fitxers de registre i els enviarà a Amazon Elastic Search.
Crearem un ClusterRole que proporciona permisos a pods i objectes d’espai de noms per fer que s’aconsegueixi, enumeri i vegi la sol·licitud al clúster.
En primer lloc, hem de configurar els permisos RBAC (control d’accés basat en funcions) perquè Fluentd pugui accedir als components adequats.
1.fluentd-rbac.yaml:
com fer una matriu dinàmica a Java
apiVersion: v1 kind: ServiceAccount metadata: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd namespace: kube-system rules: - apiGroups: - ' 'recursos: - pods - verbs d'espais de noms: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization Assignatures .k8s.io: - kind: ServiceAccount name: fluentd namespace: kube-system
Crea: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Ara podem crear el DaemonSet.
2. fluentd-daemonset.yaml
apiVersion: extensions / v1beta1 kind: DaemonSet metadata: name: fluentd namespace: kube-system labels: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: versió de registre de fluentd: v1 kubernetes.io/cluster-service: especificació 'true': serviceAccount: fluentd serviceAccountName: toleràncies fluentd: - clau: node-role.kubernetes.io/master effect: No Contenidors de calendari: - nom: imatge fluentd: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nom: FLUENT_ELASTICSEARCH_HOST valor: 'elasticsearch.logging' - nom: FLUENT_ELASTICSEARCH_PORT valor: '9200' - nom: FLUENT_ELASTICSEARCH_SCH nom: valor FLUENT_UID: recursos '0': límits: memòria: sol·licituds 200Mi: cpu: memòria 100m: volum 200Mi Muntatges: - nom: varlog mountPath: / var / log - nom: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : veritable terminacióGracePeriodSeconds: 30 volums: - nom: varlog hostPath: ruta: / var / log - nom: varlibdockercontainers hostPath: path: / var / lib / docker / containers
Assegureu-vos de definir FLUENT_ELASTICSEARCH_HOST i FLUENT_ELASTICSEARCH_PORT segons el vostre entorn de cerca elàstic
Desplega:
$ kubectl create -f kubernetes / fluentd-daemonset.yaml
Valideu els registres
$ kubectl registra fluentd-lwbt6 -n sistema kube | grep Connection
Hauríeu de veure que Fluentd es connecta a Elasticsearch als registres:
Pas 4: visualitzeu les dades de kubernetes a Kibana
- Connecteu-vos a l'URL del tauler de control de kibana per obtenir des de la consola Amazon ES
- Per veure els registres recollits per Fluentd a Kibana, feu clic a 'Gestió' i seleccioneu 'Patrons d'índex' a 'Kibana'.
- trieu el patró d'índex per defecte (logstash- *)
- Feu clic a Pas següent i configureu el nom del camp del filtre de temps (@timestamp) i trieu Crea un patró d'índex
- Feu clic a Descobreix per veure els registres de l'aplicació
- Feu clic a Visualitza i seleccioneu crear una visualització i trieu Pastís. Empleneu els camps següents com es mostra a continuació.
- Seleccioneu Logstash- * index i feu clic a les parts dividides
- Agregació: termes significatius
- Camp = Kubernetes.pod_name.keyword
- Mida: 10
7. I aplica canvis
Això és! Així és com podeu visualitzar el Kubernetes Pod creat a Kibana.
Resum :
La supervisió mitjançant anàlisi de registres és un component crític de qualsevol desplegament d’aplicacions. Podeu reunir i consolidar registres a tot el clúster a Kubernetes per supervisar tot el clúster des d'un únic tauler. En el nostre exemple, hem vist fluentd actuar com a mediador entre el clúster de kubernetes i Amazon ES. Fluentd combina la recopilació i l'agregació de registres i envia registres a Amazon ES per a l'anàlisi de registres i la visualització de dades amb kibana.
L'exemple anterior mostra com afegir el registre de cerca AWS Elastic i la supervisió de kibana al clúster de kubernetes mitjançant fluentd.
Si heu trobat aquest blog de Kubernetes rellevant, consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.
Tens alguna pregunta? Esmenta’l a la secció de comentaris i et respondrem.