Клиентская утилита Dapr CLI позволяет настроить Dapr на вашей локальной машине разработчика или в кластере Kubernetes, предоставляет средства отладки, запускает и управляет экземплярами Dapr.
По умолчанию при инициализации клиентской утилиты Dapr CLI будут установлены бинарники Dapr и настроенная среда разработчика для быстрого старта с использованием Dapr. Эта среда использует контейнеры Docker, поэтому Docker должен быть установлен. Если вы предпочитаете запускать Dapr без этой среды и без зависимости на Docker, после установки клиента следует следовать инструкциям для инициализации Dapr с помощью slim init.
Примечание: если вы новый пользователь, настоятельно рекомендуется установить Docker и использовать команду инициализации по умолчанию.
Примечание: На Windows Docker должен работать в режиме Linux Containers.
Windows
Устанавливает последнюю версию Dapr CLI для Windows в директорию %SystemDrive%\dapr
и добавляет эту директорию в переменную окружения PATH пользователя. Используйте -DaprRoot [path]
, чтобы изменить путь установки по умолчанию.
powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"
Linux
Устанавливает последнюю версию Dapr CLI для Linux в директорию /usr/local/bin
.
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash
macOS
Устанавливает последнюю версию Dapr CLI для macOS в директорию /usr/local/bin
.
curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash
Каждый выпуск Dapr CLI включает различные операционные системы и архитектуры. Эти бинарные версии могут быть скачаны и установлены вручную:
/usr/local/bin
c:\dapr
и добавьте эту директорию в ваш путь, отредактировав системную переменную окружения.Установите Dapr CLI с помощью MSI-пакета:
dapr.msi
, чтобы установить Dapr CLI на вашей системе> ВАЖНО: По умолчанию папка установки задана как $Env:SystemDrive\dapr
и может быть изменена во время установки.В режиме self-hosted dapr можно инициализировать с помощью CLI с активацией контейнеров placement, scheduler, redis и zipkin по умолчанию (рекомендовано) или без них, что также не требует наличия docker в среде.
(Необходимое условие: Docker доступен в среде — рекомендовано)
Используйте команду init для инициализации Dapr. При запуске нескольких конфигурационных файлов по умолчанию и контейнеров устанавливаются вместе с бинарником dapr runtime. Бинарник dapr runtime устанавливается в $HOME/.dapr/bin для Mac и Linux, а также в %USERPROFILE%.dapr\bin для Windows.
dapr init
Для пользователей Linux, если вы выполняете ваши команды docker с sudo, вам следует использовать
"sudo dapr init"
.
Выходные данные должны выглядеть следующим образом:
⌛ Пробиваю брешь в гиперпространстве...
✅ Скачаны бинарники и выполнена настройка компонентов.
ℹ️ Бинарник daprd установлен в $HOME/.dapr/bin.
ℹ️ Контейнер dapr_placement работает.
ℹ️ Контейнер dapr_scheduler работает.
ℹ️ Контейнер dapr_redis работает.
ℹ️ Контейнер dapr_zipkin работает.
ℹ️ Используйте `docker ps`, чтобы проверить работающие контейнеры.
✅ Успешно! Dapr запущен и готов к работе. Чтобы начать работу, переходите по адресу: https://docs.dapr.io/getting-started
```> Внимание: Чтобы убедиться, что Dapr успешно установлен, выполните команду `docker ps` из командной строки и проверьте, что образы контейнеров `daprio/dapr:latest`, `dapr_redis` и `dapr_zipkin` работают. Этот шаг создает следующие значения по умолчанию:
1. папку с компонентами, которая используется в дальнейшем при выполнении команды `dapr run`, если не указана опция `--resources-path` (`--components-path` устарела и будет удалена в будущих версиях). Для Linux/MacOS значение пути по умолчанию — это `$HOME/.dapr/components`, а для Windows — `%USERPROFILE%\.dapr\components`.
2. файлы компонентов в папке компонентов с названиями `pubsub.yaml` и `statestore.yaml`.
3. конфигурационный файл по умолчанию `$HOME/.dapr/config.yaml` для Linux/MacOS или `%USERPROFILE%\.dapr\config.yaml` для Windows, чтобы включить трассировку при вызове `dapr init`. Может быть переопределен с помощью флага `--config` при выполнении команды `dapr run`.
#### Упрощенная установка
Альтернативно, чтобы CLI не устанавливал никакие конфигурационные файлы по умолчанию или контейнеры Docker, используйте флаг `--slim` вместе с командой `init`. Будут установлены только двоичные файлы Dapr.
```bash
dapr init --slim
Выходные данные должны выглядеть так:
⌛ Пробую прыжок в гиперпространство...
✅ Двоичные файлы скачаны и компоненты настроены.
ℹ️ Двоичный файл daprd установлен в $HOME/.dapr/bin.
ℹ️ Двоичный файл placement установлен.
ℹ️ Двоичный файл scheduler установлен.
✅ Успех! Dapr запущен и работает. Чтобы начать работу, переходите сюда: https://docs.dapr.io/getting-started
```> Примечание: При инициализации Dapr с использованием флага `--slim` устанавливаются только двоичные файлы Dapr runtime, placement и сервиса scheduler. Создается пустая папка компонентов по умолчанию без конфигурационных файлов. В процессе выполнения команды `dapr run` пользователю следует использовать опцию `--resources-path` (`--components-path` устарела и будет удалена в будущих версиях), чтобы указать путь к папке компонентов со своими конфигурационными файлами или поместить эти файлы в папку по умолчанию. Для Linux/MacOS значение пути по умолчанию — это `$HOME/.dapr/components`, а для Windows — `%USERPROFILE%\.dapr\components`.
#### Установка конкретной версии runtime
Вы можете установить или обновиться до конкретной версии Dapr runtime с помощью команды `dapr init --runtime-version`. Вы можете найти список доступных версий в разделе [Dapr Release](https://github.com/dapr/dapr/releases).
```bash
# Установка runtime версии v1.0.0
dapr init --runtime-version 1.0.0
# Проверка версий CLI и runtime
dapr --version
CLI version: v1.0.0
Runtime version: v1.0.0
Вы можете установить Dapr Runtime с помощью образов Mariner, используя флаг --image-variant
.
# Установка Dapr с использованием образов Mariner
dapr init --image-variant mariner
--image-registry
.Примечание: Этот командный запрос предполагает, что образы были хостированы как example.io//dapr/dapr:, example.io//dapr/3rdparty/redis:, example.io//dapr/3rdparty/zipkin:.```bash
dapr init --image-registry example.io/
#### Установка в окружении airgap (офлайн)
Вы можете установить Dapr runtime в окружении airgap (офлайн) с помощью заранее скачанного [пакета установщика](https://github.com/dapr/installer-bundle/releases). Вам потребуется скачать архивированный пакет для вашей ОС (например, daprbundle_linux_amd64.tar.gz), распаковать его. После этого используйте локальный бинарник Dapr CLI в пакете с флагом `--from-dir`, чтобы указать на место распакованного пакета для инициализации Dapr.
Перейдите в директорию пакета и выполните следующую команду:
```bash
# Инициализация Dapr в окружении airgap
./dapr init --from-dir .
Для Windows используйте
.\dapr.exe
, чтобы указать на локальный бинарник Dapr CLI.
Если вы выполняете вышеуказанную команду не из директории пакета, укажите полный путь до директории пакета в качестве входных данных. Например, если путь до директории пакета равен $HOME/daprbundle, выполните команду
$HOME/daprbundle/dapr init --from-dir $HOME/daprbundle
для получения такого же поведения.
Примечание: Пакет установщика Dapr содержит только контейнеры размещения и планировщика, кроме бинарников, поэтому
zipkin
иredis
не активируются по умолчанию. Вы можете запустить эти образы локально либо через сеть, либо из приватного реестра следующим образом:
docker run --name "dapr_zipkin" --restart always -d -p 9411:9411 openzipkin/zipkin
docker run --name "dapr_redis" --restart always -d -p 6379:6379 redis
```Альтернативно к вышеописанному, вы также можете использовать минималистичную установку для установки Dapr без запуска Docker-контейнеров в режиме airgap.
```bash
./dapr init --slim --from-dir .
Вы можете установить среду выполнения Dapr в конкретную сеть Docker для изоляции её от локальной машины (например, чтобы использовать Dapr внутри контейнера Docker).
# Создание сети Docker
docker network create dapr-network
# Установка Dapr в сеть
dapr init --network dapr-network
Примечание: При установке в конкретной сети Docker вам потребуется добавить аргумент
--placement-host-address
командамdapr run
, запущенным в любых контейнерах этой сети. Формат аргумента--placement-host-address
— либо<hostname>
, либо<hostname>:<port>
. Если порт не указан, применяются значения по умолчанию:6050
для Windows и50005
для Linux/MacOS.
Примечание: При установке в конкретной сети Docker вам потребуется добавить аргумент
--scheduler-host-address
командамdapr run
, запущенным в любых контейнерах этой сети. Формат аргумента--scheduler-host-address
— либо<hostname>
, либо<hostname>:<port>
. Если порт не указан, применяются значения по умолчанию:6060
для Windows и50006
для Linux/MacOS.
Вы можете установить среду выполнения Dapr с использованием конкретного окружения контейнеризации, такого как Docker или Podman, передав аргумент --container-runtime
:```bash
$ dapr init --container-runtime podman
> Примечание: По умолчанию используется окружение контейнеризации Docker.
#### В режиме разработки или GitHub Codespace
Чтобы установить Dapr CLI в режиме разработки или GitHub Codespace, добавьте следующее в ваш файл `devcontainer.json`:
```jsonc
"features": {
"ghcr.io/dapr/cli/dapr-cli:0": {}
}
Перезапустите свой контейнер разработки или GitHub Codespace и выполните команду dapr init
, чтобы инициализировать Dapr.
Дополнительные сведения см. в документации по контейнерам разработки для Visual Studio Code и GitHub Codespaces.
Деинсталляция удалит исполняемые файлы daprd, а также контейнеры placement и scheduler (если они были установлены с помощью Docker) или соответствующие исполняемые файлы (если они не были установлены с помощью Docker).
dapr uninstall
Для пользователей Linux, если вы выполняете команды Docker с помощью sudo, вам потребуется использовать "
sudo dapr uninstall
", чтобы удалить контейнеры.Команда выше по умолчанию не будет удалять контейнеры Redis или Zipkin, если они были использованы для других целей. Она также не удалит папку dapr по умолчанию, созданную при выполненииdapr init
. Чтобы удалить все контейнеры (расположение, планировщик, Redis, Zipkin) и папку dapr по умолчанию, созданную при инициализации, выполните следующую команду:```bash dapr uninstall --all
Вышеуказанная команда может быть выполнена в случае установки Dapr в среде, не использующей Docker; она удалит установленные бинарники и папку dapr по умолчанию.
> Примечание: Команда `dapr uninstall` всегда попытается удалить бинарники расположения и планировщика и выбросит ошибку, если это невозможно.
**Вы должны всегда выполнять команду `dapr uninstall`, прежде чем запустить другую команду `dapr init`.**
#### Удаление Dapr из конкретной сети Docker
Если ранее был установлен в конкретной сети Docker, Dapr можно удалить с помощью аргумента `--network`:
```bash
dapr uninstall --network dapr-network
Вы можете удалить Dapr из конкретной среды выполнения контейнера, передав аргумент --container-runtime
:
# Удаление Dapr из среды выполнения контейнера Podman
$ dapr uninstall --container-runtime podman
Команда init установит Dapr на кластер Kubernetes. Для продвинутых случаев используйте наш Helm Chart.
Примечание: По умолчанию используется пространство имён dapr-system. Установка будет отображаться под названием dapr
для Helm.
dapr init -k
Результат выполнения должен выглядеть следующим образом:
⌛ Переходим в гиперпространство...
ℹ️ Примечание: Чтобы установить Dapr с помощью Helm, см. здесь: https://docs.dapr.io/getting-started/install-dapr/#install-with-helm-advanced
```✅ Развертывание контрольного плана Dapr в вашем кластере...
✅ Успешно! Dapr установлен в пространстве имён dapr-system. Для проверки выполните команду `dapr status -k` в терминале. Чтобы приступить к работе, переходите по адресу: <https://docs.dapr.io/getting-started>
#### Предоставление значений Helm
Все доступные [значения Helm Chart](https://github.com/dapr/dapr/tree/master/charts/dapr#configuration) могут быть установлены с помощью флага `--set`:
```bash
dapr init -k --set global.tag=1.0.0 --set dapr_operator.logLevel=error
dapr init -k -n my-namespace
dapr init -k --enable-ha=true
dapr init -k --enable-mtls=false
dapr init -k --wait --timeout 600
Чтобы удалить Dapr из вашего кластера Kubernetes, используйте команду uninstall
со значением флага --kubernetes
или сокращенного варианта -k
.
dapr uninstall -k
По умолчанию таймаут составляет 300с/5м и может быть переопределен с помощью флага --timeout
.
dapr uninstall -k --timeout 600
Для удаления всех пользовательских ресурсов определения Dapr:
dapr uninstall -k --all
Предупреждение: это удалит все компоненты, подписки или конфигурации, примененные в кластере во время удаления.
dapr upgrade -k --runtime-version=1.0.0
Пример выше показывает, как обновиться с текущей версии до версии 1.0.0
.
Примечание: команда dapr upgrade
будет повторяться до пяти раз при неудаче.
Все доступные значения Helm Chart могут быть установлены с использованием флага --set
:
dapr upgrade -k --runtime-version=1.0.0 --set global.tag=my-tag --set dapr_operator.logLevel=error
Примечание: не используйте команду dapr upgrade
, если вы обновляетесь с версий gst 0.x Dapr.
export DAPR_HELM_REPO_URL="https://helmchart-repo.xxx.xxx/dapr/dapr"
export DAPR_HELM_REPO_USERNAME="username_xxx"
export DAPR_HELM_REPO_PASSWORD="passwd_xxx"
Установка этих параметров позволит dapr init -k
устанавливать образы Dapr из конфигурируемого репозитория Helm.
CLI Dapr позволяет легко отлаживать, запуская одновременно Dapr и ваше приложение. Логи от обоих Dapr Runtime и вашего приложения будут отображаться в реальном времени!
Пример запуска Dapr с приложением на Node.js:
dapr run --app-id nodeapp node app.js
Пример запуска Dapr с приложением на Node.js, слушающим порт 3000:
dapr run --app-id nodeapp --app-port 3000 node app.js
Пример запуска Dapr на HTTP-порту 6000:
dapr run --app-id nodeapp --app-port 3000 --dapr-http-port 6000 node app.js
Пример запуска Dapr на gRPC-порту 50002:```bash dapr run --app-id nodeapp --app-port 3000 --dapr-grpc-port 50002 node app.js
Пример запуска Dapr в конкретной сети Docker:
```bash
dapr init --network dapr-network
dapr run --app-id nodeapp --placement-host-address dapr_placement node app.js
Примечание: В случае использования конкретной сети Docker контейнеры Redis, Zipkin и службы размещения и планировщика получают специальные сетевые псевдонимы
dapr_redis
,dapr_zipkin
,dapr_placement
иdapr_scheduler
соответственно. Конфигурационные файлы по умолчанию отражают эти сетевые псевдонимы вместоlocalhost
.
Если ваше приложение использует gRPC вместо HTTP для получения событий Dapr, запустите CLI следующей командой:
dapr run --app-id nodeapp --app-protocol grpc --app-port 6000 node app.js
Пример выше предполагает, что порт вашего приложения — это 6000.
Чтобы использовать публикацию/подписку с вашим приложением, убедитесь, что ваше приложение имеет HTTP-конечную точку POST с каким-либо именем, скажем, myevent
. Этот пример предполагает, что ваше приложение прослушивает порт 3000.
Запустите Dapr и ваше приложение:
dapr run --app-id nodeapp --app-port 3000 node app.js
Опубликуйте сообщение:
Параметр --pubsub
принимает имя публикации/подписки. По умолчанию имя конфигурируемого через CLI публикации/подписки — это "pubsub"
.
Опубликуйте сообщение:
dapr publish --publish-app-id nodeapp --pubsub pubsub --topic myevent --data '{"name": "yoda"}'
```* Windows
```powershell
dapr publish --publish-app-id nodeapp --pubsub pubsub --topic myevent --data "{ \"name\": \"yoda\" }"
Для тестирования ваших конечных точек с помощью Dapr просто вызывайте любую HTTP-конечную точку. Для этого примера мы будем предполагать, что у нас есть приложение на Node.js, прослушивающее порт cq000 с конечной точкой /mymethod
.
Запустите Dapr и ваше приложение:
dapr run --app-id nodeapp --app-port 3000 node app.js
Примечание: Чтобы выбрать нестандартную папку компонентов, используйте опцию --resources-path
(--components-path
устарела).
Вызовите ваше приложение:
dapr invoke --app-id nodeapp --method mymethod
Укажите глагол:
По умолчанию Dapr использует глагол POST
. Если ваше приложение использует Dapr для gRPC, вы должны использовать POST
.
dapr invoke --app-id nodeapp --method mymethod --verb GET
Чтобы получить список всех экземпляров Dapr, запущенных на вашем компьютере:
dapr list
Чтобы получить список всех экземпляров Dapr, запущенных в кластере Kubernetes:
dapr list --kubernetes
Чтобы получить список всех экземпляров Dapr и вернуть выходные данные в виде JSON или YAML (например, для использования другими инструментами):
dapr list --output json
dapr list --output yaml
Проверьте здоровье системных служб Dapr (контрольной плоскости) в кластере Kubernetes:
dapr status --kubernetes
```### Проверьте статус mTLS
Чтобы проверить, включен ли Mutual TLS в вашем кластере Kubernetes:
```bash
dapr mtls --kubernetes
Чтобы экспортировать корневой сертификат, сертификат издателя и ключ издателя, созданные Dapr из кластера Kubernetes в локальную папку:
dapr mtls export
Это сохранит сертификаты в рабочей директории.
Для указания пользовательской директории:
dapr mtls export -o certs
dapr mtls expiry
Это можно использовать при обновлении до новой версии Dapr, так как рекомендуется передать существующие сертификаты для нулевого простоя обновления.
Обновление сертификатов путём создания новых корневых и издательских сертификатов
dapr mtls renew-certificate -k --valid-until <число_дней> --restart
Используйте существующий частный ключ корневого сертификата для создания новых корневых и издательских сертификатов
dapr mtls renew-certificate -k --private-key myprivatekey.key --valid-until <число_дней>
Используйте предоставленные пользователем ca.crt, issuer.crt и issuer.key
dapr mtls renew-certificate -k --ca-root-certificate <ca.crt> --issuer-private-key <issuer.key> --issuer-public-certificate <issuer.crt> --restart
dapr mtls renew-certificate -h
```### Список компонентов
Чтобы получить список всех компонентов Dapr в Kubernetes:
```bash
dapr components --kubernetes --all-namespaces
Чтобы вывести компоненты Dapr в пространстве имен target-namespace
на Kubernetes:
dapr components --kubernetes --namespace target-namespace
Для использования пользовательского пути для определений компонентов
dapr run --resources-path [пользовательский путь]
> Примечание: флаг --components-path устарел. Он продолжит работать до полной отмены.
Чтобы вывести все конфигурации Dapr на Kubernetes:
dapr configurations --kubernetes --all-namespaces
Чтобы вывести конфигурации Dapr в пространстве имен target-namespace
на Kubernetes:
dapr configurations --kubernetes --namespace target-namespace
Используйте dapr list
для получения списка всех запущенных экземпляров.
Чтобы остановить приложение Dapr на вашей машине:
dapr stop myAppID
Вы также можете остановить несколько приложений Dapr
dapr stop myAppID1 myAppID2
Для включения профилирования используйте флаг enable-profiling
:
dapr run --app-id nodeapp --app-port 3000 node app.js --enable-profiling
Dapr автоматически назначает порт для профилирования.
Если вы хотите вручную назначить порт для профилирования, используйте флаг profile-port
:
dapr run --app-id nodeapp --app-port 3000 node app.js --enable-profiling --profile-port 7777
metrics-port
:dapr run --app-id nodeapp --app-port 3000 node app.js --metrics-port 5040
Чтобы установить уровень подробности логгирования Dapr, используйте флаг log-level
:
dapr run --app-id nodeapp --app-port 3000 node app.js --log-level debug
Это устанавливает уровень логгирования Dapr на debug
. По умолчанию используется info
.
Если ваше приложение прослушивает https
или имеет включённую конфигурацию TLS для gRPC, используйте следующий флаг app-ssl
:
dapr run --app-id nodeapp --app-port 3000 node app.js --app-ssl
Это заставляет Dapr вызывать приложение через безопасный канал SSL.
По умолчанию значение этого флага — false
.
Вы можете запустить сторонний процесс Dapr (daprd
) без указания команды приложения в конце:
dapr run --app-id myapp --dapr-http-port 3005 --dapr-grpc-port 50001
Чтобы сгенерировать скрипты завершения командной строки:
dapr completion
Для включения доменного сокета Unix для подключения к серверу API Dapr используйте флаг --unix-domain-socket
:
dapr run --app-id nodeapp --unix-domain-socket node app.js
Dapr автоматически создаст доменный сокет Unix для подключения к серверу API Dapr.
Если вы хотите вызвать вашу программу, также используйте этот флаг:``` dapr invoke --app-id nodeapp --unix-domain-socket --method mymethod
### Установка уровня журналирования API
Чтобы установить уровень журналирования API для Dapr runtime на `INFO`, используйте флаг `enable-api-logging`:
```bash
dapr run --app-id nodeapp --app-port 3000 node app.js enable-api-logging
По умолчанию значение равно false
.
Дополнительные детали можно найти, запустив команду и проверив примеры для применения к вашей командной строке.
Чтобы добавить или изменить аннотации Dapr в существующий манифест Kubernetes, используйте команду dapr annotate
:
dapr annotate [flags] mydeployment.yaml
Эта команда добавляет аннотации dapr.io/enabled
и dapr.io/app-id
. ID приложения Dapr будет сформирован по шаблону <namespace>-<kind>-<name>
, где значения берутся из метаданных существующего объекта Kubernetes.
Примечание: Команда annotate в настоящее время поддерживает только аннотацию манифестов Kubernetes. Вы должны предоставить флаг
-k
, чтобы указать на цели Kubernetes.
Чтобы предоставить свое собственное значение ID приложения Dapr, используйте флаг --app-id
.
Все аннотации Dapr доступны для установки, если указано значение для соответствующего флага в команде dapr annotate
.
Вы можете также передать манифест Kubernetes через стандартный ввод:
kubectl get deploy mydeploy -o yaml | dapr annotate -k - | kubectl apply -f -
Или вы можете передать манифест Kubernetes через URL:
dapr annotate -k --log-level debug https://raw.githubusercontent.com/dapr/quickstarts/master/tutorials/hello-kubernetes/deploy/node.yaml | kubectl apply -f -
```Если входящие данные содержат несколько манифестов, команда будет искать первый подходящий для применения аннотаций. Если вы предпочитаете применять аннотации к конкретному манифесту, вы можете использовать флаг `--resource` со значением имени объекта, к которому вы хотите применить аннотации. Если у вас возник конфликт между пространствами имён, вы также можете указать пространство имён через флаг `--namespace`, чтобы изолировать манифест, который вы хотите выбрать. Если вы хотите аннотировать несколько манифестов, вы можете цепочкой соединять команды `dapr annotate`, каждая из которых применяет аннотацию к конкретному манифесту.
```bash
kubectl get deploy -o yaml | dapr annotate -k -r nodeapp --log-level debug - | dapr annotate -k --log-level debug -r pythonapp - | kubectl apply -f -
Дополнительную информацию о конкретных командах Dapr см. в Справочном руководстве.
Чтобы начать работу с построением и разработкой, см. Руководство по разработке.
Подробный процесс выпуска для Dapr CLI см. в Руководстве по выпускам.
Пожалуйста, обратитесь к нашему Коду поведения сообщества Dapr.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )