3.5.8. odo 서비스
odo
는 Operator 의 도움을 받아 서비스를 배포할 수 있습니다.
설치에 사용 가능한 Operator 및 서비스 목록은 odo catalog
명령을 사용하여 확인할 수 있습니다.
서비스는 구성 요소 의 컨텍스트에서 생성되므로 서비스를 배포하기 전에 odo create
명령을 실행합니다.
서비스는 다음 두 단계를 사용하여 배포됩니다.
- 서비스를 정의하고 해당 정의를 devfile에 저장합니다.
-
odo push
명령을 사용하여 정의된 서비스를 클러스터에 배포합니다.
3.5.8.1. 새 서비스 생성
새 서비스를 생성하려면 명령을 실행합니다.
$ odo service create
예를 들어 my-redis-service
라는 Redis 서비스의 인스턴스를 생성하려면 다음 명령을 실행합니다.
출력 예
$ odo catalog list services Services available through Operators NAME CRDs redis-operator.v0.8.0 RedisCluster, Redis $ odo service create redis-operator.v0.8.0/Redis my-redis-service Successfully added service to the configuration; do 'odo push' to create service on the cluster
이 명령은 서비스 정의가 포함된 kubernetes/
디렉터리에 Kubernetes 매니페스트를 생성하고 이 파일은 devfile.yaml
파일에서 참조합니다.
$ cat kubernetes/odo-service-my-redis-service.yaml
출력 예
apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 imagePullPolicy: IfNotPresent resources: limits: cpu: 101m memory: 128Mi requests: cpu: 101m memory: 128Mi serviceType: ClusterIP redisExporter: enabled: false image: quay.io/opstree/redis-exporter:1.0 storage: volumeClaimTemplate: spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
명령 예
$ cat devfile.yaml
출력 예
[...] components: - kubernetes: uri: kubernetes/odo-service-my-redis-service.yaml name: my-redis-service [...]
생성된 인스턴스의 이름은 선택 사항입니다. 이름을 지정하지 않으면 서비스의 소문자가 됩니다. 예를 들어 다음 명령은 redis
라는 Redis 서비스의 인스턴스를 생성합니다.
$ odo service create redis-operator.v0.8.0/Redis
3.5.8.1.1. 매니페스트 간소화
기본적으로 devfile.yaml
파일에서 참조하는 kubernetes/
디렉터리에 새 매니페스트가 생성됩니다. --inlined
플래그를 사용하여 devfile.yaml
파일 내의 매니페스트를 인라인할 수 있습니다.
$ odo service create redis-operator.v0.8.0/Redis my-redis-service --inlined Successfully added service to the configuration; do 'odo push' to create service on the cluster
명령 예
$ cat devfile.yaml
출력 예
[...] components: - kubernetes: inlined: | apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 imagePullPolicy: IfNotPresent resources: limits: cpu: 101m memory: 128Mi requests: cpu: 101m memory: 128Mi serviceType: ClusterIP redisExporter: enabled: false image: quay.io/opstree/redis-exporter:1.0 storage: volumeClaimTemplate: spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi name: my-redis-service [...]
3.5.8.1.2. 서비스 구성
특정 사용자 지정이 없으면 기본 구성으로 서비스가 생성됩니다. 명령줄 인수 또는 파일을 사용하여 고유한 구성을 지정할 수 있습니다.
3.5.8.1.2.1. 명령줄 인수 사용
--parameters
(또는 -p
) 플래그를 사용하여 고유한 구성을 지정합니다.
다음 예제에서는 세 가지 매개 변수를 사용하여 Redis 서비스를 구성합니다.
$ odo service create redis-operator.v0.8.0/Redis my-redis-service \ -p kubernetesConfig.image=quay.io/opstree/redis:v6.2.5 \ -p kubernetesConfig.serviceType=ClusterIP \ -p redisExporter.image=quay.io/opstree/redis-exporter:1.0 Successfully added service to the configuration; do 'odo push' to create service on the cluster
명령 예
$ cat kubernetes/odo-service-my-redis-service.yaml
출력 예
apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 serviceType: ClusterIP redisExporter: image: quay.io/opstree/redis-exporter:1.0
odo catalog describe service
명령을 사용하여 특정 서비스에 사용 가능한 매개변수를 가져올 수 있습니다.
3.5.8.1.2.2. 파일 사용
YAML 매니페스트를 사용하여 자체 사양을 구성합니다. 다음 예에서 Redis 서비스는 세 개의 매개 변수로 구성됩니다.
매니페스트를 생성합니다.
$ cat > my-redis.yaml <<EOF apiVersion: redis.redis.opstreelabs.in/v1beta1 kind: Redis metadata: name: my-redis-service spec: kubernetesConfig: image: quay.io/opstree/redis:v6.2.5 serviceType: ClusterIP redisExporter: image: quay.io/opstree/redis-exporter:1.0 EOF
매니페스트에서 서비스를 생성합니다.
$ odo service create --from-file my-redis.yaml Successfully added service to the configuration; do 'odo push' to create service on the cluster