Аддон, отслеживающий состояние компонентов и приводящий их к ожидаемому состоянию.
Следит за такими компонентами как:
core/v1/ConfigMap
core/v1/Endpoints
core/v1/Namespace
core/v1/PersistentVolumeClaim
core/v1/PersistentVolume
core/v1/Pod
core/v1/ReplicationController
core/v1/Secret
core/v1/Service
batch/v1/Job
batch/v1/CronJob
apps/v1/DaemonSet
apps/v1/Deployment
apps/v1/ReplicaSet
apps/v1/StatefulSet
networking.k8s.io/v1/Ingress
Задачи, которые выполняет.
Проверяет объекты из списка выше раз в 60 секунд, на предмет их изменений;
Используется для приведения объектов за которыми следит к первоначальному состоянию.
Особенности.
Работает в бесконечном цикле;
Следит за объектами у которых установлен label: addonmanager.kubernetes.io/mode:
Устанавливается в директорию аддонов: /etc/kubernetes/addons
Ставится по-умолчанию в kube-system;
Написан на bash.
Начинает следить за объектом если добавить в label одну из двух меток:
В первом случае приводит к заданному шаблону настройки ресурсов.
А во втором случае просто проверяет наличие ресурсов.
Примеры использования.
labels:
addonmanager.kubernetes.io/mode: Reconcile
k8s-app: kube-dns
kubernetes.io/name: CoreDNS
---
labels:
addonmanager.kubernetes.io/mode: Reconcile
app.kubernetes.io/instance: metrics-server
app.kubernetes.io/name: metrics-server
app.kubernetes.io/version: 0.6.1
---
labels:
addonmanager.kubernetes.io/mode: Reconcile
---
labels:
addonmanager.kubernetes.io/mode: Reconcile
k8s-app: cilium
Данные примеры взяты из манифестов системных подов. Все они под защитой addonmanager.
Полезные ссылки.
GitHub addonmanager: https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/addon-manager