开始

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

5. 系统要求

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

6. 安装 Skipper

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

  • 在终端会话中使用以下命令下载 Skipper 服务器和 shell 应用程序:spring-doc.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
  • 在终端会话中使用以下命令启动下载的服务器和 shell 应用程序:spring-doc.cn

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

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

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

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

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

7. 三秒之旅

Skipper 的默认配置将应用程序部署到本地计算机。 默认配置还有一个名为 的本地存储库,您可以在其中上传包。 您可以使用命令获取软件包存储库的列表,如以下示例中所示(及其输出):localrepo listspring-doc.cn

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

使用 或其 alias 命令搜索可用的包。 以下示例显示了该命令及其典型输出:package searchpackage listpackage searchspring-doc.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.   ║
╚═════════════════╧═══════╧════════════════════════════════════════════════════════════════════════════════╝

使用命令安装基于 Maven 的 Hello World 应用程序。 由于此应用程序默认为 HTTP 服务器选择一个随机端口,因此我们指定 Spring Boot 属性 ,前缀为 。 前缀是由于模板文件的内部格式。 以下示例显示了整个命令及其输出:package installserver.portspec.applicationPropertiesspring-doc.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.

现在,您可以卷曲终端节点,如下所示:greetingspring-doc.cn

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

版本名称 ,用于后续命令,例如 ,或 。helloworld-localrelease statusrelease upgraderelease deletespring-doc.cn

要查看发布的状态,请使用命令,如以下示例中所示(及其输出):release statusspring-doc.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]║
╚═══════════════╧═════════════════════════════════════════════════════════════════════════════════════╝

现在我们可以升级版本。 该包引用一个新发布的应用程序,该应用程序将问候语的默认值更改为 in 。 以下示例显示了一个典型的命令及其输出:1.0.1Portugueserelease upgradespring-doc.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 statusspring-doc.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]║
╚═══════════════╧═════════════════════════════════════════════════════════════════════════════════════╝

现在,您可以在新端口上卷曲终端节点,并查看应用程序已更新,如下所示:greetingspring-doc.cn

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

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

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

您还可以将其他名为 的软件包部署到本地计算机。helloworld-dockerspring-doc.cn

本节中的示例显示了最基本的操作。 其他有趣的命令(如 、 、 和 )在 三分钟教程 中介绍。manifest getrelease rollbackrelease listrelease historyspring-doc.cn