Показаны сообщения с ярлыком kubernetes. Показать все сообщения
Показаны сообщения с ярлыком kubernetes. Показать все сообщения

четверг, 5 июня 2025 г.

Kubernetes: что такое операторы, зачем они нужны и почему без них не обойтись?

 

Kubernetes: что такое операторы, зачем они нужны и почему без них не обойтись?

В Kubernetes оператор (Operator) — это метод расширения функциональности кластера для управления сложными stateful-приложениями (такими как базы данных, очереди сообщений и другие системы с состоянием).

Операторы автоматизируют задачи, которые обычно выполняет администратор, используя пользовательские контроллеры (Custom Controllers) и пользовательские ресурсы (Custom Resource Definitions, CRD).

суббота, 6 января 2024 г.

Lens умер, привет openlens?

 Суть: ранее для запуска программы нужен был Lens ID, но его можно было получить через гитхаб или gmail. Теперь не пускает с этими привязками.

И если под 5 версию был обход

127.0.0.1       app.k8slens.dev

то 6 можно только закопать.

Аналоги?
Например k9s
https://github.com/derailed/k9s/releases
https://github.com/derailed/k9s/releases/download/v0.30.6/k9s_linux_amd64.deb
ставим пакет, запускаем (k9s), видим поды в дефолт пространстве, нажимаем 0 - покажет все поды. Далее смотреть подсказку сверху или читать инструкции на сайте.

Далее.
Есть kube-web-view с обзором (там же можно посмотреть ещё с десяток вариантов, учитывая что статье 5 лет уже). Более свежая подборка (4 года)

Очень популярный веб интерфейс.

openshift-console: говорят, работает не только с шифтом, но и с обычным кубером. Не проверялось.

А также есть приколы типа https://kubenav.io/ под мобилки..

Но. Есть "форк", openlens (линк странный, проверить, и гуглить openlens)

суббота, 29 июля 2023 г.

Дешёвый кубер кластер на "поиграться" от таймвеба

 Можно у таймвеба взять такой тариф

K8S Promo

488 ₽/мес

1 гиг рамы, но 30 гиг на диске

А дальше нюансы

Если для других тарифов есть ингресс и внешний адрес

Посмотреть IP-адрес можно командой kubectl get svc -n ingress-nginx. Адрес будет указан в столбце EXTERNAL-IP

Но! На данном промо тарифе ничего нет, поэтому ответ саппорта:

Для получения внешнего IP адреса, пожалуйста, воспользуйтесь NodePort.


kubectl несколько контекстов (кластеров)

 Часто провайдер даёт скачать конфиг, который кладётся в ~/.kube/config. А что если таких конфигов нужно больше одного? Самый простой вариант - взять программы типа lens и подключить их независимо. А можно подшаманить - и собрать их в общем конфиге. Что для этого надо?

среда, 6 апреля 2022 г.

gcore и их некоторые сервисы

На данный момент они же edgecenter.ru

В разрезе автоматизации, то есть через terraform

kubernetes

https://support.edgecenter.ru/knowledge_base/category/57207

Дальше работать можно через веб, можно через cli (kubectl), информация есть выше. А можно через (дискредетировавший себя) терраформ

https://registry.terraform.io/providers/G-Core/gcorelabs/latest/docs

https://github.com/G-Core/terraform-provider-gcorelabs/tree/master/examples

s3

Подключиться к S3 хранилищу с помощью aws cli и S3cmd

урлы и регионы

https://gcorelabs.com/support/articles/360002112138/

ацл и далее

https://gcorelabs.com/support/sections/360000563618/

воскресенье, 31 октября 2021 г.

oracle cloud + kubernetes

https://dragonflybsd.blogspot.com/2021/09/always-free-oracle-cloud.html


 Есть у оракла облако, и весьма интересно оно тем, что там можно получить 2 машинки по 1 гигу рам + 1 ядро, а также есть arm-based машины, зовётся Ampere, и там уже суммарно дают 4 ядра и 24 гига рам, то есть можно сделать хоть 1-1 (4 шт, дальше упрёмся в нехватку ядер), хоть 2-12+2-12, хоть 1 машину на все доступные ресурсы. Итого можно сделать от 1 до 4 виртуалок на арме + 2 на x86. Правда, есть нюансы с наличием, мне только через 2 недели повезло поймать завоз нового железа.

Итак, штатно идёт oracle linux, который по сути есть центос, поэтому можно взять инструкцию под кубер для центоси, но есть нюансы -- архитектура там всё-таки другая...

$ uname -i
aarch64

Так что, если есть желание разобраться, сначала читаем "что такое кубер"

И офсайт, в том числе по установке

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

Впрочем, есть автоустановка через kubespray

https://kubernetes.io/docs/setup/production-environment/tools/kubespray/

потом про кубер на арме, например на raspberry pi

https://habr.com/ru/company/flant/blog/435526/

https://habr.com/ru/company/skillfactory/blog/553212/

Читать интересно в том числе потому, что там есть и про диагностику, и более глубокое понимание системы.

Ну и обязательно для себя выбрать - k8s, MicroK8s, k3s, minicube


https://docs.oracle.com/en/operating-systems/oracle-linux/kubernetes/

вторник, 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.


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

пятница, 23 апреля 2021 г.

Выбор платформы для Kubernetes

 Если хочется поставить k8s, есть несколько путей, которые будут чуть ниже. При этом готовые продукты это не просто "красивый инсталлер", это ещё и дополнительное ПО - веб из коробки, мониторинг из коробки, RBAC, автомасштабирование, сбор логов -- это "базовый набор". При этом часто автоматом настраивается CI/CD, хранилища.

