Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

17.2.2. 2 단계: 서비스 사용

서비스 및 끝점이 정의되었으므로 적절한 컨테이너에서 환경 변수를 설정하여 서비스를 사용할 자격 증명에 적절한 Pod 액세스 권한을 부여합니다.

kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
  name: "my-app-deployment"
spec: 1
  strategy:
    type: "Rolling"
    rollingParams:
      updatePeriodSeconds: 1 2
      intervalSeconds: 1 3
      timeoutSeconds: 120
  replicas: 2
  selector:
    name: "frontend"
  template:
    metadata:
      labels:
        name: "frontend"
    spec:
      containers:
        -
          name: "helloworld"
          image: "origin-ruby-sample"
          ports:
            -
              containerPort: 3306
              protocol: "TCP"
          env:
            -
              name: "MYSQL_USER"
              value: "${MYSQL_USER}" 4
            -
              name: "MYSQL_PASSWORD"
              value: "${MYSQL_PASSWORD}" 5
            -
              name: "MYSQL_DATABASE"
              value: "${MYSQL_DATABASE}" 6
1
DeploymentConfig 의 다른 필드는 생략됨
2
개별 Pod 업데이트 사이에 대기하는 시간입니다.
3
업데이트 후 배포 상태를 폴링할 때까지 대기하는 시간입니다.
4
서비스와 함께 사용할 사용자 이름입니다.
5
서비스에 사용할 암호입니다.
6
데이터베이스 이름입니다.

외부 데이터베이스 환경 변수

애플리케이션에서 외부 서비스를 사용하는 것은 내부 서비스를 사용하는 것과 유사합니다. 애플리케이션에는 서비스에 대한 환경 변수와 이전 단계에서 설명하는 자격 증명을 사용하여 추가 환경 변수가 할당됩니다. 예를 들어 MySQL 컨테이너는 다음 환경 변수를 수신합니다.

  • EXTERNAL_MYSQL_SERVICE_SERVICE_HOST=<ip_address>
  • EXTERNAL_MYSQL_SERVICE_SERVICE_PORT=<port_number>
  • MYSQL_USERNAME=<mysql_username>
  • MYSQL_PASSWORD=<mysql_password>
  • MYSQL_DATABASE_NAME=<mysql_database>

애플리케이션은 환경에서 서비스에 대한 좌표와 자격 증명을 읽고 서비스를 통해 데이터베이스와의 연결을 설정합니다.