3.5.6.2. 例子
3.5.6.2.1. 默认 odo 链接
在以下示例中,后端组件使用默认的 odo link
命令与 PostgreSQL 服务相关联。对于后端组件,请确定您的组件和服务被推送到集群:
$ odo list
输出示例
APP NAME PROJECT TYPE STATE MANAGED BY ODO app backend myproject spring Pushed Yes
$ odo service list
输出示例
NAME MANAGED BY ODO STATE AGE PostgresCluster/hippo Yes (backend) Pushed 59m41s
现在,运行 odo link
将后端组件与 PostgreSQL 服务链接:
$ odo link PostgresCluster/hippo
输出示例
✓ Successfully created link between component "backend" and service "PostgresCluster/hippo" To apply the link, please use `odo push`
然后,运行 odo push
在 Kubernetes 集群中实际创建链接。
在 odo push
成功后,您会看到几个结果:
当您打开由 backend 组件部署的应用程序的 URL 时,它会显示数据库中的
todo
列表。例如,在odo url list
命令的输出中,会列出todos
的路径:$ odo url list
输出示例
Found the following URLs for component backend NAME STATE URL PORT SECURE KIND 8080-tcp Pushed http://8080-tcp.192.168.39.112.nip.io 8080 false ingress
URL 的正确路径为 http://8080-tcp.192.168.39.112.nip.io/api/v1/todos。确切的 URL 取决于您的设置。另请注意,除非添加一些,否则数据库中也没有
todos
,因此 URL 可能会只显示空的 JSON 对象。您可以查看与 Postgres 服务注入后端组件相关的绑定信息。默认情况下,此绑定信息作为环境变量注入。您可以在后端组件的目录中使用
odo describe
命令检查它:$ odo describe
输出示例:
Component Name: backend Type: spring Environment Variables: · PROJECTS_ROOT=/projects · PROJECT_SOURCE=/projects · DEBUG_PORT=5858 Storage: · m2 of size 3Gi mounted to /home/user/.m2 URLs: · http://8080-tcp.192.168.39.112.nip.io exposed via 8080 Linked Services: · PostgresCluster/hippo Environment Variables: · POSTGRESCLUSTER_PGBOUNCER-EMPTY · POSTGRESCLUSTER_PGBOUNCER.INI · POSTGRESCLUSTER_ROOT.CRT · POSTGRESCLUSTER_VERIFIER · POSTGRESCLUSTER_ID_ECDSA · POSTGRESCLUSTER_PGBOUNCER-VERIFIER · POSTGRESCLUSTER_TLS.CRT · POSTGRESCLUSTER_PGBOUNCER-URI · POSTGRESCLUSTER_PATRONI.CRT-COMBINED · POSTGRESCLUSTER_USER · pgImage · pgVersion · POSTGRESCLUSTER_CLUSTERIP · POSTGRESCLUSTER_HOST · POSTGRESCLUSTER_PGBACKREST_REPO.CONF · POSTGRESCLUSTER_PGBOUNCER-USERS.TXT · POSTGRESCLUSTER_SSH_CONFIG · POSTGRESCLUSTER_TLS.KEY · POSTGRESCLUSTER_CONFIG-HASH · POSTGRESCLUSTER_PASSWORD · POSTGRESCLUSTER_PATRONI.CA-ROOTS · POSTGRESCLUSTER_DBNAME · POSTGRESCLUSTER_PGBOUNCER-PASSWORD · POSTGRESCLUSTER_SSHD_CONFIG · POSTGRESCLUSTER_PGBOUNCER-FRONTEND.KEY · POSTGRESCLUSTER_PGBACKREST_INSTANCE.CONF · POSTGRESCLUSTER_PGBOUNCER-FRONTEND.CA-ROOTS · POSTGRESCLUSTER_PGBOUNCER-HOST · POSTGRESCLUSTER_PORT · POSTGRESCLUSTER_ROOT.KEY · POSTGRESCLUSTER_SSH_KNOWN_HOSTS · POSTGRESCLUSTER_URI · POSTGRESCLUSTER_PATRONI.YAML · POSTGRESCLUSTER_DNS.CRT · POSTGRESCLUSTER_DNS.KEY · POSTGRESCLUSTER_ID_ECDSA.PUB · POSTGRESCLUSTER_PGBOUNCER-FRONTEND.CRT · POSTGRESCLUSTER_PGBOUNCER-PORT · POSTGRESCLUSTER_CA.CRT
其中一些变量在后端组件的
src/main/resources/application.properties
文件中使用,以便 Java Spring Boot 应用程序可以连接到 PostgreSQL 数据库服务。最后,
odo
在后端组件的目录中创建一个名为kubernetes/
的目录,其中包含以下文件:$ ls kubernetes odo-service-backend-postgrescluster-hippo.yaml odo-service-hippo.yaml
这些文件包含两个资源的信息(YAML 清单):
-
odo-service-hippo.yaml
- 使用odo service create --from-file ../postgrescluster.yaml
命令创建的 Postgres 服务。 -
odo-service-backend-postgrescluster-hippo.yaml
- 使用odo link
命令创建的链接。
-