Docs

Documentation versions (currently viewingVaadin 24)
Documentation translations (currently viewingChinese)

此页面为官方文档的机器翻译版本,官方文档位于 http://vaadin.com/docs。其中可能存在错误、不准确或误述。Vaadin 不保证此翻译的准确性、可靠性或时效性,也未就此作出任何陈述。

使用Control Center部署应用程序

如何使用Control Center的应用程序发现功能。

Control Center 让您能够轻松地将Vaadin应用程序部署到Kubernetes集群中,它将提供所需的资源并连接至诸如身份提供者等服务。本页面介绍使用Control Center准备和部署Vaadin应用程序的具体步骤。

在开始部署前,需要通过添加Control Center Starter依赖项来准备应用程序。然后为应用程序构建Docker镜像。您将必须通过Control Center的用户界面进行应用程序部署。

Control Center Starter依赖项

若要确保你的应用程序能与Control Center集成,请添加`control-center-starter`依赖项到你的Maven项目中。添加此依赖项后,Control Center便能管理和监控你的Vaadin应用程序。

将以下内容加入你的[filename]`pom.xml`文件:

Source code
XML
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>control-center-starter</artifactId>
</dependency>

如果你使用的是Vaadin的BOM(物料清单),则无需指定此依赖的版本,因为它会统一管理所有Vaadin依赖项的版本。

一旦添加依赖项,使用以下命令为应用程序进行生产构建:

Source code
shell
mvn -Pproduction package

此命令将生成一个用于生产的`.jar`文件,它在后续步骤中用于创建Docker镜像。

构建Docker镜像

想要将应用程序部署至Kubernetes集群,你需要创建一个Docker镜像。在项目根目录下创建一个名为`Dockerfile`的文件,内容如下:

Source code
docker
FROM eclipse-temurin:21-jre
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

接着,使用以下命令构建Docker镜像:

Source code
shell
docker build -t my-app:dev .

需要注意的是镜像标签`my-app:dev`在后续Control Center部署过程中有重要作用。

Tip
发布版本时通常使用应用程序的版本号作为镜像标签(例如,my-app:1.0)。同时也常用`latest`标签表示最新的发布版本。使用`latest`标签可强制Kubernetes每次都去镜像仓库拉取镜像,但需确保该镜像已经上传至仓库。

发布至容器镜像仓库

如果你在部署到远程Kubernetes集群前,需先将Docker镜像推送到容器镜像仓库,以便Kubernetes集群能够从该仓库获取镜像进行部署。执行该操作前请确保你已有Docker账户,并且镜像已使用正确的命名空间进行标记(例如,company/my-app:dev)。

Source code
终端
docker push company/my-app:dev

本地开发环境

如果你在使用本地Kubernetes集群进行开发,你可能需要额外的步骤以便未发布的镜像可在本地集群中被拉取。当使用Docker Desktop的Kubernetes时通常无需此步骤,因为它可以直接从本地Docker守护进程获取镜像。

Source code
终端
minikube image load my-app:dev
终端
终端
终端
终端
终端

使用Control Center进行部署

完成Docker镜像准备后,接下来即可在Control Center中进行部署。

前往Control Center中的[guibutton]Applications(应用程序)部分,在应用程序发现面板右上角点击[guibutton]New(新建)按钮。

应用程序部署

在右侧[guibutton]Deploy(部署)面板(如下截图所示)填写以下字段:

  • Application Name:给你的应用程序取一个有意义的名称(例如,My App)。

  • Image:输入Docker镜像名称,包括镜像仓库名和版本标签(例如,repository/app:version)。若你的镜像仓库为私有,可打开[guilabel]*Needs Pull Secret*选项并指定用以访问的鉴权密钥名。

  • Replicas:指定运行的实例数量,默认值为`1`。

  • Startup Delay (secs):指定启动探测前的延迟秒数,若应用启动耗时较长则此选项很有用。

  • Environment Variables:为应用程序添加所需的环境变量。

  • Hostname:设置访问应用程序的外部URL(例如,http://app.example.com)。如需有关如何选择合适的主机名,请参见主机名规范

  • Certificate:选择应用程序使用的证书;使用[guilabel]Generate(生成)可创建新证书,使用[guilabel]Upload(上传)可使用现有证书文件。

  • Features:根据需要启用其他功能。

Note

Control Center 采用 cert-manager 来生成及签署用于`http`的证书。 它还可用来从 Let’s Encrypt 生成有效的ACME证书并自动续期。更多详情,请参阅 cert-manager 官方文档

完成填写后,点击[guibutton]Deploy(部署)。

Control Center将应用程序部署至Kubernetes集群,创建所需资源并处理负载均衡、服务发现等配置任务。

使用认证用户拉取镜像

当你的应用程序镜像需要通过认证时,可以提供名为`docker-registry`类型的Kubernetes密钥。开启部署界面中的[guilabel]*Needs Pull Secret*后,将该密钥名称填入*Image Pull Secret*字段。

例如,若在名为`control-center`的命名空间中创建名为`my-docker-credentials`的密钥,可执行以下命令:

Source code
shell
kubectl -n control-center create secret docker-registry my-docker-credentials \
--docker-server='http://docker.io' \
--docker-username=example@vaadin.com \
--docker-password=example_password \
--docker-email=example@vaadin.com

若需要更改密钥内容,删除该密钥并重新创建:

Source code
shell
kubectl -n control-center delete secret my-docker-credentials
Note
Docker 于2025年2月21日 宣布 自同年4月1日起,未认证用户每小时拉取镜像次数将受限为10次。免费认证用户为100次/小时,付费用户无限制。

环境变量

可通过单击[guibutton]*Environment Variables*管理应用程序所需的环境变量设置。一些环境变量为关键变量无法修改或移除。环境变量变更会触发重新部署更新新值。

访问应用程序

部署完成后,通过指定的主机名即可访问应用程序,比如`http://app.example.com`(云环境)或者`http://app.local`(本地环境)。

你的应用程序现已部署完毕,并连接至Control Center所配置的资源与服务。

后续步骤

成功部署应用后,你即可在Control Center的仪表板中管理应用。使用[guibutton]*Application Selector*选择你的应用进行管理。

应用程序选择器

选择应用后,可进行以下管理操作:

  • 身份管理:创建用户、配置用户组与角色和集成身份提供者。

  • 本地化:上传并管理多个语言版本的翻译文件,为用户提供本地化体验。

请探索Control Center其他功能以进一步定制、优化应用于Kubernetes集群。