Информационный портал по безопасности » Программирование » Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

 

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Автор: admin от 18-10-2018, 20:50, посмотрело: 678

Как поднять High-Availability Kubernetes кластер и не взорвать мозг?

Использовать Kubespray, конечно же.

Kubespray — это набор Ansible ролей для установки и конфигурации системы оркестрации контейнерами Kubernetes.

Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров.

Осторожно, под катом 4 скриншота elasticsearch и 9 скриншотов prometheus!

https://github.com/kubernetes-incubator/kubespray

ansible-playbook -u 'пользователь, который имеет sudo на нодах' -i inventory/sample/hosts.ini cluster.yml -b



Проверяем наличие StorageClass



kubectl get storageclass
NAME            PROVISIONER                    AGE
local-storage   kubernetes.io/no-provisioner   18m


Проверяем PV



kubectl get pv
local-pv-26b51a64  49Gi  RWO  Delete  Available  local-storage  11m
local-pv-5bec36e4  19Gi  RWO  Delete  Available  local-storage  14m
local-pv-81c889eb  49Gi  RWO  Delete  Available  local-storage  13m
local-pv-aa880f42  19Gi  RWO  Delete  Available  local-storage  10m
local-pv-b6ffa66b  19Gi  RWO  Delete  Available  local-storage  11m
local-pv-d465b035  49Gi  RWO  Delete  Available  local-storage  10m


Инициилизируем Helm



helm init --service-account tiller


Запускаем установку elasticsearch



helm install stable/elasticsearch --namespace logging --name elasticsearch --set data.persistence.storageClass=local-storage,master.persistence.storageClass=local-storage


Подождите 5 минут пока установиться elasticsearch



Находим сервис, которому будет подключаться kibana и fluentd. В своем названии обычно имеет elasticsearch-client



kubectl get services --namespace logging | grep elasticsearch
elasticsearch-client      ClusterIP   10.233.60.173   <none>        9200/TCP   19s
elasticsearch-discovery   ClusterIP   None            <none>        9300/TCP   19s


Название elasticsearch-client указываем при установке fluentd-elasticsearch



helm install stable/fluentd-elasticsearch --namespace logging --set elasticsearch.host=elasticsearch-client


Название elasticsearch-client указываем при установке kibana



helm install --namespace logging --set ingress.enabled=true,ingress.hosts[0]=kibana.mydomain.io --set env.ELASTICSEARCH_URL=http://elasticsearch-client:9200 stable/kibana


Смотрим что все поды имеют статус running



kubectl get pod --namespace=logging


Если есть ошибка — смотрим логи.



kubectl logs имя-пода  --namespace logging


Добавляем в DNS или в файл /etc/hosts



IP-первой-ноды kibana.mydomain.io
IP-второй-ноды kibana.mydomain.io
IP-третьей-ноды kibana.mydomain.io


Примечание: если вы хотите отправлять логи на внешний Elasticsearch, то следует запускает установку с elasticsearch.host=dns-имя-вашего-внешнего-elasticsearch



Переходим по адресу kibana.mydomain.io

Нажимаем Index Pattern

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)
Вводим название index, чтобы он совпадал с index ниже

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)
выбираем @ timestamp

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)
И вот ELK работает

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Запускаем установку kube-prometheus



Скачиваем prometheus-operator



git clone https://github.com/coreos/prometheus-operator.git


Переходим в папку kube-prometheus



cd prometheus-operator/contrib/kube-prometheus


Запускаем установку согласно инструкции на сайте



kubectl create -f manifests/ || true
until kubectl get customresourcedefinitions servicemonitors.monitoring.coreos.com ; do date; sleep 1; echo ""; done
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/ 2>/dev/null || true


Создаем файл ingress-grafana-prometheus.yml



apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
  namespace: monitoring
spec:
  rules:
  - host: grafana.mydomain.io
    http:
      paths:
      - backend:
          serviceName: grafana
          servicePort: 3000


Создаем ingress ресурс



kubectl create -f ingress-grafana-prometheus.yml


добавляем в DNS или в файл /etc/hosts



IP-первой-ноды grafana.mydomain.io
IP-второй-ноды grafana.mydomain.io
IP-третьей-ноды grafana.mydomain.io


Переходим по адресу grafana.mydomain.io. Вводим стандартные логин/пароль: admin/admin

Скриншоты prometheus:

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

Установка kubernetes через kubespray (local-storage, установка ELK, prometheus)

PS. Обо всех ошибках лучше сразу писать в приват.



Источник: Хабр / Интересные публикации

Категория: Программирование

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent