W tym artykule dowiesz się, jak publikować dane zdarzeń klastra Kubernetes w Amazon używając agenta logowania Fluentd. Dane będą następnie przeglądane przy użyciu , narzędzie do wizualizacji typu open source dla Elasticsearch. Amazon ES składa się ze zintegrowanej integracji Kibana.
Przeprowadzimy Cię przez następujący proces:
- Tworzenie klastra Kubernetes
- Tworzenie klastra Amazon ES
- Wdróż agenta logowania Fluentd w klastrze Kubernetes
- Zobacz datę Kubernetes w Kibanie
Krok 1: Tworzenie klastra Kubernetes
Kubernetes to platforma open source stworzona przez Google do zarządzania aplikacjami w kontenerach. umożliwia zarządzanie, skalowanie i wdrażanie aplikacji kontenerowych w środowisku klastrowym. Możemy organizować nasze kontenery na różnych hostach za pomocą Gubernatorzy , skaluj w locie aplikacje kontenerowe przy użyciu wszystkich zasobów i korzystaj ze scentralizowanego środowiska zarządzania kontenerami.
Zaczniemy od utworzenia klastra Kubernetes i pokażę Ci krok po kroku, jak zainstalować i skonfigurować Kubernetes w CentOS 7.
jeden. Skonfiguruj hosty
- vi / etc / hosts
- wprowadź zmiany zgodnie z danymi twojego hosta w pliku hosts
połączony program listy w c
2. Wyłącz SELinux, wykonując poniższe polecenia
- setenforce 0
- sed -i –follow-dowiązania symboliczne „s / SELINUX = egzekwowanie / SELINUX = wyłączone / g” / etc / sysconfig / selinux
3. Włącz moduł jądra br_netfilter
Do instalacji kubernetes wymagany jest moduł br_netfilter. Uruchom poniższe polecenie, aby włączyć moduł jądra br_netfilter.- modprobe br_netfilter
- echo „1”> / proc / sys / net / bridge / bridge-nf-call-iptables
Cztery. Wyłącz SWAP, uruchamiając poniższe polecenia.
- swapoff -a
- Następnie edytuj / etc / fstab i skomentuj linię wymiany
5. Zainstaluj najnowszą wersję Docker CE.Zainstaluj zależności pakietów dla docker-ce, uruchamiając poniższe polecenia.
- 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. Zainstaluj Kubernetes
Użyj następującego polecenia, aby dodać repozytorium kubernetes do systemu 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 EOFZainstaluj pakiety kubeadm, kubelet i kubectl, używając polecenia yum poniżej.
- systemctl start docker && systemctl włącz docker
Po zakończeniu instalacji zrestartuj wszystkie te serwery.Po ponownym uruchomieniu uruchom docker usług i kubelet
- systemctl start docker && systemctl włącz docker
- systemctl uruchom kubelet && systemctl włącz kubelet
- systemctl uruchom kubelet && systemctl włącz kubelet
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Sieć flanelowa została wdrożona w klastrze Kubernetes. Poczekaj chwilę, a następnie sprawdź węzeł kubernetes i pody za pomocą poniższych poleceń.- kubectl pobierz węzły
- kubectl pobiera pod-wszystkie-przestrzenie nazw
9. Dodawanie węzłów do klastraPołącz się z serwerem node01 i uruchom komendę kubeadm join
- dołączenie kubeadm 172.31.7.47:6443 - token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Połącz się z serwerem node02 i uruchom komendę kubeadm join
- dołączenie kubeadm 172.31.7.47:6443 - token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0
Poczekaj chwilę i sprawdź poprawność głównego serwera klastra „k8s-master”, sprawdź węzły i pody, używając następującego polecenia.
- kubectl pobierz węzły
Teraz otrzymasz pracownik1, a pracownik2 został dodany do klastra ze statusem „gotowy”.
- kubectl pobiera pod-wszystkie-przestrzenie nazw
Inicjalizacja i konfiguracja mastera klastra Kubernetes została zakończona.
Krok 2: Tworzenie klastra Amazon ES
Elasticsearch to mechanizm wyszukiwania i analizy typu open source, który służy do analizy dzienników i monitorowania aplikacji w czasie rzeczywistym. Amazon Elasticsearch Service (Amazon ES) to usługa AWS, która umożliwia wdrażanie, działanie i skalowanie Elasticsearch w chmurze AWS. Możesz użyć Amazon ES do analizy zdarzeń wysyłania e-maili z Twojego Amazon SES
Stworzymy klaster Amazon ES, a następnie wdrożymy agenta logowania Fluentd w klastrze Kubernetes, który będzie zbierał logi i wysyłał do klastra Amazon ES
W tej sekcji pokazano, jak używać konsoli Amazon ES do tworzenia klastra Amazon ES.
Aby utworzyć klaster Amazon ES
jednowymiarowa tablica w java
- Zaloguj się do konsoli zarządzania AWS i otwórz konsolę usługi Amazon Elasticsearch pod adresem https://console.aws.amazon.com/es/
- Wybierz Utwórz nową domenę i wybierz typ wdrożenia w konsoli Amazon ES.
- W obszarze Wersja pozostaw wartość domyślną pola Wersja Elasticsearch.
- Wybierz Dalej
- Wpisz nazwę swojej domeny wyszukiwania Elastic w skonfigurować klaster strona pod Skonfiguruj domenę.
- Na stronie Konfiguruj klaster wybierz następujące opcje w obszarze Wystąpienia danych
- Typ instancji - Wybierz t2.micro.elasticsearch (kwalifikujący się poziom bezpłatny).
- Liczba instancji - jeden
- PodDedykowane instancje główne
- Włącz dedykowanego mastera - Nie włączaj tej opcji.
- Włącz świadomość strefy - Nie włączaj tej opcji.
- W obszarze Konfiguracja pamięci wybierz następujące opcje.
- Typ składowania - Wybierz EBS. W ustawieniach EBS wybierz typ wolumenu EBS General Purpose (SSD) i rozmiar woluminu EBS& Thinspz 10.
- Pod szyfrowaniem - Nie włączaj tej opcji
- W konfiguracji migawki
- Automatyczna godzina rozpoczęcia migawki - Wybierz godzinę rozpoczęcia automatycznych migawek 00:00 UTC (domyślnie).
- Wybierz Dalej
- W sekcji Konfiguracja sieci wybierz Dostęp do VPC i wybierz szczegóły zgodnie z VPC pokazane poniżej.W obszarze uwierzytelniania Kibana: - Nie włączaj tej opcji.
- Aby ustawić zasady dostępu, wybierz Zezwalaj na otwarty dostęp do domeny.Uwaga: - W środowisku produkcyjnym należy ograniczyć dostęp do określonego adresu IP lub zakresów.
- Wybierz Dalej.
- Na stronie Recenzja przejrzyj swoje ustawienia, a następnie wybierz opcję Potwierdź i utwórz.
Uwaga: wdrożenie klastra zajmie do dziesięciu minut. Po kliknięciu utworzonej domeny wyszukiwania elastycznego zanotuj adres URL Kibana.
Krok 3: Wdróż agenta rejestrowania Fluentd w klastrze Kubernetes
Fluentd to narzędzie do zbierania danych typu open source, które pozwala ujednolicić gromadzenie i wykorzystanie danych w celu lepszego wykorzystania i zrozumienia danych. W takim przypadku wdrożymy logowanie Fluentd w klastrze Kubernetes, który będzie zbierał pliki dziennika i wysyłał je do Amazon Elastic Search.
Utworzymy ClusterRole, który zapewnia uprawnienia do podów i obiektów przestrzeni nazw do tworzenia, wyświetlania i obserwowania żądań do klastra.
Najpierw musimy skonfigurować uprawnienia RBAC (kontrola dostępu oparta na rolach), aby Fluentd miał dostęp do odpowiednich składników.
1. fluentd-rbac.yaml:
apiVersion: v1 kind: ServiceAccount metadata: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 rodzaj: ClusterRole metadata: name: fluentd namespace: kube-system rules: - apiGroups: - ' 'resources: - pods - namespaces verbs: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io tematy: - rodzaj: ServiceAccount name: fluentd namespace: kube-system
Utwórz: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Teraz możemy utworzyć zestaw DaemonSet.
2. fluentd-daemonset.yaml
apiVersion: rozszerzenia / v1beta1 rodzaj: DaemonSet metadane: nazwa: fluentd przestrzeń nazw: kube-system labels: k8s-app: fluentd-logging wersja: v1 kubernetes.io/cluster-service: „prawda” specyfikacja: szablon: metadane: etykiety: k8s -app: fluentd-logging wersja: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule container: - name: Fluentd image: fluent / fluentd-kubernetes-daemonset: v1.3-debian-flexiblesearch env: - name: FLUENT_ELASTICSEARCH_HOST wartość: 'flexiblesearch.logging' - name: FLUENT_ELASTICSEARCH_PORT wartość: '9200' - nazwa: FLUENT_ELASTICSEARCH_HOST nazwa: FLUENT_UID wartość: '0' zasoby: limity: pamięć: 200Mi żądania: procesor: 100m pamięć: 200Mi volumeMounts: - name: varlog mountPath: / var / log - name: varlibdockercontainers mountPath: / var / lib / docker / container readOnly : true termininationGracePeriodSeconds: 30 woluminów: - nazwa: varlog ścieżka hosta: ścieżka: / var / log - nazwa: varlibdockercontainers hostPath: ścieżka: / var / lib / docker / container
Upewnij się, że zdefiniowałeś FLUENT_ELASTICSEARCH_HOST i FLUENT_ELASTICSEARCH_PORT zgodnie z Twoim elastycznym środowiskiem wyszukiwania
co to jest metoda tostingu w java
Rozmieścić:
$ kubectl create -f kubernetes / fluentd-daemonset.yaml
Sprawdź poprawność dzienników
$ kubectl loguje fluentd-lwbt6 -n kube-system | grep Connection
Powinieneś zobaczyć, że Fluentd łączy się z Elasticsearch w dziennikach:
Krok 4: Wizualizuj dane kubernetes w Kibanie
- Połącz się z adresem URL pulpitu nawigacyjnego Kibana, aby pobrać z konsoli Amazon ES
- Aby zobaczyć dzienniki zebrane przez Fluentd w Kibanie, kliknij „Zarządzanie”, a następnie wybierz „Wzorce indeksowania” pod „Kibana”
- wybierz domyślny wzorzec indeksu (logstash- *)
- Kliknij Następny krok i ustaw „Nazwa pola filtru czasu” (@timestamp) i wybierz opcję Utwórz wzorzec indeksu
- Kliknij opcję Odkryj, aby wyświetlić dzienniki aplikacji
- Kliknij Wizualizuj i wybierz opcję Utwórz wizualizację i wybierz Ciasto. Wypełnij poniższe pola, jak pokazano poniżej.
- Wybierz indeks Logstash- * i kliknij podziel plasterki
- Agregacja - znaczące terminy
- Field = Kubernetes.pod_name.keyword
- Rozmiar - 10
7. I Zastosuj zmiany
Otóż to! W ten sposób możesz zwizualizować Kubernetes Pod utworzony w Kibanie.
Podsumowanie :
Monitorowanie za pomocą analizy dzienników jest krytycznym elementem każdego wdrożenia aplikacji. Możesz gromadzić i konsolidować dzienniki całego klastra w Kubernetes, aby monitorować cały klaster z jednego pulpitu nawigacyjnego. W naszym przykładzie widzieliśmy, jak płynnie działa jako mediator między klastrem kubernetes a Amazon ES. Fluentd łączy gromadzenie i agregację logów oraz wysyła logi do Amazon ES w celu analizy logów i wizualizacji danych za pomocą kibana.
Powyższy przykład pokazuje, jak dodać rejestrowanie wyszukiwania AWS Elastic i monitorowanie Kibana do klastra kubernetes przy użyciu Fluentd.
Jeśli uważasz, że ten blog Kubernetes jest odpowiedni, sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.