init CLI 命令参考

init CLI 命令的详细信息

说明

在支持的托管平台上安装 Dapr。

支持的平台

用法

dapr init [flags]

标志

名称环境变量默认值描述
--dashboard-versionlatest要安装的 Dapr 仪表板的版本,例如:1.0.0
--enable-hafalse启用高可用(HA)模式
--enable-mtlstrue在集群中启用 mTLS
--from-dir包含下载的"Dapr 安装程序包"版本的本地目录路径,用于在离线环境中 init
--help, -h打印此帮助信息
--image-registry从给定的镜像仓库拉取 Dapr 所需的容器镜像
--kubernetes, -kfalse将 Dapr 部署到 Kubernetes 集群
--namespace, -ndapr-system安装 Dapr 的 Kubernetes 命名空间
--network在其上安装和部署 Dapr 运行时的 Docker 网络
--runtime-versionlatest要安装的 Dapr 运行时版本,例如:1.0.0
--image-variant用于 Dapr 运行时的镜像变体,例如:mariner
--set在命令行上配置选项,以便在安装时传递给 Dapr Helm chart 和 Kubernetes 集群。可以在逗号分隔的列表中指定多个值,例如:key1=val1,key2=val2
--slim, -sfalse在自托管安装中排除 placement 服务、scheduler 服务以及 Redis 和 Zipkin 容器
--timeout300Kubernetes 安装的等待超时时间
--waitfalse等待 Kubernetes 初始化完成
N/ADAPR_DEFAULT_IMAGE_REGISTRY用于指定默认容器仓库以拉取镜像。当其值设置为 GHCRghcr 时,它将从 Github 容器仓库拉取所需镜像。要默认使用 Docker Hub,请取消设置该环境变量或将其留空
N/ADAPR_HELM_REPO_URL指定私有 Dapr Helm chart url
N/ADAPR_HELM_REPO_USERNAME私有 Helm chart 的用户名访问私有 Dapr Helm chart 所需的用户名。如果可以公开访问,则无需设置此环境变量
N/ADAPR_HELM_REPO_PASSWORD私有 Helm chart 的密码访问私有 Dapr Helm chart 所需的密码。如果可以公开访问,则无需设置此环境变量
--container-runtimedocker用于传入除 Docker 之外的不同容器运行时。支持的容器运行时包括:dockerpodman
--dev在 Kubernetes 中运行时创建 Redis 和 Zipkin 部署。
--scheduler-volume仅限自托管。可选地,您可以为 scheduler 服务数据目录指定一个卷。默认情况下,如果不使用此标志,scheduler 数据不会持久化,并且对重启没有弹性。
--scheduler-override-broadcast-host-portlocalhost:50006 (Windows 为 6060)仅限自托管。指定 scheduler 广播主机和端口,例如:192.168.42.42:50006。

示例

安装

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

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

dapr init

Dapr 也可以在没有 Docker 的情况下运行 Slim 自托管模式

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 <installer-bundle-directory-path>

Dapr 也可以在网络隔离环境中的 slim 自托管模式下运行,而无需 Docker。

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

指定私有仓库

您还可以指定私有仓库来拉取容器镜像。这些镜像需要发布到私有仓库,如下所示,以使 Dapr CLI 能够通过 dapr init 命令成功拉取它们:

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

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

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

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

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

  1. Placement 容器镜像- docker.io/username/dapr/dapr:
  2. Redis 容器镜像- docker.io/username/dapr/3rdparty/rejson
  3. 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

指定 scheduler 广播主机和端口

您可以指定 scheduler 广播主机和端口,例如:192.168.42.42:50006。

当您必须使用不同的主机和端口连接到 scheduler 时,这是必要的,因为 scheduler 只允许与此主机和端口匹配的连接。

默认情况下,scheduler 将使用 localhost:50006(Windows 为 6060)。

dapr init --scheduler-override-broadcast-host-port 192.168.42.42:50006
dapr init -k

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

dapr init -k --dev

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

dapr init -k --wait --timeout 600

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

dapr init -k --runtime-version 1.4.0

使用 --set 标志在 Dapr 安装期间配置一组 Helm Chart 值,以帮助设置 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>