In questo articolo imparerai come pubblicare i dati degli eventi del cluster Kubernetes su Amazon utilizzando l'agente di registrazione Fluentd. I dati verranno quindi visualizzati utilizzando , uno strumento di visualizzazione open source per Elasticsearch. Amazon ES consiste nell'integrazione Kibana integrata.
Ti guideremo attraverso il seguente processo:
- Creazione di un cluster Kubernetes
- Creazione di un cluster Amazon ES
- Distribuisci l'agente di registrazione Fluentd sul cluster Kubernetes
- Visualizza la data di Kubernetes in Kibana
Passaggio 1: creazione di un cluster Kubernetes
Kubernetes è una piattaforma open source creata da Google per gestire le applicazioni containerizzate. ti consente di gestire, scalare e distribuire le tue app containerizzate in un ambiente cluster. Possiamo orchestrare i nostri contenitori su vari host con Governatori , ridimensionare le app containerizzate con tutte le risorse al volo e disporre di un ambiente di gestione dei container centralizzato.
Inizieremo con la creazione del cluster Kubernetes e ti mostrerò passo dopo passo come installare e configurare Kubernetes su CentOS 7.
uno. Configura host
- vi / etc / hosts
- apportare modifiche in base ai dettagli dell'host nel file hosts
2. Disabilita SELinux eseguendo i seguenti comandi
- setenforce 0
- sed -i –follow-symlinks 's / SELINUX = enforcing / SELINUX = disabled / g' / etc / sysconfig / selinux
3. Abilita br_netfilter Kernel Module
Il modulo br_netfilter è richiesto per l'installazione di kubernetes. Eseguire il comando seguente per abilitare il modulo kernel br_netfilter.- modprobe br_netfilter
- echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables
Quattro. Disabilita SWAP eseguendo i seguenti comandi.
- swapoff -a
- Quindi modifica / etc / fstab e commenta la riga di scambio
inverte un numero in python
5. Installa l'ultima versione di Docker CE.Installa le dipendenze del pacchetto per docker-ce eseguendo i seguenti comandi.
- 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. Installa Kubernetes
Usa il seguente comando per aggiungere il repository 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 EOFInstalla il file pacchetti kubeadm, kubelet e kubectl utilizzando eseguendo il comando yum di seguito.
- systemctl avvia docker && systemctl abilita docker
Al termine dell'installazione, riavviare tutti quei server.Dopo il riavvio, avvia i servizi docker e kubelet
- systemctl avvia docker && systemctl abilita docker
- systemctl avvia kubelet && systemctl abilita kubelet
- systemctl avvia kubelet && systemctl abilita kubelet
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
La rete di flanella è stata distribuita al cluster Kubernetes. Attendi un po 'di tempo, quindi controlla il nodo e i pod kubernetes utilizzando i comandi seguenti.- kubectl ottiene i nodi
- kubectl ottiene pods –all-namespaces
9. Aggiunta di nodi al clusterConnettiti al server node01 ed esegui il comando kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Connettiti al server node02 ed esegui il comando kubeadm join
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Attendi un po 'di tempo e convalida il server del cluster principale 'k8s-master', controlla i nodi e i pod utilizzando il seguente comando.
- kubectl ottiene i nodi
Ora otterrai worker1 e worker2 è stato aggiunto al cluster con lo stato 'pronto'.
- kubectl ottiene pods –all-namespaces
L'inizializzazione e la configurazione del master del cluster Kubernetes sono state completate.
Passaggio 2: creazione di un cluster Amazon ES
Elasticsearch è un motore di ricerca e analisi open source utilizzato per l'analisi dei log e il monitoraggio in tempo reale delle applicazioni. Amazon Elasticsearch Service (Amazon ES) è un servizio AWS che consente la distribuzione, il funzionamento e la scalabilità di Elasticsearch nel cloud AWS. Puoi utilizzare Amazon ES per analizzare gli eventi di invio di e-mail dal tuo Amazon SES
Creeremo un cluster Amazon ES e quindi distribuiremo l'agente di registrazione Fluentd al cluster Kubernetes che raccoglierà i log e li invierà al cluster Amazon ES
Questa sezione mostra come utilizzare la console Amazon ES per creare un cluster Amazon ES.
Per creare un cluster Amazon ES
- Accedi alla Console di gestione AWS e apri la console di Amazon Elasticsearch Service all'indirizzo https://console.aws.amazon.com/es/
- Selezionare Crea un nuovo dominio e scegli il tipo di distribuzione nella console Amazon ES.
- In Versione, lascia il valore predefinito del campo Versione di Elasticsearch.
- Seleziona Avanti
- Digita un nome per il tuo dominio di ricerca elastico nel file configurare il cluster pagina sotto Configura dominio.
- Nella pagina Configura cluster, seleziona le seguenti opzioni in Istanze di dati
- Tipo di istanza - Scegli t2.micro.elasticsearch (idoneo per il livello gratuito).
- Numero di istanze - uno
- SottoIstanze master dedicate
- Abilita master dedicato - Non abilitare questa opzione.
- Abilita la consapevolezza della zona - Non abilitare questa opzione.
- In Configurazione archiviazione, scegli le seguenti opzioni.
- Tipo di archiviazione - Scegli EBS. Per le impostazioni EBS, scegli il tipo di volume EBS General Purpose (SSD) e la dimensione del volume EBS& thinspdi 10.
- Sotto crittografia - Non abilitare questa opzione
- Sotto configurazione snapshot
- Ora di inizio dello snapshot automatico - Scegli Le istantanee automatiche iniziano alle 00:00 UTC (impostazione predefinita).
- Scegli Avanti
- In Configurazione di rete seleziona Accesso VPC e seleziona i dettagli in base al tuo VPC mostrato di seguito.Sotto l'autenticazione Kibana: - Non abilitare questa opzione.
- Per impostare il criterio di accesso, seleziona Consenti accesso aperto al dominio.Nota: - In produzione dovresti limitare l'accesso a specifici indirizzi IP o intervalli.
- Scegli Avanti.
- Nella pagina Revisione, rivedi le tue impostazioni, quindi scegli Conferma e crea.
Nota: la distribuzione del cluster richiederà fino a dieci minuti. Prendi nota del tuo URL Kibana dopo aver fatto clic sul dominio di ricerca elastico creato.
Passaggio 3: distribuisci l'agente di registrazione Fluentd sul cluster Kubernetes
Fluentd è un raccoglitore di dati open source, che consente di unificare la raccolta e il consumo dei dati per un migliore utilizzo e comprensione dei dati. In questo caso, distribuiremo il log di Fluentd sul cluster Kubernetes, che raccoglierà i file di log e li invierà ad Amazon Elastic Search.
Creeremo un ClusterRole che fornisce i permessi sui pod e sugli oggetti dello spazio dei nomi per fare richieste get, list e watch al cluster.
Innanzitutto, è necessario configurare le autorizzazioni RBAC (controllo degli accessi basato sui ruoli) in modo che Fluentd possa accedere ai componenti appropriati.
1.fluentd-rbac.yaml:
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: - ' 'risorse: - pods - spazi dei nomi verbi: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io soggetti: - tipo: ServiceAccount nome: fluentd namespace: kube-system
Crea: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Ora possiamo creare DaemonSet.
cos'è l'interfaccia marker in java
2. fluentd-daemonset.yaml
apiVersion: extensions / v1beta1 tipo: DaemonSet metadata: name: fluentd namespace: kube-system labels: k8s-app: fluentd-logging versione: v1 kubernetes.io/cluster-service: 'true' specifica: template: metadata: labels: k8s -app: fluentd-logging versione: v1 kubernetes.io/cluster-service: 'true' specifica: serviceAccount: fluentd serviceAccountName: fluentd tolleranze: - chiave: node-role.kubernetes.io/master effetto: NoSchedule containers: - name: immagine fluentd: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - nome: FLUENT_ELASTICSEARCH_HOST valore: 'elasticsearch.logging' - nome: FLUENT_ELASTICSEARCH_PORT valore: '9200' - nome: FLUENT_ELASTICSE: 'httpSC' - valore nome: FLUENT_UID valore: '0' risorse: limiti: memoria: 200Mi richieste: cpu: 100m memoria: 200Mi volumeMounts: - nome: varlog mountPath: / var / log - nome: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : true terminationGracePeriodSeconds: 30 volumi: - nome: varlog hostPath: percorso: / var / log - nome: varlibdockercontainers hostPath: percorso: / var / lib / docker / containers
Assicurati di definire FLUENT_ELASTICSEARCH_HOST e FLUENT_ELASTICSEARCH_PORT in base al tuo ambiente di ricerca elastico
Distribuire:
$ kubectl crea -f kubernetes / fluentd-daemonset.yaml
Convalida i log
$ kubectl registra fluentd-lwbt6 -n kube-system | Connessione grep
Dovresti vedere che Fluentd si connette a Elasticsearch nei log:
Passaggio 4: visualizza i dati di Kubernetes in Kibana
- Connettiti all'URL della dashboard kibana per ottenere dalla console Amazon ES
- Per vedere i registri raccolti da Fluentd in Kibana, fai clic su 'Gestione' e quindi seleziona 'Schemi indice' in 'Kibana'
- scegli il modello di indice predefinito (logstash- *)
- Fare clic su Passaggio successivo e impostare il 'Nome campo filtro tempo' (@timestamp) e scegliere Crea modello indice
- Fare clic su Scopri per visualizzare i registri dell'applicazione
- Fai clic su Visualizza e seleziona Crea una visualizzazione e scegli Torta. Compila i seguenti campi come mostrato di seguito.
- Seleziona Logstash- * index e fai clic su sezioni divise
- Aggregazione - Termini significativi
- Campo = Kubernetes.pod_name.keyword
- Taglia - 10
7. E applicare le modifiche
Questo è tutto! In questo modo puoi visualizzare il pod Kubernetes creato in Kibana.
Sommario :
Il monitoraggio tramite analisi dei log è un componente critico di qualsiasi distribuzione di applicazioni. Puoi raccogliere e consolidare i log nel tuo cluster in Kubernetes per monitorare l'intero cluster da un unico dashboard. Nel nostro esempio, abbiamo visto fluentd agire come mediatore tra il cluster Kubernetes e Amazon ES. Fluentd combina la raccolta e l'aggregazione dei log e invia i log ad Amazon ES per l'analisi dei log e la visualizzazione dei dati con kibana.
L'esempio precedente mostra come aggiungere la registrazione della ricerca elastica AWS e il monitoraggio kibana al cluster kubernetes utilizzando fluentd.
switch case nei programmi di esempio java
Se hai trovato pertinente questo blog di Kubernetes, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.
Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo.