1 - Dapr 命令行界面 (CLI) 参考

关于 Dapr CLI 的详细信息

Dapr CLI 使您能够在本地开发环境或 Kubernetes 集群上配置 Dapr,提供调试支持,并启动和管理 Dapr 实例。


         __
    ____/ /___ _____  _____
   / __  / __ '/ __ \/ ___/
  / /_/ / /_/ / /_/ / /
  \__,_/\__,_/ .___/_/
              /_/

===============================
分布式应用运行时

用法:
  dapr [命令]

可用命令:
  annotate       为 Kubernetes 配置添加 Dapr 注释。适用平台:Kubernetes
  build-info     显示 Dapr CLI 和运行时的构建信息
  completion     生成 shell 自动补全脚本
  components     列出所有 Dapr 组件。适用平台:Kubernetes
  configurations 列出所有 Dapr 配置。适用平台:Kubernetes
  dashboard      启动 Dapr 仪表板。适用平台:Kubernetes 和 本地托管
  help           获取任何命令的帮助信息
  init           在支持的平台上安装 Dapr。适用平台:Kubernetes 和 本地托管
  invoke         调用指定 Dapr 应用程序上的方法。适用平台:本地托管
  list           列出所有 Dapr 实例。适用平台:Kubernetes 和 本地托管
  logs           获取应用程序的 Dapr sidecar 日志。适用平台:Kubernetes
  mtls           检查 mTLS 是否已启用。适用平台:Kubernetes
  publish        发布一个 pubsub 事件。适用平台:本地托管
  run            运行 Dapr 并可选择与您的应用程序一起运行。适用平台:本地托管
  status         显示 Dapr 服务的健康状态。适用平台:Kubernetes
  stop           停止 Dapr 实例及其关联的应用程序。适用平台:本地托管
  uninstall      卸载 Dapr 运行时。适用平台:Kubernetes 和 本地托管
  upgrade        升级集群中的 Dapr 控制平面安装。适用平台:Kubernetes
  version        显示 Dapr 运行时和 CLI 的版本信息

标志:
  -h, --help          获取 dapr 的帮助信息
      --log-as-json   以 JSON 格式记录输出
  -v, --version       获取 dapr 的版本信息

使用 "dapr [command] --help" 获取有关命令的更多信息。

命令参考

您可以通过以下链接了解每个 Dapr 命令的详细信息。

环境变量

一些 Dapr 标志可以通过环境变量进行设置(例如,dapr init 命令的 --network 标志可以通过 DAPR_NETWORK 环境变量设置)。请注意,在命令行中指定的标志会覆盖任何已设置的环境变量。

2 - annotate CLI 命令参考

在 Kubernetes 配置中添加 Dapr 注解

描述

在 Kubernetes 配置中添加 Dapr 注解。这允许您在部署文件中添加或更改 Dapr 注解。有关每个可用注解的详细说明,请参见 Kubernetes 注解

支持的平台

用法

dapr annotate [flags] CONFIG-FILE

标志

名称 环境变量 默认值 描述
--kubernetes, -k 将注解应用于 Kubernetes 资源。必需
--api-token-secret 用于 API token 的 secret
--app-id, -a 要注解的应用 ID
--app-max-concurrency -1 允许的最大并发请求数
--app-port, -p -1 用于暴露应用的端口
--app-protocol 应用使用的协议:http(默认),grpchttpsgrpcsh2c
--app-token-secret 用于应用 token 的 secret
--config, -c 要注解的配置文件
--cpu-limit 为 sidecar 设置的 CPU 限制。查看有效值 这里
--cpu-request 为 sidecar 设置的 CPU 请求。查看有效值 这里
--dapr-image 用于 dapr sidecar 容器的镜像
--enable-debug false 启用调试
--enable-metrics false 启用指标
--enable-profile false 启用分析
--env 要设置的环境变量(键值对,逗号分隔)
--graceful-shutdown-seconds -1 等待应用关闭的秒数
--help, -h annotate 的帮助信息
--listen-addresses sidecar 监听的地址。要监听所有 IPv4 地址,请使用 0.0.0.0。要监听所有 IPv6 地址,请使用 [::]
--liveness-probe-delay -1 sidecar 用于存活探测的延迟。阅读更多 这里
--liveness-probe-period -1 sidecar 用于存活探测的周期。阅读更多 这里
--liveness-probe-threshold -1 sidecar 用于存活探测的阈值。阅读更多 这里
--liveness-probe-timeout -1 sidecar 用于存活探测的超时。阅读更多 这里
--log-level 使用的日志级别
--max-request-body-size -1 使用的最大请求体大小
--http-read-buffer-size -1 HTTP 头读取缓冲区的最大大小(以千字节为单位)
--memory-limit 为 sidecar 设置的内存限制。查看有效值 这里
--memory-request 为 sidecar 设置的内存请求
--metrics-port -1 用于暴露指标的端口
--namespace, -n 资源目标所在的命名空间(仅在设置 --resource 时可用)
--readiness-probe-delay -1 sidecar 用于就绪探测的延迟。阅读更多 这里
--readiness-probe-period -1 sidecar 用于就绪探测的周期。阅读更多 这里
--readiness-probe-threshold -1 sidecar 用于就绪探测的阈值。阅读更多 这里
--readiness-probe-timeout -1 sidecar 用于就绪探测的超时。阅读更多 这里
--resource, -r 要注解的 Kubernetes 资源目标
--enable-api-logging 为 Dapr sidecar 启用 API 日志记录
--unix-domain-socket-path 用于与 Dapr sidecar 通信的 Linux 域套接字路径
--volume-mounts 要以只读模式挂载到 sidecar 容器的 pod 卷列表
--volume-mounts-rw 要以读写模式挂载到 sidecar 容器的 pod 卷列表
--disable-builtin-k8s-secret-store 禁用内置的 Kubernetes secret 存储
--placement-host-address Dapr actor 放置服务器的地址列表(逗号分隔)

