среда, 26 мая 2021 г.

Инвентаризация хостов и сетей

 Когда много хостов и/или сетей, нужно вести их учёт. Это называется IPAM - IP address management.

Типичные представители

- phpIPAM

- netbox (и его форк nautobot)

- RackTables

- SolarWinds IP Address Manager

- Opendcim

По моему мнению, лучше смотреть на netbox.

четверг, 20 мая 2021 г.

LogStash vs filebeat

 https://logz.io/blog/filebeat-vs-logstash/

Если очень вкратце, они друг друга не заменяют, а дополняют. logstash написан на жаве и весьма тяжёл, при этом filebeat (является частью Beats, подробнее тоже в линке выше) написан на go и потому лёгкий, но не умеет в серьёзную обработку. Поэтому для прода лучше вынести logstash вообще на отдельную машину, и закидывать туда данные через filebeat.

И по настройке - смотрим статью.

Есть и офдока

https://www.elastic.co/guide/en/beats/filebeat/7.0/filebeat-getting-started.html

Но. Иногда можно и отказаться от logstash совсем, используя ingress pipeline и перенеся обработку тех же access_log сразу в elasticsearch.


Итого.

filebeat - сбор и доставка логов (плюс предобработка через фильтры)

logstash - парсит логи в документы

Elasticsearch - хранит и индексирует документы

Kibana - поиск, аггрегирование, показ нужных данных.

вторник, 18 мая 2021 г.

Мониторинг для Kubernetes

 Если мы взяли не готовый продукт, а чистый кубер, там нет многого нужного. Сейчас рассмотрим мониторинг. Статья содержит много ссылок, потому что информации много, читать лучше в первоисточнике, и понимать все варианты. При этом не стоит читать только статьи вида "9 утилит" - нужно понимать, КАК оно будет работать, раскатываться, собирать, куда заливать... Что такое heapster, DaemonSet, operator и так далее.

Установка Kubernetes через kubeadm

 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

Установку kubectl kubeadm kubelet пропускаем, это по доке делается на раз.

Перед настройкой нужно доставить некоторые пакеты

# Pull images (apiserver, controller-manager, scheduler, proxy, etcd, coredns)

kubeadm config images pill

И теперь совсем базовая инициализация выглядит так

sudo kubeadm init --pod-network-cidr 10.244.0.0/16

В итоге, нам
1) создаст /etc/kubernetes/admin.conf
2) выдаст строку для подключения других нод к нашему мастеру, начинаться будет с kubeadm join
3) поставит и запустит нужные сервисы

И теперь мы можем работать под своим юзером с кластером (команды пускаем от юзера!)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Если что-то запороли -- ничего страшного!
sudo kubeadm reset

Но.. у нас не работает сеть. Потому что теперь нужно поставить сеть :) Гуглим calico, flannel или в общем случае - CNI. Тоже обязательно понять, что там происходит и как оно работает.

Линки

понедельник, 17 мая 2021 г.

Что такое kubernetes operator

Операторы для Kubernetes: как запускать stateful-приложения


И пример оператора

shell-operator v1.0.0: долгожданный релиз нашего проекта для Kubernetes-операторов

Другой пример - framawork для создания своих операторов

https://github.com/nolar/kopf

Kopf —Kubernetes Operator Pythonic Framework— is a framework and a library to make Kubernetes operators development easier, just in a few lines of Python code.


Правда, чаше операторы используют для БД или мониторинга.