In dit artikel leert u hoe u Kubernetes-clustergebeurtenisgegevens naar Amazon publiceert met behulp van Fluentd-logging-agent. De gegevens worden dan bekeken met , een open-source visualisatietool voor Elasticsearch. Amazon ES bestaat uit geïntegreerde Kibana-integratie.
We zullen u door het volgende proces leiden:
- Een Kubernetes-cluster maken
- Een Amazon ES-cluster maken
- Implementeer Fluentd-logboekregistratie-agent op Kubernetes-cluster
- Visualiseer de kubernetes-datum in Kibana
Stap 1: een Kubernetes-cluster maken
Kubernetes is een open source-platform gemaakt door Google om gecontaineriseerde applicaties te beheren. Hiermee kunt u uw container-apps beheren, schalen en implementeren in een clusteromgeving. We kunnen onze containers over verschillende hosts orkestreren met Gouverneurs , schaal de container-apps met alle resources in een handomdraai, en beschik over een gecentraliseerde containerbeheeromgeving.
We beginnen met het maken van een Kubernetes-cluster en ik zal u stap voor stap laten zien hoe u Kubernetes op CentOS 7 installeert en configureert.
een. Configureer hosts
- vi / etc / hosts
- breng wijzigingen aan volgens uw hostgegevens in het hosts-bestand
2. Schakel SELinux uit door onderstaande commando's uit te voeren
- setenforce 0
- sed -i –follow-symlinks ‘s / SELINUX = afdwingen / SELINUX = uitgeschakeld / g’ / etc / sysconfig / selinux
3. Schakel br_netfilter Kernel Module in
De module br_netfilter is vereist voor de installatie van kubernetes. Voer de onderstaande opdracht uit om de kernelmodule br_netfilter in te schakelen.- modprobe br_netfilter
- echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables
Vier. Schakel SWAP uit door onderstaande opdrachten uit te voeren.
- swapoff -a
- Bewerk vervolgens / etc / fstab en geef commentaar op de ruilregel
5. Installeer de nieuwste versie van Docker CE.Installeer de pakketafhankelijkheden voor docker-ce door onderstaande opdrachten uit te voeren.
- 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. Installeer Kubernetes
Gebruik de volgende opdracht om de kubernetes-opslag plaats toe te voegen aan het centos 7-systeem.- 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 EOFInstalleer het pakketten kubeadm, kubelet en kubectl met behulp van de onderstaande yum-opdracht.
- systemctl start docker && systemctl schakel docker in
Start al die servers opnieuw nadat de installatie is voltooid.Start na het opnieuw opstarten de services docker en kubelet
- systemctl start docker && systemctl schakel docker in
- systemctl start kubelet && systemctl schakel kubelet in
- systemctl start kubelet && systemctl schakel kubelet in
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Het flanellennetwerk is geïmplementeerd in het Kubernetes-cluster. Wacht enige tijd en controleer vervolgens het kubernetes-knooppunt en de pods met de onderstaande opdrachten.- kubectl krijgt knooppunten
- kubectl krijgt pods - alle naamruimten
9. Knooppunten aan het cluster toevoegenMaak verbinding met de node01-server en voer de opdracht kubeadm join uit
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a
Maak verbinding met de node02-server en voer de opdracht kubeadm join uit
- kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a
Wacht enige tijd en valideer de ‘k8s-master’ masterclusterserver, controleer de knooppunten en pods met behulp van de volgende opdracht.
- kubectl krijgt knooppunten
U krijgt nu worker1 en worker2 is aan het cluster toegevoegd met de status ‘gereed’.
- kubectl krijgt pods - alle naamruimten
De initialisatie en configuratie van Kubernetes-clustermaster is voltooid.
marionet vs ansible vs chef
Stap 2: een Amazon ES-cluster maken
Elasticsearch is een open source zoek- en analyse-engine die wordt gebruikt voor logboekanalyse en real-time monitoring van applicaties. Amazon Elasticsearch Service (Amazon ES) is een AWS-service die de implementatie, werking en schaal van Elasticsearch in de AWS-cloud mogelijk maakt. U kunt Amazon ES gebruiken om gebeurtenissen voor het verzenden van e-mail vanaf uw Amazon SES te analyseren
We zullen een Amazon ES-cluster maken en vervolgens de Fluentd-logging-agent implementeren in het Kubernetes-cluster dat logboeken verzamelt en naar het Amazon ES-cluster verzendt
In dit gedeelte wordt uitgelegd hoe u de Amazon ES-console gebruikt om een Amazon ES-cluster te maken.
Om een Amazon ES-cluster te maken
- Meld u aan bij de AWS Management Console en open de Amazon Elasticsearch Service-console op https://console.aws.amazon.com/es/
- Selecteer Maak een nieuw domein en kies Implementatietype in de Amazon ES-console.
- Laat onder Versie de standaardwaarde van het veld Elasticsearch-versie staan.
- Selecteer volgende
- Typ een naam voor uw Elastic-zoekdomein op het configureren cluster pagina onder Configureer het domein.
- Selecteer op de pagina cluster configureren de volgende opties onder gegevensinstanties
- Instantietype - Kies t2.micro.elasticsearch (komt in aanmerking voor een gratis laag).
- Aantal instanties - een
- OnderToegewijde masterinstances
- Schakel toegewijde master in - Schakel deze optie niet in.
- Schakel zonebewustzijn in - Schakel deze optie niet in.
- Kies onder Opslagconfiguratie de volgende opties.
- Opslag type - Kies EBS. Kies voor de EBS-instellingen het EBS-volumetype General Purpose (SSD) en EBS-volumegrootte& dunspvan 10.
- Onder versleuteling - Schakel deze optie niet in
- Onder snapshot-configuratie
- Geautomatiseerd startuur van snapshots - Kies Geautomatiseerde snapshots startuur 00:00 UTC (standaard).
- Kies Volgende
- Selecteer onder Netwerkconfiguratie VPC-toegang en selecteer de details volgens uw VPC hieronder.Onder Kibana-authenticatie: - Schakel deze optie niet in.
- Selecteer Open toegang tot het domein toestaan om het toegangsbeleid in te stellen.Opmerking: - In productie moet u de toegang tot een specifiek IP-adres of bereiken beperken.
- Kies Volgende.
- Controleer uw instellingen op de pagina Controleren en kies vervolgens Bevestigen en maken.
Opmerking: het kan tot tien minuten duren voordat het cluster is geïmplementeerd. Noteer uw Kibana-URL zodra u op het gemaakte elastische zoekdomein klikt.
Stap 3: Implementeer Fluentd-logboekregistratie-agent op Kubernetes-cluster
Fluentd is een open source gegevensverzamelaar, waarmee u de gegevensverzameling en -consumptie kunt verenigen voor een beter gebruik en begrip van gegevens. In dit geval zullen we Fluentd-logging implementeren op het Kubernetes-cluster, dat de logbestanden verzamelt en naar Amazon Elastic Search verzendt.
We zullen een ClusterRole maken die machtigingen biedt voor pods en naamruimteobjecten om een get-, list- en watch-verzoek te clusteren.
Ten eerste moeten we RBAC-machtigingen (role-based access control) configureren zodat Fluentd toegang heeft tot de juiste componenten.
1.fluentd-rbac.yaml:
apiVersion: v1 soort: ServiceAccount metadata: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd namespace: kube-system rules: - apiGroups: - ' 'resources: - pods - namespaces werkwoorden: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd role Ref: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io onderwerpen: - soort: ServiceAccount naam: fluentd naamruimte: kube-systeem
Maken: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Nu kunnen we de DaemonSet maken.
2. fluentd-daemonset.yaml
apiVersion: extensions / v1beta1 soort: 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: fluentd-logging versie: v1 kubernetes.io/cluster-service: 'true' specificatie: serviceAccount: fluentd serviceAccountName: fluentd toleraties: - key: node-role.kubernetes.io/master effect: NoSchedule containers: - naam: fluentd afbeelding: fluent / fluentd-kubernetes-daemonset: v1.3-debian-elasticsearch env: - naam: FLUENT_ELASTICSEARCH_HOST waarde: 'elasticsearch.logging' - naam: FLUENT_ELASTICSEARCH_PORT waarde: '9200' - naam: FLUENT_ELASTICSEARCH_HOST waarde: 'elasticsearch.logging' - naam: FLUENT_ELASTICSEARCH_PORT waarde: '9200' - naam: FLUENT_ELASTICE waarde: ' naam: FLUENT_UID waarde: '0' bronnen: limieten: geheugen: 200Mi verzoeken: cpu: 100m geheugen: 200Mi volumeMounts: - naam: varlog mountPath: / var / log - naam: varlibdockercontainers mountPath: / var / lib / docker / containers readOnly : true termininationGracePeriodSeconds: 30 volumes: - naam: varlog hostPath: pad: / var / log - naam: varlibdockercontainers hostPath: pad: / var / lib / docker / containers
Zorg ervoor dat u FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT definieert volgens uw elastische zoekomgeving
Inzetten:
$ kubectl create -f kubernetes / fluentd-daemonset.yaml
Valideer de logboeken
$ kubectl logboeken fluentd-lwbt6 -n kube-system | grep-verbinding
Je zou moeten zien dat Fluentd verbinding maakt met Elasticsearch in de logboeken:
Stap 4: Visualiseer kubernetes-gegevens in Kibana
- Maak verbinding met de kibana-dashboard-URL om van de Amazon ES-console te komen
- Om de logboeken te zien die door Fluentd in Kibana zijn verzameld, klikt u op 'Beheer' en selecteert u vervolgens 'Indexpatronen' onder 'Kibana'
- kies het standaard indexpatroon (logstash- *)
- Klik op Volgende stap en stel de “Tijdfilterveldnaam” (@timestamp) in en kies Indexpatroon maken
- Klik op Ontdekken om uw toepassingslogboeken te bekijken
- Klik op Visualiseren en selecteer een visualisatie maken en kies Taart. Vul de volgende velden in zoals hieronder weergegeven.
- Selecteer Logstash- * index en klik op gesplitste segmenten
- Aggregatie - Significante termen
- Veld = Kubernetes.pod_name.keyword
- Maat - 10
7. En pas wijzigingen toe
Dat is het! Dit is hoe u de Kubernetes-pod kunt visualiseren die in Kibana is gemaakt.
Samenvatting :
Monitoring door logboekanalyse is een cruciaal onderdeel van elke applicatie-implementatie. U kunt logboeken in uw cluster in Kubernetes verzamelen en consolideren om het hele cluster vanaf één dashboard te bewaken. In ons voorbeeld hebben we vloeiend zien optreden als bemiddelaar tussen kubernetes-cluster en Amazon ES. Fluentd combineert logboekverzameling en -aggregatie en stuurt logboeken naar Amazon ES voor loganalyse en datavisualisatie met Kibana.
Het bovenstaande voorbeeld laat zien hoe u AWS Elastic Search-logboekregistratie en kibana-bewaking kunt toevoegen aan kubernetes-cluster met behulp van fluentd.
Als je deze Kubernetes-blog relevant vond, bekijk dan het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld.
Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.