1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/knative-docs

Клонировать/Скачать
configuring-eventing-cr.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 27.05.2025 06:04 d330922
title weight type aliases
Настройка ресурса оператора событий
60
docs
/docs/operator/configuring-eventing-cr/

Оператор Knative Eventing может быть настроен с помощью этих параметров:

Примечание: Политики уровня спецификации Kubernetes не могут быть настроены с помощью операторов Knative.

Настройка версии

Администраторы кластера могут установить конкретную версию Knative Eventing с помощью поля spec.version. Например, если вы хотите установить Knative Eventing 0.16.0, вы можете применить следующий ресурс KnativeEventing:

apiVersion: operator.knative.dev/v1alpha1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing
spec:
  version: 0.16.0

Если поле spec.version не указано, оператор Knative установит последнюю доступную версию Knative Eventing. Если пользователи указывают недействительную или недоступную версию, оператор Knative ничего не сделает. Оператор Knative всегда включает последние три версии с незначительными изменениями. Например, если текущая версия оператора Knative — 0.16.x, наиболее ранняя доступная версия Knative Eventing через оператор — 0.14.0.Если Knative Eventing уже управляется оператором, обновление поля spec.version в ресурсе KnativeEventing позволяет обновлять или понижать версию Knative Eventing без необходимости изменения оператора.Обратите внимание, что оператор Knative разрешает обновления или понижения версий только на одну версию с незначительными изменениями за раз. Например, если текущая версия развертывания Knative Eventing — 0.14.x, необходимо обновиться до 0.15.x перед обновлением до 0.16.x.

Настройка Eventing с помощью ConfigMap

Оператор CR Knative Eventing конфигурируется аналогичным образом, как и оператор CR Knative Serving. Поскольку оператор управляет установкой Knative Eventing, он перезапишет любые обновления для ConfigMaps, которые используются для конфигурации Knative Eventing. Custom ресурс KnativeEventing позволяет вам задавать значения для этих ConfigMaps через оператор. Knative Eventing имеет несколько ConfigMaps с префиксом config-. В spec.config в KnativeEventing для каждого ConfigMap с именем config-<name> содержится одно значение, которое будет использоваться для data ConfigMap. Например, если вы хотите изменить ваш по умолчанию канал с InMemoryChannel на KafkaChannel, вот как выглядит ваш CR Eventing для изменения ConfigMap config-br-default-channel:

apiVersion: operator.knative.dev/v1alpha1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing
spec:
  config:
    br-default-channel:
      channelTemplateSpec: |
        apiVersion: messaging.knative.dev/v1beta1
        kind: KafkaChannel
        spec:
          numPartitions: 10
          replicationFactor: 1

Все ConfigMaps создаются в том же пространстве имен, что и CR оператора. Вы можете использовать CR оператора как единственный точка входа для редактирования всех ConfigMaps.## Приватный репозиторий и приватные секреты

CR оператора Knative Eventing настроен таким же образом, как и CR оператора Knative Serving. Для получения дополнительной информации см. документацию по "Приватный репозиторий и приватные секреты" в документации оператора Serving для получения подробных инструкций.

Knative Eventing также определяет только один контейнер внутри одного ресурса Deployment. Однако имя контейнера не совпадает с именем его родительского Deployment, что означает, что имя контейнера в Knative Eventing не является уникальным идентификатором, как в Knative Serving. Вот список контейнеров внутри каждого ресурса Deployment:

Компонент Имя Deployment Имя контейнера
Основное eventing eventing-controller eventing-controller
Основное eventing eventing-webhook eventing-webhook
Eventing Broker broker-controller eventing-controller
Внутренний память канал imc-controller controller
Внутренний память канал imc-dispatcher dispatcher

Поле default все еще можно использовать для замены изображений в предопределенном формате. Однако, если имя контейнера не является уникальным идентификатором, например eventing-controller, вам нужно использовать поле override для замены его, указав deployment/container как уникальный ключ.Некоторые изображения определены через переменные окружения в Knative Eventing. Они могут быть заменены, воспользовавшись полем override. Поскольку Knative не имеет последовательного способа указания изображений контейнеров, у нас есть известная проблема здесь.

Скачивание изображений в предустановленном формате без секретов:Этот пример показывает, как вы можете определить пользовательские ссылки на изображения, которые могут быть определены в CR с помощью упрощённого формата

docker.io/knative-images/${NAME}:{CUSTOM-TAG}.

В следующем примере:

  • используется пользовательский тег v0.13.0 для всех изображений
  • все ссылки на изображения доступны без использования секретов
  • изображения определены в принятом формате docker.io/knative-images/${NAME}:{CUSTOM-TAG}

Сначала вам нужно убедиться, что ваши изображения были загружены в следующие теги изображений:

Развертывание Контейнер Docker image
eventing-controller eventing-controller docker.io/knative-images/eventing-controller:v0.13.0
eventing-webhook docker.io/knative-images/eventing-webhook:v0.13.0
broker-controller eventing-controller docker.io/knative-images/broker-eventing-controller:v0.13.0
controller docker.io/knative-images/controller:v0.13.0
dispatcher docker.io/knative-images/dispatcher:v0.13.0

