使用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每次都去镜像仓库拉取镜像,但需确保该镜像已经上传至仓库。
|
使用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`的证书。
它还可用来从 |
完成填写后,点击[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次/小时,付费用户无限制。 |