Rancher

По сути это веб-интерфейс с некоторыми плюшками типа мониторинга, автомасштабирования из коробки.

Сам rancher - изначально делался для расширения возможностей докера, чем потом стал заниматься docker swarm. rancher был "надстройкой" с выбором основы: Cattle, Docker Swarm, Apache Mesos (upstream project for DCOS) or Kubernetes, но похоже что в 2.х оставили только kubernetes.
Ветку советую глянуть.
Если я правильно понял доку, rancher даёт возможность собрать кластер, где часть нод - условный aws eks, часть - gcp, а часть вообще свои сервера.

На обычный хост ставится несложно, но требует установленный докер
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher

В облака ставится через terraform


kubeflow

В некотором смысле аналог ранчера, но больше с заточкой под ML.
Пара статей для более быстрого введения

OpenShift

Платный продукт от RedHat. Если хочется серьёзное решение, с серьёзной платной поддержкой - это сюда. То, что называется Enterprise Kubernetes. С нужными сертификатами и прочим. Дорого.

Kubernetes by Canonical

Да, есть и такое.

Облачные решения

Имеются в виду такие вещи как aws eks, mail.ru kubernetes (главная страница), yandex kubernetes и так далее, продуктов сотни. Развёртывание - на уровне "создать кластер скриптами", проблемы под капотом обычно неизвестны, но предсказать из невозможно, обезопаситься - сложно. Если нет кучи кубер спецов -- не самый дешёвый, но хороший вариант, снимающий много головной боли и убирающий потребность в сильной DevOps команде.

Руками

Имеется в виду kubeadm, kubespray и подобное. Надо понимать, что будет поставлена только "база", хранилища (ceph, glusterfs), обрабтку логов (ELK и аналоги), мониторинг (prometheus+grafana) надо ставить и сопровождать отдельно.

Готовые сравнения продуктов


Место для тренировок

Есть 4 часа, можно поднять несколько серверов и собрать в кластер.

Итого

Мало взять rancher или openshift. Кластер может просто сломаться, может не пройти миграция на новую версию и всё что угодно. Поэтому если цель - быстро развернуть демо-стенд или поднять дома тестовый кластер, то такие вещи как rancher удобны и адекватны. Но если планируется зарабатывать так деньги -- нужно или купить платную поддержку, или хорошо знать устройство того что стоит, уметь это мониторить, диагностировать и отлаживать. И для готовых образов вопросы мониторинга важнее чем установленной системы руками. Потому что всё когда-то ломается, нужно уметь видеть узкие места и прогнозировать - что, когда и где может пойти не так, как уменьшить шанс отказов и как чинить если отказ был. И по мере установки руками многие моменты становятся понятны, и если там что-то начало сбоить - понятно какие там компоненты применялись и примерно что могло сломаться.

И отдельный вопрос - как хранить данные.

Напоследок - всегда помнить про бэкапы. Лучше несколько дней быть недоступным, но в итоге опять развернуться, чем не развернуться больше никогда (тут привет тем, кто был в датацентре OVZ). Ну и иметь просто возможность отката при любых авариях/косяках.

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

werf

 Есть такая надстройка над helm - werf

Утилита не сложная, по набору документации быстро изучается (русский язык там есть, и проработан неплохо).

Но очень важный момент - на данный момент stable - версия 1.1, а дока пишется под пока ещё beta 1.2. И есть существенные отличия в синтаксисе, поэтому на 1.1 по доке 1.2 будут нюансы. Есть и по 1.1 (сверху переключатель), но там нет руководств по быстрой настройке таких вещей как nodejs (2), ruby, django...

А так, есть куча видео на ютубе и куча статей на хабре, зачем нужна эта утилита.

пятница, 12 февраля 2021 г.

k3s

По сути, установка k3s сводится к запуску команды

curl -sfL https://get.k3s.io | sh -s

После этого всё поставится, поднимутся мастер и воркер.

вторник, 29 сентября 2020 г.

Mongo+Kubernetes шаблоны

https://stackoverflow.com/questions/60924254/mongodb-replicaset-is-broken-in-kubernetes

https://dba.stackexchange.com/questions/236758/mongodb-replicaset-instance-re-join-after-kubernetes-pod-restart

Хотя там и идёт как "вопросы с ошибками", их можно взять за основу.

Но остаётся ещё вопрос. Что в случае кубера, что cfn - у нас после деплоя на выходе есть N обезличенных серверов и нет механизмов, что есть mongo1 а что есть mongoN и что автоматически сборку надо запустить ровно на одной из машин, причём все ноды уже должны быть установлены (резолвиться в днс как минимум). И если запуск сборки ещё можно решить на внешних скриптах, то с именами - всё печально.

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

среда, 18 сентября 2019 г.

Amazon+Docker

В AWS есть аж 3 сервиса для поднятия докера:
1) ECR+ECS
2) EKS

1) ECR+ECS
ECR это аналог Docker Registry, ничего особо сложного
ECS - более интересен, это и есть по сути докер. И тут есть нюанс: запускать докеры можно в 2 режимах, на базе созданных виртуалок и на базе serverless технологии FarGate. То есть сервера там разумеется тоже есть, но ими занимается сам амазон.

2) EKS - это примерно kubernetes, для тех кому мало просто пускать машины, но хочется автоматизации обработки сбоев, обновлений и откатов.

Что почитать