开始

本节介绍除了使用 Skipper 安装示例应用程序之外,在本地计算机上安装 Skipper 的最小步骤。 这是“三秒钟的游览”。 完成本节后,您可以继续进行 3 分钟导览。 当您准备好更深入地潜水时,请前往“三小时游览”部分,使用 Skipper。 (嗯,这并不是真正的三个小时......

5. 系统要求

Skipper 服务器是一个 Spring Boot 应用程序。 服务器和 shell 都基于 Java 8。 服务器使用 RDBMS 来存储状态。 如果不通过 Spring Boot 配置属性提供数据源配置,则使用嵌入式 H2 数据库。 支持的数据库包括 H2、HSQLDB、MySQL、Oracle、Postgresql、DB2 和 SqlServer。 架构是在服务器启动时创建的spring-doc.cadn.net.cn

6. 安装 Skipper

本节介绍如何在本地计算机上安装 Skipper,因为这是最简单的入门方法。 安装 部分讨论了在 Cloud Foundry 和 Kubernetes 上安装。 它还显示了用于在本地计算机上安装的其他选项。spring-doc.cadn.net.cn

wget http://repo.spring.io/5/org/springframework/cloud/spring-cloud-skipper-server/2.11.5/spring-cloud-skipper-server-2.11.5.jar

wget http://repo.spring.io/5/org/springframework/cloud/spring-cloud-skipper-shell/2.11.5/spring-cloud-skipper-shell-2.11.5.jar
java -jar spring-cloud-skipper-server-2.11.5.jar

java -jar spring-cloud-skipper-shell-2.11.5.jar

服务器侦听的默认端口是 7577。那是SKPR在电话键盘上。:)spring-doc.cadn.net.cn

dockerhub 上还托管了一个 docker 镜像spring-doc.cadn.net.cn

现在安装一些应用程序!spring-doc.cadn.net.cn

7. 三秒之旅

Skipper 的默认配置将应用程序部署到本地计算机。 默认配置还有一个名为local,您可以在其中上传包。 您可以使用命令repo list,如以下示例中所示(及其输出):spring-doc.cadn.net.cn

skipper:>repo list
╔════════════╤═══════════════════════════════════════════════════════════╤═════╤═════╗
║    Name    │                            URL                            │Local│Order║
╠════════════╪═══════════════════════════════════════════════════════════╪═════╪═════╣
║local       │https://10.55.13.45:7577                                    │true │1    ║
╚════════════╧═══════════════════════════════════════════════════════════╧═════╧═════╝

使用package search或其别名package list命令。 以下示例显示了package search命令及其典型输出:spring-doc.cadn.net.cn

skipper:>package search
╔═════════════════╤═══════╤════════════════════════════════════════════════════════════════════════════════╗
║      Name       │Version│                                  Description                                   ║
╠═════════════════╪═══════╪════════════════════════════════════════════════════════════════════════════════╣
║helloworld       │1.0.1  │The app has two endpoints, /about and /greeting in Portuguese.  Maven resource. ║
║helloworld       │1.0.0  │The app has two endpoints, /about and /greeting in English.  Maven resource.    ║
║helloworld-docker│1.0.1  │The app has two endpoints, /about and /greeting in Portuguese.  Docker resource.║
║helloworld-docker│1.0.0  │The app has two endpoints, /about and /greeting in English.  Docker resource.   ║
╚═════════════════╧═══════╧════════════════════════════════════════════════════════════════════════════════╝

使用package install命令。 由于此应用程序默认为 HTTP 服务器选择一个随机端口,因此我们指定 Spring Boot 属性server.port,前缀为spec.applicationProperties. 前缀是由于模板文件的内部格式。 以下示例显示了整个命令及其输出:spring-doc.cadn.net.cn

skipper:>package install --release-name helloworld-local --package-name helloworld --package-version 1.0.0 --properties spec.applicationProperties.server.port=8099
Released helloworld-local. Now at version v1.

您现在可以卷曲greetingendpoint,如下所示:spring-doc.cadn.net.cn

$ curl http://localhost:8099/greeting
Hello World!

版本名称helloworld-local用于后续命令,例如release status,release upgraderelease delete.spring-doc.cadn.net.cn

要查看版本的状态,请使用release status命令,如以下示例所示(及其输出):spring-doc.cadn.net.cn

skipper:>release status --release-name helloworld-local
╔═══════════════╤═════════════════════════════════════════════════════════════════════════════════════╗
║Last Deployed  │Fri Oct 27 16:17:53 IST 2017                                                         ║
║Status         │DEPLOYED                                                                             ║
║Platform Status│All applications have been successfully deployed.                                    ║
║               │[helloworld-local.helloworld-v1], State = [helloworld-local.helloworld-v1-0=deployed]║
╚═══════════════╧═════════════════════════════════════════════════════════════════════════════════════╝

现在我们可以升级版本。 这1.0.1package 是指新发布的应用程序,该应用程序将问候语的默认值更改为Portuguese. 以下示例显示了一个典型的release upgrade命令及其输出:spring-doc.cadn.net.cn

skipper:>release upgrade --release-name helloworld-local --package-name helloworld --package-version 1.0.1  --properties spec.applicationProperties.server.port=8100
helloworld-local has been upgraded.  Now at version v2.

前面的示例命令部署新版本的应用程序,等待它正常运行,然后销毁旧版本的应用程序。 然后,您可以使用release status命令,如下所示:spring-doc.cadn.net.cn

skipper:>release status --release-name helloworld-local
╔═══════════════╤═════════════════════════════════════════════════════════════════════════════════════╗
║Last Deployed  │Fri Oct 27 16:20:07 IST 2017                                                         ║
║Status         │DEPLOYED                                                                             ║
║Platform Status│All applications have been successfully deployed.                                    ║
║               │[helloworld-local.helloworld-v2], State = [helloworld-local.helloworld-v2-0=deployed]║
╚═══════════════╧═════════════════════════════════════════════════════════════════════════════════════╝

您现在可以卷曲greetingendpoint 并看到应用程序已更新,如下所示:spring-doc.cadn.net.cn

$ curl http://localhost:8100/greeting
Olá Mundo!

要删除发行版,请使用delete命令,如以下示例所示(及其输出):spring-doc.cadn.net.cn

skipper:>release delete --release-name helloworld-local
helloworld-local has been deleted.
在此示例中,升级仅更改了应用程序的一个属性,因此不现实。 一个更现实的例子是代码已更改,因此更新的应用程序的行为不同。

您还可以部署名为helloworld-docker添加到本地计算机。spring-doc.cadn.net.cn

本节中的示例显示了最基本的作。 其他有趣的命令,例如manifest get,release rollback,release listrelease history包含在 Three minute Tour 中。spring-doc.cadn.net.cn