В тази статия ще научите как да публикувате данни за клъстерни събития Kubernetes в Amazon с помощта на агент за регистриране на Fluentd. След това данните ще бъдат преглеждани с помощта на , инструмент за визуализация с отворен код за Elasticsearch. Amazon ES се състои от интегрирана интеграция на Kibana.
Ще ви преведем със следния процес:
- Създаване на клъстер Kubernetes
- Създаване на Amazon ES клъстер
- Разположете агент за регистриране на Fluentd в клъстера Kubernetes
- Визуализирайте датата на кубернетите в Кибана
Стъпка 1: Създаване на клъстер Kubernetes
Kubernetes е платформа с отворен код, създадена от Google за управление на контейнеризирани приложения. тя ви позволява да управлявате, мащабирате и разгръщате вашите контейнерирани приложения в клъстеризирана среда. Можем да организираме нашите контейнери в различни хостове с Управители , мащабирайте контейнеризираните приложения с всички ресурси в движение и разполагайте с централизирана среда за управление на контейнери.
Ще започнем със създаването на клъстер Kubernetes и ще ви демонстрирам стъпка по стъпка как да инсталирате и конфигурирате Kubernetes на CentOS 7.
един. Конфигуриране на хостове
- vi / etc / hosts
- правете промени според данните на вашия хост във файла с хостове
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
- yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
- yum install -y docker-ce
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
- systemctl start kubelet && systemctl активира kubelet
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Фланеловата мрежа е внедрена в клъстера Kubernetes. Изчакайте известно време и след това проверете kubernetes възел и шушулки, като използвате командите по-долу.- kubectl вземете възли
- kubectl получава pods –all-namespaces
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
- Влезте в конзолата за управление на AWS и отворете конзолата на Amazon Elasticsearch Service на https://console.aws.amazon.com/es/
- Изберете Създайте нов домейн и изберете тип на внедряване в конзолата на Amazon ES.
- Под Версия оставете стойността по подразбиране на полето за версия на Elasticsearch.
- Изберете Напред
- Въведете име за вашия домейн за еластично търсене в конфигуриране на клъстера страница под Конфигуриране на домейн.
- На страницата Конфигуриране на клъстера изберете следните опции под Екземпляри за данни
- Тип екземпляр - Изберете t2.micro.elasticsearch (отговаря на условията за безплатно ниво).
- Брой инстанции - един
- ПодСпециализирани главни екземпляри
- Активиране на специален мастер - Не активирайте тази опция.
- Активирайте информираността на зоната - Не активирайте тази опция.
- Под Конфигурация на хранилището изберете следните опции.
- Тип съхранение - Изберете EBS. За настройките на EBS изберете тип обем на EBS от общо предназначение (SSD) и размер на обема на EBS& thinspот 10.
- Под криптиране - Не активирайте тази опция
- Под конфигурация на моментна снимка
- Автоматизиран начален час за моментна снимка - Изберете Автоматизирани моментни снимки начален час 00:00 UTC (по подразбиране).
- Изберете Напред
- Под Конфигурация на мрежата изберете VPC Access и изберете подробности според вашия VPC е показано по-долу.Под удостоверяване Kibana: - Не активирайте тази опция.
- За да зададете политиката за достъп, изберете Разрешаване на отворен достъп до домейна.Забележка: - В производството трябва да ограничите достъпа до конкретен IPадрес или диапазони.
- Изберете Напред.
- На страницата Преглед прегледайте настройките си и след това изберете Потвърждаване и Създаване.
Забележка: Разглобяването на клъстера ще отнеме до десет минути. Обърнете внимание на 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
- Свържете се с URL адреса на таблото за управление на kibana, за да получите от конзолата на Amazon ES
- За да видите регистрационните файлове, събрани от Fluentd в Кибана, щракнете върху „Управление“ и след това изберете „Модели на индекса“ под „Кибана“
- изберете модела на индекса по подразбиране (logstash- *)
- Щракнете върху Следваща стъпка и задайте „Име на полето за филтър за време“ (@timestamp) и изберете Създаване на модел на индекс
- Щракнете върху Открий, за да видите дневниците на приложението си
- Щракнете върху 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 доволни учащи, разпространени по целия свят.
Имате въпрос към нас? Моля, споменете го в раздела за коментари и ние ще се свържем с вас.