Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
20.2. 사용자 정의 리소스 정의 생성
사용자 정의 오브젝트를 생성하려면 먼저 CRD(사용자 정의 리소스 정의)를 생성해야 합니다.
참고
클러스터 관리자만 CRD를 생성할 수 있습니다.
절차
CRD를 생성하려면 다음을 수행합니다.
다음 예제의 필드가 포함된 YAML 파일을 생성합니다.
사용자 정의 리소스 정의에 대한 YAML 파일의 예
apiVersion: apiextensions.k8s.io/v1beta1 1 kind: CustomResourceDefinition metadata: name: crontabs.stable.example.com 2 spec: group: stable.example.com 3 version: v1 4 scope: Namespaced 5 names: plural: crontabs 6 singular: crontab 7 kind: CronTab 8 shortNames: - ct 9
- 1
apiextensions.k8s.io/v1beta1API를 사용합니다.- 2
- 정의의 이름을 지정합니다.
group및plural필드의 값을 사용하는 <plural-name><group> 형식이어야 합니다. - 3
- API의 그룹 이름을 지정합니다. API 그룹은 논리적으로 관련된 오브젝트의 컬렉션입니다. 예를 들어
Job또는ScheduledJob과 같은 모든 배치 오브젝트는 배치 API 그룹(예: batch.api.example.com)에 있을 수 있습니다. 조직의 정규화된 도메인 이름을 사용하는 것이 좋습니다. - 4
- URL에 사용할 버전 이름을 지정합니다. 각 API 그룹은 여러 버전에 존재할 수 있습니다. 예:
v1alpha,v1beta,v1. - 5
- 특정 프로젝트(
Namespaced) 또는 클러스터의 모든 프로젝트(Cluster)에서 사용자 정의 오브젝트를 사용할 수 있는지 지정합니다. - 6
- URL에서 사용할 복수형 이름을 지정합니다.
plural필드는 API URL의 리소스와 동일합니다. - 7
- CLI 및 디스플레이에서 별칭으로 사용할 단수형 이름을 지정합니다.
- 8
- 생성할 수 있는 오브젝트의 종류를 지정합니다. 유형은 CamelCase에 있을 수 있습니다.
- 9
- CLI의 리소스와 일치하는 짧은 문자열을 지정합니다.
참고기본적으로 사용자 정의 리소스 정의는 클러스터 범위이며 모든 프로젝트에서 사용할 수 있습니다.
오브젝트를 생성합니다.
oc create -f <file-name>.yaml
다음에 새 RESTful API 끝점이 생성됩니다.
/apis/<spec:group>/<spec:version>/<scope>/*/<names-plural>/...
예를 들어 예제 파일을 사용하면 다음 끝점이 생성됩니다.
/apis/stable.example.com/v1/namespaces/*/crontabs/...
이 끝점 URL을 사용하여 사용자 지정 오브젝트를 생성하고 관리할 수 있습니다. 오브젝트의 종류는 생성한 Custom Resource Definition 오브젝트의
spec.kind필드를 기반으로 합니다.