示例

# 注解输入中找到的第一个部署
kubectl get deploy -l app=node -o yaml | dapr annotate -k - | kubectl apply -f -

# 按名称在链中注解多个部署
kubectl get deploy -o yaml | dapr annotate -k -r nodeapp - | dapr annotate -k -r pythonapp - | kubectl apply -f -

# 从文件或目录中按名称注解特定命名空间中的部署
dapr annotate -k -r nodeapp -n namespace mydeploy.yaml | kubectl apply -f -

# 从 URL 按名称注解部署
dapr annotate -k -r nodeapp --log-level debug https://raw.githubusercontent.com/dapr/quickstarts/master/tutorials/hello-kubernetes/deploy/node.yaml | kubectl apply -f -

3 - build-info CLI 命令指南

关于 dapr CLI 和 daprd 可执行文件的详细构建信息

描述

获取 daprdaprd 可执行文件的版本和 Git 提交信息。

支持的平台

用法

dapr build-info

相关信息

您可以通过运行 daprd --build-info 命令直接获取 daprd 的构建信息。

4 - completion CLI 命令参考

关于 completion CLI 命令的详细信息

描述

生成用于 shell 的自动补全脚本

用法

dapr completion [flags]
dapr completion [command]

标志

名称 环境变量 默认值 描述
--help, -h 显示此帮助信息

示例

在 macOS 上使用 Homebrew 安装 bash 自动补全

如果你使用的是 macOS 自带的 Bash 3.2:

brew install bash-completion

或者,如果你使用的是 Bash 4.1+:

brew install bash-completion@2

将补全脚本添加到你的补全目录中:

dapr completion bash > $(brew --prefix)/etc/bash_completion.d/dapr
source ~/.bash_profile

在 Linux 上安装 bash 自动补全

如果 Linux 上未安装 bash-completion,请通过发行版的包管理器安装 bash-completion 包。

将 dapr 的 bash 补全代码加载到当前 shell:

source <(dapr completion bash)

将 bash 补全代码写入文件,并从 .bash_profile 中加载:

dapr completion bash > ~/.dapr/completion.bash.inc
printf "source '$HOME/.dapr/completion.bash.inc'" >> $HOME/.bash_profile
source $HOME/.bash_profile

在 macOS 上使用 Homebrew 安装 zsh 自动补全

如果 macOS 上未安装 zsh-completion,请安装 ‘zsh-completion’ 包:

brew install zsh-completions

设置 dapr 的 zsh 补全代码在 zsh 启动时自动加载:

dapr completion zsh > "${fpath[1]}/_dapr"
source ~/.zshrc

在 Linux 上安装 zsh 自动补全

如果 Linux 上未安装 zsh-completion,请通过发行版的包管理器安装 ‘zsh-completion’ 包。

将 dapr 的 zsh 补全代码加载到当前 shell:

source <(dapr completion zsh)

设置 dapr 的 zsh 补全代码在 zsh 启动时自动加载:

dapr completion zsh > "${fpath[1]}/_dapr"

在 Windows 上安装 Powershell 自动补全

如果 $PROFILE 不存在,请创建:

if (!(Test-Path -Path $PROFILE )){ New-Item -Type File -Path $PROFILE -Force }

将补全脚本添加到你的配置文件中:

dapr completion powershell >> $PROFILE

可用命令

bash        生成 bash 自动补全脚本
powershell  生成 powershell 自动补全脚本
zsh         生成 zsh 自动补全脚本

5 - components CLI 命令指南

components CLI 命令的详细说明

描述

列出所有 Dapr 组件。

支持的平台

用法

dapr components [flags]

标志

名称 环境变量 默认值 描述
--kubernetes, -k false 在 Kubernetes 集群中列出所有 Dapr 组件(此模式下必需)
--all-namespaces, -A true 若为 true,列出所有命名空间的 Dapr 组件
--help, -h 显示帮助信息
--name, -n 指定要显示的组件名称(可选)
--namespace 列出指定命名空间中的所有组件
--output, -o list 输出格式(选项:json、yaml 或 list)

示例

# 列出 Kubernetes 模式下所有命名空间的 Dapr 组件
dapr components -k

# 列出 Kubernetes 模式下特定命名空间的 Dapr 组件
dapr components -k --namespace default

# 显示 Kubernetes 模式下特定的 Dapr 组件
dapr components -k -n mycomponent

# 列出 Kubernetes 模式下所有命名空间的 Dapr 组件
dapr components -k --all-namespaces

警告信息

此命令可能会显示警告信息。

根证书更新警告

如果部署到 Kubernetes 集群的 mtls 根证书在 30 天内过期,将显示以下警告信息:

您的 Kubernetes 集群的 Dapr 根证书将在 <n> 天后过期。到期日期:<date:time> UTC。
请参阅 docs.dapr.io 获取证书更新说明,以避免服务中断。

6 - dashboard CLI 命令参考

关于 dashboard CLI 命令的详细信息

描述

启动 Dapr 仪表板

支持的平台类型

用法

dapr dashboard [flags]

标志

名称 环境变量 默认值 描述
--address, -a localhost 监听的地址。仅接受 IP 地址或 localhost 作为值
--help, -h 显示帮助信息
--kubernetes, -k false 通过本地代理在浏览器中打开 Dapr 仪表板以连接到 Kubernetes 集群
--namespace, -n dapr-system Dapr 仪表板运行所在的命名空间
--port, -p 8080 提供 Dapr 仪表板服务的本地端口
--version, -v false 显示 Dapr 仪表板的版本信息

示例

# 本地启动仪表板
dapr dashboard

# 在指定端口本地启动仪表板服务
dapr dashboard -p 9999

# 通过端口转发连接到 Kubernetes 中运行的仪表板服务
dapr dashboard -k

# 在所有地址上通过指定端口转发连接到 Kubernetes 中运行的仪表板服务
dapr dashboard -k -p 9999 --address 0.0.0.0

# 通过指定端口转发连接到 Kubernetes 中运行的仪表板服务
dapr dashboard -k -p 9999

警告信息 - Kubernetes 模式

此命令可能会显示警告信息。

根证书更新警告

如果部署在 Kubernetes 集群中的 mtls 根证书将在 30 天内过期,将显示以下警告信息:

您的 Kubernetes 集群的 Dapr 根证书将在 <n> 天后过期。到期日期:<date:time> UTC。
请访问 docs.dapr.io 获取证书更新说明,以避免服务中断。

7 - help 命令行界面命令参考

关于 help 命令行界面命令的详细信息

描述

Help 命令为应用程序中的任何命令提供帮助。

用法

dapr help [command] [flags]

标志

名称 环境变量 默认值 描述
--help, -h 显示此帮助信息

8 - init CLI 命令参考

关于 init CLI 命令的详细信息

描述

在支持的平台上安装 Dapr。

支持的平台

用法

dapr init [flags]

标志

名称 环境变量 默认值 描述
--dashboard-version latest 要安装的 Dapr 仪表板版本,例如:1.0.0
--enable-ha false 启用高可用性 (HA) 模式
--enable-mtls true 在集群中启用 mTLS
--from-dir 本地目录的路径,包含下载的 “Dapr 安装程序包” 版本,用于在隔离环境中 init
--help, -h 打印此帮助信息
--image-registry 从指定的镜像注册表中拉取 Dapr 所需的容器镜像
--kubernetes, -k false 将 Dapr 部署到 Kubernetes 集群
--namespace, -n dapr-system 要在其中安装 Dapr 的 Kubernetes 命名空间
--network 要安装和部署 Dapr 运行时的 Docker 网络
--runtime-version latest 要安装的 Dapr 运行时版本,例如:1.0.0
--image-variant 要用于 Dapr 运行时的镜像变体,例如:mariner
--set 在命令行上配置选项以传递给 Dapr Helm 图表和 Kubernetes 集群进行安装。可以在逗号分隔的列表中指定多个值,例如:key1=val1,key2=val2
--slim, -s false 从本地托管安装中排除放置服务、调度服务以及 Redis 和 Zipkin 容器
--timeout 300 Kubernetes 安装的等待超时时间
--wait false 等待 Kubernetes 初始化完成
N/A DAPR_DEFAULT_IMAGE_REGISTRY 用于指定默认的容器注册表以从中拉取镜像。当其值设置为 GHCRghcr 时,它从 Github 容器注册表中拉取所需的镜像。要默认使用 Docker hub,请取消设置环境变量或将其留空
N/A DAPR_HELM_REPO_URL 指定私有 Dapr Helm 图表的 URL
N/A DAPR_HELM_REPO_USERNAME 私有 Helm 图表的用户名 访问私有 Dapr Helm 图表所需的用户名。如果可以公开访问,则无需设置此环境变量
N/A DAPR_HELM_REPO_PASSWORD 私有 Helm 图表的密码 访问私有 Dapr Helm 图表所需的密码。如果可以公开访问,则无需设置此环境变量
--container-runtime docker 用于传递除 Docker 之外的其他容器运行时。支持的容器运行时有:dockerpodman
--dev 在 Kubernetes 中运行时创建 Redis 和 Zipkin 部署。
--scheduler-volume 仅限本地托管。可选地,您可以为调度服务数据目录指定一个卷。默认情况下,如果没有此标志,调度数据不会持久化且不具备重启恢复能力。

示例

安装

通过拉取放置、调度、Redis 和 Zipkin 的容器镜像来安装 Dapr。默认情况下,这些镜像从 Docker Hub 拉取。

默认情况下,为调度服务创建一个 dapr_scheduler 本地卷,用作数据库目录。此卷的主机文件位置可能位于 /var/lib/docker/volumes/dapr_scheduler/_data~/.local/share/containers/storage/volumes/dapr_scheduler/_data,具体取决于您的容器运行时。

dapr init

Dapr 也可以在没有 Docker 的情况下运行精简本地托管模式

dapr init -s

要切换到 Dapr Github 容器注册表作为默认注册表,请将 DAPR_DEFAULT_IMAGE_REGISTRY 环境变量值设置为 GHCR。要切换回 Docker Hub 作为默认注册表,请取消设置此环境变量。

指定运行时版本

您还可以指定特定的运行时版本。默认情况下,使用最新版本。

dapr init --runtime-version 1.13.4

安装带有镜像变体

您还可以安装带有特定镜像变体的 Dapr,例如:mariner

dapr init --image-variant mariner

使用 Dapr 安装程序包

在离线或隔离环境中,您可以下载 Dapr 安装程序包并使用它来安装 Dapr,而不是从网络拉取镜像。

dapr init --from-dir <path-to-installer-bundle-directory>

Dapr 也可以在没有 Docker 的隔离环境中以精简本地托管模式运行。

dapr init -s --from-dir <path-to-installer-bundle-directory>

指定私有注册表

您还可以指定一个私有注册表以从中拉取容器镜像。需要将这些镜像发布到私有注册表中,如下所示,以便 Dapr CLI 能够通过 dapr init 命令成功拉取它们:

  1. Dapr 运行时容器镜像(dapr) (用于运行放置) - dapr/dapr:
  2. Redis 容器镜像(rejson) - dapr/3rdparty/rejson
  3. Zipkin 容器镜像(zipkin) - dapr/3rdparty/zipkin

Dapr 使用的所有必需镜像都需要位于 dapr 路径下。第三方镜像必须发布在 dapr/3rdparty 路径下。

image-registry URI 遵循 docker.io/<username> 格式。

dapr init --image-registry docker.io/username

此命令解析完整的镜像 URI,如下所示 -

  1. 放置容器镜像(dapr) - docker.io/username/dapr/dapr:
  2. Redis 容器镜像(rejson) - docker.io/username/dapr/3rdparty/rejson
  3. zipkin 容器镜像(zipkin) - docker.io/username/dapr/3rdparty/zipkin

在设置 Dapr 时,您可以指定不同的容器运行时。如果省略 --container-runtime 标志,默认的容器运行时是 Docker。

dapr init --container-runtime podman

使用 Docker 网络

您可以将本地容器部署到 Docker 网络中,这对于部署到单独的网络或使用 Docker Compose 进行本地开发以部署应用程序非常有用。

创建 Docker 网络。

docker network create mynet

初始化 Dapr 并指定创建的 Docker 网络。

dapr init --network mynet

验证所有容器是否在指定网络中运行。

docker ps 

从该 Docker 网络中卸载 Dapr。

dapr uninstall --all --network mynet
dapr init -k

使用 --dev 标志以开发模式初始化 Dapr,其中包括 Zipkin 和 Redis。

dapr init -k --dev

您可以使用 --wait 标志等待安装完成其部署。 默认超时时间为 300 秒(5 分钟),但可以使用 --timeout 标志自定义。

dapr init -k --wait --timeout 600

您还可以指定特定的运行时版本。

dapr init -k --runtime-version 1.4.0

使用 --set 标志在 Dapr 安装期间配置一组 Helm 图表值 以帮助设置 Kubernetes 集群。

dapr init -k --set global.tag=1.0.0 --set dapr_operator.logLevel=error

您还可以指定一个私有注册表以从中拉取容器镜像。目前 dapr init -k 不使用 sentry、operator、placement、scheduler 和 sidecar 的特定镜像。它仅依赖于 Dapr 运行时容器镜像 dapr 来处理所有这些镜像。

场景 1:dapr 镜像直接托管在私有注册表的根文件夹下 -

dapr init -k --image-registry docker.io/username

场景 2:dapr 镜像托管在私有注册表的新/不同目录下 -

dapr init -k --image-registry docker.io/username/<directory-name>

9 - invoke CLI 命令参考

关于 invoke CLI 命令的详细信息

描述

调用指定 Dapr 应用程序的方法。

支持的平台

  • 自托管(即在本地或私有服务器上运行)

用法

dapr invoke [flags]

标志

名称 环境变量 默认值 描述
--app-id, -a APP_ID 目标应用程序的 ID
--help, -h 显示帮助信息
--method, -m 需要调用的方法名称
--data, -d JSON 格式的数据字符串(可选)
--data-file, -f 包含 JSON 格式数据的文件(可选)
--verb, -v POST 使用的 HTTP 请求方法

示例

# 使用 POST 请求方法调用目标应用的一个示例方法
dapr invoke --app-id target --method sample --data '{"key":"value"}'

# 使用 GET 请求方法调用目标应用的一个示例方法
dapr invoke --app-id target --method sample --verb GET

10 - list CLI 命令参考

关于 list CLI 命令的详细信息

描述

显示 Dapr 实例列表。

支持的平台

用法

dapr list [flags]

标志

名称 环境变量 默认值 描述
--all-namespaces, -A false 列出所有命名空间的 Dapr pods(可选)
--help, -h 显示帮助信息
--kubernetes, -k false 列出 Kubernetes 集群中的所有 Dapr pods(可选)
--namespace, -n default 列出 Kubernetes 指定命名空间的 Dapr pods。仅与 -k 标志一起使用(可选)
--output, -o table 列表的输出格式。有效值为:jsonyamltable