Затем вам нужно определить ваш CR оператора с следующим содержимым:

apiVersion: operator.knative.dev/v1alpha1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing
spec:
  registry:
    default: docker.io/knative-images/${NAME}:v0.13.0
    override:
      broker-controller/eventing-controller: docker.io/knative-images-repo1/broker-eventing-controller:v0.13.0
```Как указано, вы заменяете `{CUSTOM-TAG}` пользовательским тегом `v0.13.0`. `${NAME}` соответствует имени контейнера в каждом ресурсе `Deployment`. Поле `default` используется для определения формата изображения для всех контейнеров, кроме контейнера `eventing-controller` в развертывании `broker-controller`. Чтобы заменить изображение для этого контейнера, вам нужно воспользоваться полем `override` для указания каждого из них по отдельности, используя `broker-controller/eventing-controller` в качестве ключа.### Скачивание изображений из разных репозиториев без секретов:

Если ваши пользовательские ссылки на изображения не определены в унифицированном формате по умолчанию, вам потребуется включить каждую ссылку по отдельности в CR.

Например, для определения списка изображений:

| Развертывание | Контейнер | Docker Image |
|----|----|----|
| `eventing-controller` | `eventing-controller` | `docker.io/knative-images/eventing-controller:v0.13.0` |
|  | `eventing-webhook` | `docker.io/knative-images/eventing-webhook:v0.13.0` |
|  | `controller` | `docker.io/knative-images/controller:v0.13.0` |
|  | `dispatcher` | `docker.io/knative-images/dispatcher:v0.13.0` |
| `broker-controller` | `eventing-controller` | `docker.io/knative-images/broker-eventing-controller:v0.13.0` |

Оператор CR должен быть изменен для включения полного списка:

apiVersion: operator.knative.dev/v1alpha1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: registry: override: eventing-controller/eventing-controller: docker.io/knative-images-repo1/eventing-controller:v0.13.0 eventing-webhook/eventing-webhook: docker.io/knative-images-repo2/eventing-webhook:v0.13.0 imc-controller/controller: docker.io/knative-images-repo3/imc-controller:v0.13.0 imc-dispatcher/dispatcher: docker.io/knative-images-repo4/imc-dispatcher:v0.13.0 broker-controller/eventing-controller: docker.io/knative-images-repo5/broker-eventing-controller:v0.13.0


Если вы хотите заменить изображение, определенное переменной окружения, например переменную окружения `DISPATCHER_IMAGE` в контейнере `controller` развертывания `imc-controller`, вам нужно изменить ваш CR следующим образом, если целевое изображение `docker.io/knative-images-repo5/DISPATCHER_IMAGE:v0.13.0`:```
apiVersion: operator.knative.dev/v1alpha1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing
spec:
  registry:
    override:
      eventing-controller/eventing-controller: docker.io/knative-images-repo1/eventing-controller:v0.13.0
      eventing-webhook/eventing-webhook: docker.io/knative-images-repo2/eventing-webhook:v0.13.0
      imc-controller/controller: docker.io/knative-images-repo3/imc-controller:v0.13.0
      imc-dispatcher/dispatcher: docker.io/knative-images-repo4/imc-dispatcher:v0.13.0
      broker-controller/eventing-controller: docker.io/knative-images-repo5/broker-eventing-controller:v0.13.0
      DISPATCHER_IMAGE: docker.io/knative-images-repo5/DISPATCHER_IMAGE:v0.13.0

Скачивание изображений с секретами:

Если ваш репозиторий изображений требует приватных секретов для доступа, вам необходимо добавить атрибут imagePullSecrets.

В этом примере используется секрет с именем regcred. См. этот гайд для создания собственных приватных секретов. После создания секрета отредактируйте ваш CR оператора, добавив содержимое ниже:

apiVersion: operator.knative.dev/v1alpha1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing
spec:
  registry:
    ...
    imagePullSecrets:
      - name: regcred

Поле imagePullSecrets ожидает список секретов. Вы можете добавить несколько секретов для доступа к изображениям следующим образом:

apiVersion: operator.knative.dev/v1alpha1
kind: KnativeEventing
metadata:
  name: knative-eventing
  namespace: knative-eventing
spec:
  registry:
    ...
    imagePullSecrets:
      - name: regcred
      - name: regcred-2
      ...

Настройка класса по умолчанию для брокераKnative Eventing позволяет определить класс брокера по умолчанию, когда пользователь не указывает конкретный. Оператор поставляется с двумя классами брокеров: ChannelBasedBroker и MTChannelBasedBroker. Поле defaultBrokerClass указывает, какой класс использовать; если поле пустое, используется ChannelBasedBroker.

Вот пример, указывающий MTChannelBasedBroker как класс по умолчанию:``` apiVersion: operator.knative.dev/v1alpha1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: defaultBrokerClass: MTChannelBasedBroker


Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/knative-docs.git
git@api.gitlife.ru:oschina-mirror/knative-docs.git
oschina-mirror
knative-docs
knative-docs
master