Что такое CRD в Kubernetes?
CRD (Custom Resource Definition) — это способ расширить Kubernetes своими типами ресурсов.
С помощью CRD можно добавить в кластер собственные объекты — такие же, как Pod, Service или Deployment, но под свои задачи.
Зачем это нужно?
CRD позволяет разработчикам описывать и управлять кастомными сущностями через стандартный Kubernetes API.
Например:
• KafkaCluster для управления кластерами Kafka
• Database для автоматического создания и бэкапа баз данных
• Alert или Dashboard для мониторинга
Как это работает:
1. Вы создаёте объект CustomResourceDefinition, который регистрирует новый тип ресурса.
2. После этого можно создавать экземпляры этого ресурса (Custom Resources).
3. Контроллер (обычно написанный на Go или Python с использованием client-go/operator SDK) следит за этими ресурсами и выполняет нужные действия.
Результат:
CRD — это фундамент для написания операторов Kubernetes, которые превращают рутинные DevOps-задачи в автоматические процессы.
CRD (Custom Resource Definition) — это способ расширить Kubernetes своими типами ресурсов.
С помощью CRD можно добавить в кластер собственные объекты — такие же, как Pod, Service или Deployment, но под свои задачи.
Зачем это нужно?
CRD позволяет разработчикам описывать и управлять кастомными сущностями через стандартный Kubernetes API.
Например:
• KafkaCluster для управления кластерами Kafka
• Database для автоматического создания и бэкапа баз данных
• Alert или Dashboard для мониторинга
Как это работает:
1. Вы создаёте объект CustomResourceDefinition, который регистрирует новый тип ресурса.
2. После этого можно создавать экземпляры этого ресурса (Custom Resources).
3. Контроллер (обычно написанный на Go или Python с использованием client-go/operator SDK) следит за этими ресурсами и выполняет нужные действия.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: databases.example.com
spec:
group: example.com
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
size:
type: string
scope: Namespaced
names:
plural: databases
singular: database
kind: Database
Теперь в кластере можно создать объект:
apiVersion: example.com/v1
kind: Database
metadata:
name: my-db
spec:
size: smallРезультат:
CRD — это фундамент для написания операторов Kubernetes, которые превращают рутинные DevOps-задачи в автоматические процессы.
Завтра не будет, вчера уже было.
https://youtu.be/hAFSaNXqffE?si=LKRf-xY-y8ykbgB6
https://youtu.be/hAFSaNXqffE?si=LKRf-xY-y8ykbgB6
YouTube
ПЕКАРЬ | ОТ ДАРВИНА ДО НЕЙРОСЕТЕЙ | ЗУМЕРЫ ПРОТИВ МИЛЛЕНИАЛОВ | ПОДКАСТ #58
Вот и 2-ой философский разгон с Пекой.
Давно не виделись и решили вас порадовать.
Будем переодически выговариваться, чтобы дать гостям больше эфирного времени, ну уж сильно соскучились мы друг по другу 😅❤️
Подняли более глубокие вопросы
Зачем нам религии…
Давно не виделись и решили вас порадовать.
Будем переодически выговариваться, чтобы дать гостям больше эфирного времени, ну уж сильно соскучились мы друг по другу 😅❤️
Подняли более глубокие вопросы
Зачем нам религии…
❤2
Типы Probes
Когда мы разворачиваем приложение в Kubernetes, важно, чтобы кластер понимал, жива ли программа и готова ли она принимать трафик.
Для этого Kubernetes использует probes — специальные проверки состояния контейнеров.
Существует три основных типа:
1. Liveness Probe
Проверяет, живет ли контейнер.
Если проверка не проходит — Kubernetes перезапускает контейнер.
Пример:
2. Readiness Probe
Проверяет, готов ли контейнер принимать запросы.
Если проба не проходит, контейнер исключается из балансировки, но не перезапускается.
Пример:
3. Startup Probe
Используется для долгозапускаемых приложений.
Она проверяет, что контейнер успешно стартовал, прежде чем Kubernetes начнет выполнять liveness и readiness проверки.
Пример:
Когда мы разворачиваем приложение в Kubernetes, важно, чтобы кластер понимал, жива ли программа и готова ли она принимать трафик.
Для этого Kubernetes использует probes — специальные проверки состояния контейнеров.
Существует три основных типа:
1. Liveness Probe
Проверяет, живет ли контейнер.
Если проверка не проходит — Kubernetes перезапускает контейнер.
Пример:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
periodSeconds: 102. Readiness Probe
Проверяет, готов ли контейнер принимать запросы.
Если проба не проходит, контейнер исключается из балансировки, но не перезапускается.
Пример:
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
periodSeconds: 103. Startup Probe
Используется для долгозапускаемых приложений.
Она проверяет, что контейнер успешно стартовал, прежде чем Kubernetes начнет выполнять liveness и readiness проверки.
Пример:
startupProbe:
httpGet:
path: /healthz
port: 8080
failureThreshold: 30
periodSeconds: 10🔥1
Вчера получилось сделать 1.5 помидора.
Сегодня 1 фиксировано помидор и набегами еще 1.
https://music.yandex.ru/track/26353207?utm_source=web&utm_medium=copy_link
Сегодня 1 фиксировано помидор и набегами еще 1.
https://music.yandex.ru/track/26353207?utm_source=web&utm_medium=copy_link
Yandex Music
Город, которого нет
Эфемерные контейнеры
https://telegra.ph/EHfimernye-kontejnery-v-Kubernetes-udobnyj-instrument-dlya-otladki-12-30
https://telegra.ph/EHfimernye-kontejnery-v-Kubernetes-udobnyj-instrument-dlya-otladki-12-30
👍2
Пару дней пробую бивалютный стейкинг, пока нравится результат. Главное не обжечься
Начал изучать и пробовать для себя новый инструмент Kustomize
https://telegra.ph/Kustomize-v-Kubernetes-upravlenie-manifestami-bez-shablonov-01-09
https://telegra.ph/Kustomize-v-Kubernetes-upravlenie-manifestami-bez-shablonov-01-09
Telegraph
Kustomize в Kubernetes: управление манифестами без шаблонов
Kustomize — встроенный в kubectl инструмент для декларативной кастомизации Kubernetes-манифестов. Он позволяет переиспользовать базовые YAML-файлы и накладывать изменения поверх них без Helm-шаблонов и переменных. Базовая идея Есть base — общие манифесты…
👍2