Как да визуализираме събития от клъстер Kubernetes в реално време



Тази публикация в блога ще ви помогне да научите как да публикувате данните за клъстерните събития Kubernetes в Amazon Elastic Search, използвайки агент за регистриране на Fluentd.

В тази статия ще научите как да публикувате данни за клъстерни събития Kubernetes в Amazon с помощта на агент за регистриране на Fluentd. След това данните ще бъдат преглеждани с помощта на , инструмент за визуализация с отворен код за Elasticsearch. Amazon ES се състои от интегрирана интеграция на Kibana.

Ще ви преведем със следния процес:





Стъпка 1: Създаване на клъстер Kubernetes

Kubernetes е платформа с отворен код, създадена от Google за управление на контейнеризирани приложения. тя ви позволява да управлявате, мащабирате и разгръщате вашите контейнерирани приложения в клъстеризирана среда. Можем да организираме нашите контейнери в различни хостове с Управители , мащабирайте контейнеризираните приложения с всички ресурси в движение и разполагайте с централизирана среда за управление на контейнери.

Ще започнем със създаването на клъстер Kubernetes и ще ви демонстрирам стъпка по стъпка как да инсталирате и конфигурирате Kubernetes на CentOS 7.



един. Конфигуриране на хостове

    • vi / etc / hosts
    • правете промени според данните на вашия хост във файла с хостове

IMG1 - Elasticsearch - Edureka

php.mysql_fetch_array

2. Деактивирайте SELinux, като изпълните командите по-долу



    • setenforce 0
    • sed -i –follow-symlinks ‘s / SELINUX = налагане / SELINUX = забранено / g’ / etc / sysconfig / selinux

3. Активирайте модула на ядрото br_netfilter

Модулът br_netfilter е необходим за инсталиране на kubernetes. Изпълнете командата по-долу, за да активирате модула на ядрото br_netfilter.
    • modprobe br_netfilter
    • echo ‘1’> / proc / sys / net / bridge / bridge-nf-call-iptables

Четири. Деактивирайте SWAP, като изпълните команди по-долу.

    • замяна -a
    • След това редактирайте / etc / fstab и коментирайте суап реда

5. Инсталирайте най-новата версия на Docker CE.Инсталирайте зависимостите на пакета за docker-ce, като изпълните командите по-долу.

    • yum install -y yum-utils device-mapper-persistent-data lvm2
Добавете хранилището на docker в системата и инсталирайте docker-ce, като използвате командата yum.

6. Инсталирайте Kubernetes

Използвайте следната команда, за да добавите хранилището на kubernetes към системата centos 7.
    • yum инсталирате -y kubelet bebeadm kubectl

