5.5.2.5. 사용자 정의 리소스 생성
Operator가 설치되면 Operator에서 현재 클러스터에 제공하는 CR(사용자 정의 리소스)을 생성하여 Operator를 테스트할 수 있습니다.
사전 요구 사항
-
Nginx
CR을 제공하는 Nginx Operator 예제가 클러스터에 설치되어 있음
프로세스
Operator가 설치된 네임스페이스로 변경합니다. 예를 들어
make deploy
명령을 사용하여 Operator를 배포한 경우 다음을 실행합니다.$ oc project nginx-operator-system
다음 사양을 포함하도록
config/samples/demo_v1_nginx.yaml
에서 샘플Nginx
CR 매니페스트를 편집합니다.apiVersion: demo.example.com/v1 kind: Nginx metadata: name: nginx-sample ... spec: ... replicaCount: 3
Nginx 서비스 계정에는 OpenShift Container Platform에서 실행할 수 있는 권한이 필요합니다.
nginx-sample
Pod의 서비스 계정에 다음 SCC(보안 컨텍스트 제약 조건)를 추가합니다.$ oc adm policy add-scc-to-user \ anyuid system:serviceaccount:nginx-operator-system:nginx-sample
CR을 생성합니다.
$ oc apply -f config/samples/demo_v1_nginx.yaml
Nginx
Operator에서 샘플 CR에 대한 배포를 올바른 크기로 생성하는지 확인합니다.$ oc get deployments
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE nginx-operator-controller-manager 1/1 1 1 8m nginx-sample 3/3 3 3 1m
Pod 및 CR 상태를 확인하여 상태가 Nginx Pod 이름으로 업데이트되었는지 확인합니다.
Pod를 확인합니다.
$ oc get pods
출력 예
NAME READY STATUS RESTARTS AGE nginx-sample-6fd7c98d8-7dqdr 1/1 Running 0 1m nginx-sample-6fd7c98d8-g5k7v 1/1 Running 0 1m nginx-sample-6fd7c98d8-m7vn7 1/1 Running 0 1m
CR 상태 확인:
$ oc get nginx/nginx-sample -o yaml
출력 예
apiVersion: demo.example.com/v1 kind: Nginx metadata: ... name: nginx-sample ... spec: replicaCount: 3 status: nodes: - nginx-sample-6fd7c98d8-7dqdr - nginx-sample-6fd7c98d8-g5k7v - nginx-sample-6fd7c98d8-m7vn7
배포 크기를 업데이트합니다.
config/samples/demo_v1_nginx.yaml
파일을 업데이트하여Nginx
CR의spec.size
필드를3
에서5
로 변경합니다.$ oc patch nginx nginx-sample \ -p '{"spec":{"replicaCount": 5}}' \ --type=merge
Operator에서 배포 크기를 변경하는지 확인합니다.
$ oc get deployments
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE nginx-operator-controller-manager 1/1 1 1 10m nginx-sample 5/5 5 5 3m
이 튜토리얼의 일부로 생성된 리소스를 정리합니다.
make deploy
명령을 사용하여 Operator를 테스트한 경우 다음 명령을 실행합니다.$ make undeploy
operator-sdk run bundle
명령을 사용하여 Operator를 테스트한 경우 다음 명령을 실행합니다.$ operator-sdk cleanup <project_name>