示例

# 列出本地托管模式下的 Dapr 实例
dapr list

# 列出 Kubernetes 模式下所有命名空间的 Dapr 实例
dapr list -k

# 以 JSON 格式列出 Dapr 实例
dapr list -o json

# 在 Kubernetes 模式下列出特定命名空间的 Dapr 实例
dapr list -k --namespace default

# 在 Kubernetes 模式下列出所有命名空间的 Dapr 实例
dapr list -k --all-namespaces

警告信息 - Kubernetes 环境

此命令可能会显示警告信息。

根证书更新警告

如果部署到 Kubernetes 集群的 mtls 根证书在 30 天内过期,将显示以下警告信息:

Kubernetes 集群的 Dapr 根证书将在 <n> 天内过期。到期日期:<date:time> UTC。
请参阅 docs.dapr.io 以获取证书更新说明,以避免服务中断。

11 - logs CLI 命令参考

关于 logs CLI 命令的详细信息

描述

获取应用程序的 Dapr sidecar 的日志。

支持的平台环境

用法

dapr logs [flags]

标志

名称 环境变量 默认值 描述
--app-id, -a APP_ID 需要获取日志的应用程序 ID
--help, -h 显示帮助信息
--kubernetes, -k true 从 Kubernetes 集群中获取日志
--namespace, -n default 部署应用程序的 Kubernetes 命名空间
--pod-name, -p Kubernetes 中 pod 的名称,如果应用程序有多个 pod(可选)

示例

# 从自定义命名空间中的目标 pod 获取示例应用的日志
dapr logs -k --app-id sample --pod-name target --namespace custom

警告信息

此命令可能会发出警告信息。

根证书更新警告

如果部署在 Kubernetes 集群中的 mTLS 根证书将在 30 天内过期,将显示以下警告信息:

您的 Kubernetes 集群的 Dapr 根证书将在 <n> 天后过期。到期日期:<date:time> UTC。
请访问 docs.dapr.io 查看证书更新说明,以避免服务中断。
``

12 - mtls CLI 命令参考

关于 mtls CLI 命令的详细信息

描述

检查 mTLS 是否已启用。

支持的平台

支持的平台包括 Kubernetes。

用法

dapr mtls [flags]
dapr mtls [command]

标志

名称 环境变量 默认值 描述
--help, -h 显示帮助信息
--kubernetes, -k false 检查 Kubernetes 集群是否启用了 mTLS

可用命令

expiry              检查根证书颁发机构 (CA) 证书的到期时间
export              将根证书颁发机构 (CA)、颁发者证书和颁发者密钥导出到本地文件
renew-certificate   更新现有的根证书颁发机构 (CA)、颁发者证书和颁发者密钥

命令参考

查看以下链接以获取每个子命令的详细信息。

示例

# 检查 Kubernetes 集群上是否启用了 mTLS
dapr mtls -k

警告信息

此命令可能会发出警告信息。

根证书更新警告

如果部署到 Kubernetes 集群的 mTLS 根证书将在 30 天内到期,将显示以下警告信息:

您的 Kubernetes 集群的 Dapr 根证书将在 <n> 天后到期。到期日期:<date:time> UTC。
请参阅 docs.dapr.io 以获取证书更新说明,以避免服务中断。

12.1 - mtls export CLI 命令参考

关于 mtls export CLI 命令的详细信息

描述

将根证书颁发机构(CA)、颁发者证书和密钥导出到本地文件中

适用平台

用法

dapr mtls export [flags]

标志

名称 环境变量 默认值 描述
--help, -h 导出命令的帮助信息
--out, -o 当前目录 证书保存的输出目录路径

示例

# 检查 Kubernetes 证书的到期时间
dapr mtls export -o ./certs

警告信息

此命令可能会发出警告信息。

根证书更新警告

如果部署到 Kubernetes 集群的 mtls 根证书在 30 天内到期,将显示以下警告信息:

您的 Kubernetes 集群的 Dapr 根证书将在 <n> 天后到期。到期日期:<date:time> UTC。
请访问 docs.dapr.io 获取证书更新说明,以避免服务中断。

12.2 - mtls expiry CLI 命令指南

mtls expiry CLI 命令的详细说明

描述

用于检查根证书颁发机构 (CA) 证书的有效期

支持的平台

用法

dapr mtls expiry [flags]

标志

名称 环境变量 默认值 描述
--help, -h 显示 expiry 的帮助信息

示例

# 查看 Kubernetes 证书的有效期
dapr mtls expiry

12.3 - mtls renew certificate CLI 命令参考

关于 mtls renew certificate CLI 命令的详细信息

描述

此命令用于更新即将到期的 Dapr 证书。例如,Dapr Sentry 服务会生成应用程序使用的默认根证书和颁发者证书。详情请参见安全的 Dapr 到 Dapr 通信

支持的平台

用法

dapr mtls renew-certificate [flags]

标志

名称 环境变量 默认值 描述
--help, -h renew-certificate 的帮助信息
--kubernetes, -k false 支持的平台
--valid-until 365 天 新创建证书的有效期
--restart false 重启 Dapr 控制平面服务(Sentry 服务、Operator 服务和 Placement 服务器)
--timeout 300 秒 证书更新过程的超时时间
--ca-root-certificate 用户提供的 PEM 根证书的文件路径
--issuer-public-certificate 用户提供的 PEM 颁发者证书的文件路径
--issuer-private-key 用户提供的 PEM 颁发者私钥的文件路径
--private-key 用户提供的用于生成根证书的 root.key 文件

示例

通过生成全新证书来更新证书

为 Kubernetes 集群生成新的根证书和颁发者证书,默认有效期为 365 天。证书不会立即应用于 Dapr 控制平面。

dapr mtls renew-certificate -k

为 Kubernetes 集群生成新的根证书和颁发者证书,默认有效期为 365 天,并重启 Dapr 控制平面服务。

dapr mtls renew-certificate -k --restart

为 Kubernetes 集群生成具有指定有效期的新的根证书和颁发者证书。

dapr mtls renew-certificate -k --valid-until <天数>

为 Kubernetes 集群生成具有指定有效期的新的根证书和颁发者证书,并重启 Dapr 控制平面服务。

dapr mtls renew-certificate -k --valid-until <天数> --restart

使用用户提供的证书更新证书

使用提供的 ca.pem、issuer.pem 和 issuer.key 文件路径为 Kubernetes 集群更新证书,并重启 Dapr 控制平面服务。

dapr mtls renew-certificate -k --ca-root-certificate <ca.pem> --issuer-private-key <issuer.key> --issuer-public-certificate <issuer.pem> --restart

使用提供的 ca.pem、issuer.pem 和 issuer.key 文件路径为 Kubernetes 集群更新证书。

dapr mtls renew-certificate -k --ca-root-certificate <ca.pem> --issuer-private-key <issuer.key> --issuer-public-certificate <issuer.pem>

使用提供的根私钥生成全新证书来更新证书

使用现有的私有 root.key 为 Kubernetes 集群生成新的根证书和颁发者证书,并设置指定的有效期。

dapr mtls renew-certificate -k --private-key myprivatekey.key --valid-until <天数>

使用现有的私有 root.key 为 Kubernetes 集群生成新的根证书和颁发者证书。

dapr mtls renew-certificate -k --private-key myprivatekey.key

13 - status CLI 命令参考

关于 status CLI 命令的详细信息

描述

显示 Dapr 服务的运行状态。

支持的平台类型

用法

dapr status -k

标志

名称 环境变量 默认值 描述
--help, -h 打印此帮助信息
--kubernetes, -k false 显示 Kubernetes 集群中 Dapr 服务的状态

示例

# 从 Kubernetes 获取 Dapr 服务的状态
dapr status -k

警告信息

此命令可能会发出警告信息。

根证书更新警告

如果部署到 Kubernetes 集群的 mtls 根证书在 30 天内过期,将显示以下警告信息:

Kubernetes 集群中的 Dapr 根证书将在 <n> 天后过期,具体到期日期为:<date:time> UTC。
请参阅 docs.dapr.io 以获取证书更新说明,以避免服务中断。

14 - stop CLI 命令参考

关于 stop CLI 命令的详细信息

描述

停止 Dapr 实例及其相关应用程序。

适用平台

用法

dapr stop [flags]

标志

名称 环境变量 默认值 描述
--app-id, -a APP_ID 要停止的应用程序 ID
--help, -h 显示帮助信息
--run-file, -f 使用多应用运行模板文件来同时停止多个应用程序。目前处于alpha阶段,仅在 Linux/MacOS 上可用

示例

# 停止 Dapr 应用程序
dapr stop --app-id <ID>

15 - version CLI 命令参考

显示 Dapr 运行时和 CLI 的版本信息。

描述

显示 dapr CLI 和 daprd 可执行文件的版本信息,可以选择普通格式或 JSON 格式。

支持的平台

用法

dapr version [flags]

标志

名称 环境变量 默认值 描述
--help, -h 显示此帮助信息
--output, -o 输出格式(选项:json)

示例

# 获取 Dapr CLI 和运行时的版本信息
dapr version --output json

相关信息

您可以通过运行 daprd --version 命令直接查看 daprd 的版本。

您也可以通过运行 dapr --version 命令获取普通格式的版本信息。

16 - 发布命令行工具参考

关于发布命令行工具的详细信息

描述

发布一个发布-订阅事件。

支持的平台

用法

dapr publish [flags]

参数

名称 环境变量 默认值 描述
--publish-app-id, -i 您要发布的应用程序的 ID
--pubsub, -p 发布-订阅组件的名称
--topic, -t 要发布的主题
--data, -d JSON 序列化的字符串(可选)
--data-file, -f 包含 JSON 序列化数据的文件(可选)
--help, -h 显示帮助信息
--metadata, -m JSON 序列化的发布元数据(可选)
--unix-domain-socket, -u Unix 域套接字的路径(可选)

示例

# 通过应用程序发布到目标发布-订阅系统中的示例主题
dapr publish --publish-app-id appId --topic sample --pubsub target --data '{"key":"value"}'

# 使用 Unix 域套接字通过应用程序发布到目标发布-订阅系统中的示例主题
dapr publish --enable-domain-socket --publish-app-id myapp --pubsub target --topic sample --data '{"key":"value"}'

