3.5.6.2. 예제
3.5.6.2.1. 기본 odo link
다음 예에서 백엔드 구성 요소는 기본 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 링크를
실행하여 백엔드 구성 요소를 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
가 성공하면 다음과 같은 몇 가지 결과가 나타납니다.
백엔드 구성 요소에서 배포한 애플리케이션의 URL을 열면 데이터베이스에 할 일
항목
목록이 표시됩니다. 예를 들어odo url list
명령의 출력에서 polkit이나열되는
경로가 포함됩니다.$ 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 서비스와 관련된 바인딩 정보를 확인할 수 있습니다. 이 바인딩 정보는 기본적으로 환경 변수로 삽입됩니다. backend 구성 요소의 디렉터리에서
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
명령을 사용하여 생성된 링크입니다.
-