부록 A. 클러스터 내에서 오퍼레이터를 배포로 실행하기
클러스터 외부에서 오퍼레이터를 실행하는 것은 테스트 및 디버깅 목적에 편리하지만, 프로덕션 오퍼레이터는 Kubernetes 배포로 실행됩니다. 이 배포 스타일에는 몇 가지 추가 단계가 있습니다:
-
이미지를 빌드합니다. 운영자 SDK의
build명령은 기본 Docker 데몬에 연결하여 운영자 이미지를 빌드하고, 실행 시 전체 이미지 이름과 버전을 으로 가져옵니다:$operator-sdkbuildjdob/visitors-operator:0.1 -
배포를 구성합니다. SDK가 이미지 이름으로 생성하는 배포/운영자.yaml 파일을 업데이트합니다. 업데이트할 필드의 이름은
image이며 아래에서 찾을 수 있습니다:spec -> template -> spec -> containers
생성된 파일의 기본값은
REPLACE_IMAGE이며, 이전 명령에서 만든 이미지의 이름을 반영하도록 업데이트해야 합니다.이미지가 빌드되면 외부에서 액세스할 수 있는 Quay.io 또는 Docker Hub와 같은 리포지토리에 푸시합니다.
-
CRD를 배포합니다. SDK는 올바르게 작동하는 스켈레톤 CRD를 생성하지만, 이 파일을 구체화하는 방법에 대한 자세한 내용은 부록 B를 참조하세요:
$kubectlapply-fdeploy/crds/*_crd.yaml -
서비스 계정과 역할을 배포합니다. SDK는 운영자에게 필요한 서비스 계정과 역할을 생성합니다. 이를 업데이트하여 역할의 권한을 운영자가 작동하는 데 필요한 최소한의 권한으로 제한하세요.
역할 권한의 범위를 적절하게 지정했으면 리소스를 클러스터에 배포합니다:
$kubectlapply-fdeploy/service_account.yaml$kubectlapply-fdeploy/role.yaml$kubectlapply-fdeploy/role_binding.yaml경고
역할 바인딩을 사용하려면 역할과 서비스 계정이 모두 있어야 하므로 이러한 파일을 나열된 순서대로 배포해야 합니다.
-
오퍼레이터 배포를 생성합니다. 마지막 단계는 Operator 자체를 배포하는 것입니다. 이전에 편집한 operator.yaml 파일을 사용하여 오퍼레이터 이미지를 클러스터에 배포할 수 있습니다:
$kubectlapply-fdeploy/operator.yaml