# 通过应用程序在不使用云事件的情况下发布到目标发布-订阅系统中的示例主题
dapr publish --publish-app-id myapp --pubsub target --topic sample --data '{"key":"value"}' --metadata '{"rawPayload":"true"}'

17 - 配置 CLI 命令参考

关于配置 CLI 命令的详细信息

描述

显示所有的 Dapr 配置项。

支持的平台

用法

dapr configurations [flags]

标志

名称 环境变量 默认值 描述
--kubernetes, -k false 列出 Kubernetes 集群中的所有 Dapr 配置(必选项)。
--all-namespaces, -A true 若选择此项,则列出所有命名空间中的所有 Dapr 配置(可选)。
--namespace 列出特定命名空间中的 Dapr 配置。
--name, -n 打印特定的 Dapr 配置。(可选)
--output, -o list 输出格式(选项:json 或 yaml 或 list)
--help, -h 打印此帮助信息

示例

# 在 Kubernetes 模式下列出所有命名空间中的 Dapr 配置
dapr configurations -k

# 在 Kubernetes 模式下列出特定命名空间中的 Dapr 配置
dapr configurations -k --namespace default

# 在 Kubernetes 模式下打印特定的 Dapr 配置
dapr configurations -k -n appconfig

# 在 Kubernetes 模式下列出所有命名空间中的 Dapr 配置
dapr configurations -k --all-namespaces

警告信息

此命令可能会显示警告信息。

根证书更新警告

如果部署到 Kubernetes 集群的 mtls 根证书在 30 天内过期,将显示以下警告信息:

您的 Kubernetes 集群的 Dapr 根证书将在 <n> 天后过期。到期日期:<date:time> UTC。
请访问 docs.dapr.io 查看证书更新说明,以避免服务中断。

18 - 升级 CLI 命令参考

关于升级 CLI 命令的详细信息

描述

在支持的托管平台上升级或回退 Dapr。

支持的平台

用法

dapr upgrade [flags]

标志

名称 环境变量 默认值 描述
--help, -h 显示帮助信息
--kubernetes, -k false 在 Kubernetes 集群中升级/回退 Dapr
--runtime-version latest 要升级/回退到的 Dapr 运行时版本,例如:1.0.0
--set 在命令行上设置值(可以指定多个值或用逗号分隔:key1=val1,key2=val2)
--image-registry 从指定的镜像注册表中拉取 Dapr 所需的容器镜像

示例

# 在 Kubernetes 中将 Dapr 升级到最新版本
dapr upgrade -k

# 在 Kubernetes 中升级或回退到指定版本的 Dapr 运行时
dapr upgrade -k --runtime-version 1.2

# 在 Kubernetes 中升级或回退到指定版本的 Dapr 运行时并设置值
dapr upgrade -k --runtime-version 1.2 --set global.logAsJson=true
# 使用私有注册表进行升级或回退,如果您在托管 Dapr 镜像时使用了私有注册表并在执行 `dapr init -k` 时使用了它
# 场景 1:Dapr 镜像直接托管在私有注册表的根目录下 -
dapr init -k --image-registry docker.io/username
# 场景 2:Dapr 镜像托管在私有注册表的不同目录下 -
dapr init -k --image-registry docker.io/username/<directory-name>

警告信息

此命令可能会发出警告信息。

根证书更新警告

如果部署到 Kubernetes 集群的 mtls 根证书将在 30 天内过期,则会显示以下警告信息:

您的 Kubernetes 集群的 Dapr 根证书将在 <n> 天后过期。到期日期:<date:time> UTC。
请参阅 docs.dapr.io 以获取证书更新说明,以避免服务中断。

相关链接

19 - 卸载 CLI 命令参考

关于卸载 CLI 命令的详细信息

描述

卸载 Dapr 运行环境。

支持的平台

用法

dapr uninstall [flags]

标志

名称 环境变量 默认值 描述
--all false 移除 Redis、Zipkin 容器以及默认 Dapr 目录(位于 $HOME/.dapr%USERPROFILE%\.dapr\),但保留调度服务和 actor 放置服务容器。
--help, -h 显示帮助信息
--kubernetes, -k false 从 Kubernetes 集群中卸载 Dapr
--namespace, -n dapr-system 从指定的 Kubernetes 命名空间卸载 Dapr
--container-runtime docker 指定使用 Docker 以外的容器运行时。支持的选项包括:dockerpodman

示例

从自托管模式卸载

dapr uninstall

您还可以使用 --all 选项来移除 .dapr 目录、Redis、Placement、Scheduler 和 Zipkin 容器

dapr uninstall --all

在配置 Dapr 时,您可以指定不同的容器运行时。如果省略 --container-runtime 标志,默认使用 Docker。

dapr uninstall --all --container-runtime podman

从 Kubernetes 卸载

dapr uninstall -k

20 - 运行 CLI 命令参考

关于运行 CLI 命令的详细信息

描述

运行 Dapr,并且可以选择同时运行您的应用程序。完整的 daprd 参数、CLI 参数和 Kubernetes 注释的对比列表可以在这里找到。

支持的平台

用法

dapr run [flags] [command]

标志