[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 активирано = 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 EOF
Инсталирайте пакети kubeadm, kubelet и kubectl, като използвате командата yum по-долу.
  • systemctl старт докер && systemctl разреши докер

След като инсталацията приключи, рестартирайте всички тези сървъри.След рестартиране стартирайте докера за услуги и kubelet

  • systemctl старт докер && systemctl разреши докер
  • systemctl start kubelet && systemctl активира kubelet
7. Инициализация на клъстер Kubernetes Влезте в главния сървър и изпълнете командата по-долу
  • systemctl start kubelet && systemctl активира kubelet
След като Kubernetes инициализацията приключи, ще получите резултатите.Копирайте командите от получените резултати и го изпълнете, за да започнете да използвате клъстера. Запишете командата kubeadm join от резултатите. Командата ще се използва за регистриране на нови възли в клъстера kubernetes. 8. Разгърнете фланелната мрежа в клъстера kubernetes kubectl прилага -f

https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Фланеловата мрежа е внедрена в клъстера Kubernetes. Изчакайте известно време и след това проверете kubernetes възел и шушулки, като използвате командите по-долу.
    • kubectl вземете възли
    • kubectl получава pods –all-namespaces
И ще получите, че възелът 'k8s-master' работи като 'master' клъстер със статус 'готов' и ще получите всички подси, необходими за клъстера, включително 'kube-flannel-ds' за мрежова под конфигурация.

9. Добавяне на възли към клъстераСвържете се със сървъра node01 и изпълнете командата kubeadm join

    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0

Свържете се със сървъра node02 и изпълнете командата kubeadm join

    • kubeadm join 172.31.7.47:6443 –token at03m9.iinkh5ps9q12sh2i –discovery-token-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4a0

Изчакайте известно време и потвърдете главния клъстер сървър ‘k8s-master’, проверете възлите и шушулките, като използвате следната команда.

      • kubectl вземете възли

Сега ще получите worker1 и worker2 е добавен към клъстера със статус „готов“.

      • kubectl получава pods –all-namespaces

Инициализацията и конфигурирането на главния клъстер на Kubernetes е завършена.

Стъпка 2: Създаване на Amazon ES клъстер

Elasticsearch е двигател за търсене и анализ с отворен код, който се използва за анализ на журнали и мониторинг в реално време на приложения. Услугата Amazon Elasticsearch (Amazon ES) е услуга AWS, която позволява разполагането, експлоатацията и мащаба на Elasticsearch в облака AWS. Можете да използвате Amazon ES за анализ на събития за изпращане на имейли от вашия Amazon SES

Ще създадем Amazon ES клъстер и след това ще разположим агент за регистриране на Fluentd в клъстер Kubernetes, който ще събира регистрационни файлове и ще изпраща в Amazon ES клъстер

Този раздел показва как да използвате конзолата на Amazon ES за създаване на клъстер на Amazon ES.

За да създадете Amazon ES клъстер

отдалечено извикване на метод в java
    1. Влезте в конзолата за управление на AWS и отворете конзолата на Amazon Elasticsearch Service на https://console.aws.amazon.com/es/
    2. Изберете Създайте нов домейн и изберете тип на внедряване в конзолата на Amazon ES.
    3. Под Версия оставете стойността по подразбиране на полето за версия на Elasticsearch.
    4. Изберете Напред
    5. Въведете име за вашия домейн за еластично търсене в конфигуриране на клъстера страница под Конфигуриране на домейн.
    6. На страницата Конфигуриране на клъстера изберете следните опции под Екземпляри за данни
      • Тип екземпляр - Изберете t2.micro.elasticsearch (отговаря на условията за безплатно ниво).
      • Брой инстанции - един
    7. ПодСпециализирани главни екземпляри
      • Активиране на специален мастер - Не активирайте тази опция.
      • Активирайте информираността на зоната - Не активирайте тази опция.
    8. Под Конфигурация на хранилището изберете следните опции.
      • Тип съхранение - Изберете EBS. За настройките на EBS изберете тип обем на EBS от общо предназначение (SSD) и размер на обема на EBS& thinspот 10.
    9. Под криптиране - Не активирайте тази опция
    10. Под конфигурация на моментна снимка
      • Автоматизиран начален час за моментна снимка - Изберете Автоматизирани моментни снимки начален час 00:00 UTC (по подразбиране).
    11. Изберете Напред
    12. Под Конфигурация на мрежата изберете VPC Access и изберете подробности според вашия VPC е показано по-долу.Под удостоверяване Kibana: - Не активирайте тази опция.
    13. За да зададете политиката за достъп, изберете Разрешаване на отворен достъп до домейна.Забележка: - В производството трябва да ограничите достъпа до конкретен IPадрес или диапазони.
    14. Изберете Напред.
    15. На страницата Преглед прегледайте настройките си и след това изберете Потвърждаване и Създаване.

Забележка: Разглобяването на клъстера ще отнеме до десет минути. Обърнете внимание на URL адреса си в Kibana, след като щракнете върху създадения еластичен домейн за търсене.

Стъпка 3: Разположете агент за регистриране на Fluentd в клъстера Kubernetes

Fluentd е събирач на данни с отворен код, който ви позволява да унифицирате събирането и потреблението на данни за по-добро използване и разбиране на данните. В този случай ще разположим регистрирането на Fluentd в клъстера Kubernetes, което ще събере регистрационните файлове и ще ги изпрати до Amazon Elastic Search.

Ще създадем ClusterRole, който предоставя разрешения на подсистеми и обекти на пространството от имена, за да се направи заявка за get, list и watch за клъстер.

Първо, трябва да конфигурираме разрешенията за RBAC (базиран на роли контрол на достъпа), така че Fluentd да има достъп до подходящите компоненти.

1. fluentd-rbac.yaml:

apiVersion: v1 вид: ServiceAccount метаданни: name: fluentd пространство от имена: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd space names: kube-system rules: - apiGroups: - ' ресурси: - шушулки - пространства от имена глаголи: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 метаданни: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization .k8s.io теми: - вид: ServiceAccount име: плавно пространство от имена: kube-система

Създаване: $ kubectl create -f kubernetes / fluentd-rbac.yaml
Сега можем да създадем DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: extensions / v1beta1 kind: DaemonSet metadata: name: fluentd space names: kube-system labels: k8s-app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: template: metadata: labels: k8s -app: fluentd-logging version: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule контейнери: - 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 'http: име: FLUENT_UID стойност: '0' ресурси: лимити: памет: 200Mi заявки: cpu: 100m памет: 200Mi томМонтажи: - име: varlog mountPath: / var / log - име: varlibdockercontainers mountPath: / var / lib / docker / контейнери readOnly : истинско прекратяване GracePeriodSeconds: 30 тома: - име: varlog hostPath: път: / var / log - име: varlibdockercontainers hostPath: път: / var / lib / docker / контейнери

Уверете се, че сте дефинирали FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT според вашата еластична среда за търсене

анзибъл срещу куклен срещу готвач

Разполагане:

$ kubectl create -f kubernetes / fluentd-daemonset.yaml

Проверете регистрационните файлове

$ kubectl регистрира fluentd-lwbt6 -n kube-system | grep връзка

Трябва да видите, че Fluentd се свързва с Elasticsearch в дневниците:

Стъпка 4: Визуализирайте данните за kubernetes в Kibana

  1. Свържете се с URL адреса на таблото за управление на kibana, за да получите от конзолата на Amazon ES
  2. За да видите регистрационните файлове, събрани от Fluentd в Кибана, щракнете върху „Управление“ и след това изберете „Модели на индекса“ под „Кибана“
  3. изберете модела на индекса по подразбиране (logstash- *)
  4. Щракнете върху Следваща стъпка и задайте „Име на полето за филтър за време“ (@timestamp) и изберете Създаване на модел на индекс
  5. Щракнете върху Открий, за да видите дневниците на приложението си
  6. Щракнете върху Visualize и изберете създаване на визуализация и изберете Pie. Попълнете следните полета, както е показано по-долу.
    • Изберете индекс Logstash- * и щракнете върху разделени филийки
    • Агрегиране - важни термини
    • Поле = Kubernetes.pod_name.keyword
    • Размер - 10

7. И прилагайте промени

Това е! Ето как можете да визуализирате Kubernetes Pod, създаден в Кибана.

Обобщение :

Мониторингът чрез анализ на регистрационния файл е критичен компонент на всяко внедряване на приложение. Можете да събирате и консолидирате регистрационни файлове през вашия клъстер в Kubernetes, за да наблюдавате целия клъстер от едно единствено табло. В нашия пример видяхме, че fluentd действа като посредник между клъстера kubernetes и Amazon ES. Fluentd комбинира събиране и обобщаване на регистрационни файлове и изпраща регистрационни файлове на Amazon ES за анализ на журнали и визуализация на данни с kibana.

Горният пример показва как да добавите AWS Elastic регистрация на търсене и мониторинг на kibana към клъстера kubernetes с помощта на fluentd.

Ако намерите този блог Kubernetes за подходящ, разгледайте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.

Имате въпрос към нас? Моля, споменете го в раздела за коментари и ние ще се свържем с вас.