Жизненный цикл и status DataFlow
Объекты в кластере, реконсиляция и status для CRD DataFlow. Поля spec — в Справочник spec.
Ресурсы на один DataFlow
Для DataFlow с именем <name> в namespace:
| Ресурс | Имя | Назначение |
|---|---|---|
| ConfigMap | df-<name>-spec |
spec.json с подставленными секретами. |
| ConfigMap | df-<name>-checkpoint |
Позиция чтения (по умолчанию). Не создаётся при checkpointPersistence: false. |
| Deployment | df-<name> |
Под(ы) процессора. |
| ServiceAccount, Role, RoleBinding | df-<name>-processor |
RBAC для checkpoint. Не создаётся при checkpointPersistence: false. |
Контроллер выставляет owner reference, чтобы owned-ресурсы удалялись вместе с DataFlow.
Цикл реконсиляции
DataFlowReconciler:
- Получить DataFlow — при удалении очистить Deployment, ConfigMaps, RBAC; status
Stopped. - Подставить секреты через SecretResolver.
- Создать/обновить
df-<name>-spec. - При включённом checkpoint — ConfigMap checkpoint и RBAC.
- Создать/обновить Deployment
df-<name>. - Отразить статус Deployment в Phase/Message DataFlow.
- Записать status в ресурс.
flowchart TD
A[Get DataFlow] --> B{Deleted?}
B -->|Yes| C[Cleanup Deployment, ConfigMaps, RBAC]
C --> D[Update Status Stopped]
B -->|No| E[Resolve Secrets]
E --> F[Create or Update ConfigMap]
F --> F2{CheckpointPersistence?}
F2 -->|Yes| F3[Create Checkpoint ConfigMap and RBAC]
F2 -->|No| G
F3 --> G[Create or Update Deployment]
G --> H[Read Deployment Status]
H --> I[Update DataFlow Status]
Поля status
| Поле | Описание |
|---|---|
| Phase | Running, Pending, Error, Stopped и др. |
| Message | Дополнительная информация |
| LastProcessedTime | Время последнего сообщения |
| ProcessedCount | Обработано сообщений |
| ErrorCount | Ошибки |
kubectl get dataflow
kubectl describe dataflow <name>
См. Метрики и События Kubernetes.