名称 环境变量 默认值 描述
--app-id, -a APP_ID 您的应用程序的 ID,用于服务发现。不能包含点。
--app-max-concurrency unlimited 应用程序的并发级别;默认是无限制
--app-port, -p APP_PORT 您的应用程序正在监听的端口
--app-protocol, -P http Dapr 用于与应用程序通信的协议。有效值为:httpgrpchttps(带 TLS 的 HTTP)、grpcs(带 TLS 的 gRPC)、h2c(HTTP/2 明文)
--resources-path, -d Linux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
资源目录的路径。如果您已将资源组织到多个文件夹中(例如,一个文件夹中的组件,另一个文件夹中的弹性策略),您可以定义多个资源路径。请参见下面的示例
--app-channel-address 127.0.0.1 应用程序监听的网络地址
--runtime-path Dapr 运行时安装路径
--config, -c Linux/Mac: $HOME/.dapr/config.yaml
Windows: %USERPROFILE%\.dapr\config.yaml
Dapr 配置文件
--dapr-grpc-port, -G DAPR_GRPC_PORT 50001 Dapr 监听的 gRPC 端口
--dapr-internal-grpc-port, -I 50002 Dapr 内部 API 监听的 gRPC 端口。用于开发期间解决 mDNS 缓存导致的服务调用失败问题,或配置防火墙后面的 Dapr sidecar。可以是大于 1024 的任何值,并且每个应用程序必须不同。
--dapr-http-port, -H DAPR_HTTP_PORT 3500 Dapr 监听的 HTTP 端口
--enable-profiling false 通过 HTTP 端点启用 “pprof” 性能分析
--help, -h 打印帮助信息
--run-file, -f Linux/MacOS: $HOME/.dapr/dapr.yaml 使用多应用程序运行模板文件同时运行多个应用程序。目前处于alpha阶段,仅在 Linux/MacOS 上可用
--image 使用自定义 Docker 镜像。格式为 Docker Hub 的 repository/image,或自定义注册表的 example.com/repository/image
--log-level info 日志详细程度。有效值为:debuginfowarnerrorfatalpanic
--enable-api-logging false 启用从应用程序到 Dapr 的所有 API 调用的日志记录
--metrics-port DAPR_METRICS_PORT 9090 Dapr 发送其指标信息的端口
--profile-port 7777 配置文件服务器监听的端口
--placement-host-address Linux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
在 Docker 网络中的任何容器中运行。使用 <hostname><hostname>:<port>。如果省略端口,默认值为:
  • Linux/MacOS: 50005
  • Windows: 6050
--scheduler-host-address Linux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
在 Docker 网络中的任何容器中运行。使用 <hostname><hostname>:<port>。如果省略端口,默认值为:
  • Linux/MacOS: 50006
  • Windows: 6060
--enable-app-health-check false 使用 app-protocol 定义的协议启用应用程序的健康检查
--app-health-check-path 用于健康检查的路径;仅限 HTTP
--app-health-probe-interval 以秒为单位探测应用程序健康状况的间隔
--app-health-probe-timeout 应用程序健康探测的超时时间,以毫秒为单位
--app-health-threshold 应用程序被视为不健康的连续失败次数
--unix-domain-socket, -u Unix 域套接字目录挂载的路径。如果指定,与 Dapr sidecar 的通信使用 Unix 域套接字,与使用 TCP 端口相比,具有更低的延迟和更高的吞吐量。在 Windows 上不可用。
--dapr-http-max-request-size 4 请求体的最大大小,以 MB 为单位。
--dapr-http-read-buffer-size 4 HTTP 读取缓冲区的最大大小,以 KB 为单位。这也限制了 HTTP 头的最大大小。默认值为 4 KB
--kubernetes, -k 在 Kubernetes 上运行 Dapr,并用于 Kubernetes 上的多应用程序运行模板文件
--components-path, -d Linux/Mac: $HOME/.dapr/components
Windows: %USERPROFILE%\.dapr\components
已弃用,建议使用 --resources-path

示例

# 运行一个 .NET 应用程序
dapr run --app-id myapp --app-port 5000 -- dotnet run

# 使用 Unix 域套接字运行一个 .Net 应用程序
dapr run --app-id myapp --app-port 5000 --unix-domain-socket /tmp -- dotnet run

# 运行一个 Java 应用程序
dapr run --app-id myapp -- java -jar myapp.jar

# 运行一个监听端口 3000 的 NodeJs 应用程序
dapr run --app-id myapp --app-port 3000 -- node myapp.js

# 运行一个 Python 应用程序
dapr run --app-id myapp -- python myapp.py

# 仅运行 sidecar
dapr run --app-id myapp

# 运行一个用 Go 编写的 gRPC 应用程序(监听端口 3000)
dapr run --app-id myapp --app-port 5000 --app-protocol grpc -- go run main.go

# 运行一个启用 API 日志记录的监听端口 3000 的 NodeJs 应用程序
dapr run --app-id myapp --app-port 3000 --enable-api-logging  -- node myapp.js

# 传递多个资源路径
dapr run --app-id myapp --resources-path path1 --resources-path path2

# 运行多应用程序运行模板文件
dapr run -f dapr.yaml

# 在 Kubernetes 上运行多应用程序运行模板文件
dapr run -k -f dapr.yaml