1.8. 이미지 스트림을 사용하는 이유
이미지 스트림 및 관련 태그는 AWS의 Red Hat OpenShift Service 내에서 컨테이너 이미지를 참조하는 데 필요한 추상화를 제공합니다. 이미지 스트림 및 해당 태그를 사용하면 사용 가능한 이미지를 볼 수 있으며 리포지터리의 이미지가 변경되어도 필요한 특정 이미지를 사용하도록 할 수 있습니다.
이미지 스트림에는 실제 이미지 데이터가 포함되어 있지 않지만 이미지 리포지터리와 유사하게 관련 이미지에 대한 단일 가상 뷰가 있습니다.
새 이미지가 추가되는 경우 이미지 스트림의 알림을 보고 빌드 또는 배포를 각각 수행하여 대응하도록 빌드 및 배포를 구성할 수 있습니다.
예를 들어 배포에서 특정 이미지를 사용하고 있는데 해당 이미지의 새 버전이 생성되는 경우 배포가 자동으로 수행되어 새 버전의 이미지를 가져올 수 있습니다.
하지만 배포 또는 빌드에서 사용하는 이미지 스트림 태그가 업데이트되지 않으면 컨테이너 이미지 레지스트리의 컨테이너 이미지가 업데이트되어도 빌드 또는 배포에서는 알려진 정상 이미지인 이전 이미지를 계속 사용합니다.
소스 이미지를 저장할 수 있는 위치는 다음과 같습니다.
- AWS의 통합 레지스트리의 Red Hat OpenShift Service.
- 외부 레지스트리(예: registry.redhat.io 또는 quay.io)
- AWS 클러스터의 Red Hat OpenShift Service의 기타 이미지 스트림
이미지 스트림 태그를 참조하는 오브젝트(예: 빌드 또는 배포 구성)를 정의할 때 리포지터리가 아닌 이미지 스트림 태그를 가리킵니다. 애플리케이션을 빌드하거나 배포할 때 AWS에서 Red Hat OpenShift Service는 이미지 스트림 태그를 사용하여 리포지터리를 쿼리하여 관련 이미지 ID를 찾고 해당 이미지를 사용합니다.
이미지 스트림 메타데이터는 다른 클러스터 정보와 함께 etcd 인스턴스에 저장됩니다.
이미지 스트림을 사용하면 다음과 같은 여러 중요한 이점이 있습니다.
- 명령줄을 사용하여 다시 푸시하지 않고도 태그하고, 태그를 롤백하고, 이미지를 빠르게 처리할 수 있습니다.
- 새 이미지가 레지스트리로 푸시되면 빌드 및 배포를 트리거할 수 있습니다. 또한 AWS의 Red Hat OpenShift Service에는 Kubernetes 오브젝트와 같은 다른 리소스에 대한 일반 트리거도 있습니다.
- 정기적인 다시 가져오기를 위해 태그를 표시할 수 있습니다. 소스 이미지가 변경되면 해당 변경 사항이 이미지 스트림에 반영되고, 이후 빌드 또는 배포 구성에 따라 빌드 및/또는 배포 흐름이 트리거됩니다.
- 세분화된 액세스 제어를 사용하여 이미지를 공유하고 팀 전체에 이미지를 빠르게 배포할 수 있습니다.
- 소스 이미지가 변경되면 이미지 스트림 태그는 여전히 알려진 양호한 버전의 이미지를 가리키므로 애플리케이션이 예기치 않게 손상되지 않도록 합니다.
- 이미지 스트림 오브젝트에 대한 권한을 통해 이미지를 보고 사용할 수 있는 사람에 대한 보안을 구성할 수 있습니다.
- 클러스터 수준에서 이미지를 읽거나 나열할 수 있는 권한이 없는 사용자도 이미지 스트림을 사용하여 프로젝트의 태그된 이미지를 검색할 수 있습니다.
이미지 스트림을 관리하고, Kubernetes 리소스가 포함된 이미지 스트림을 사용하고, 이미지 스트림 업데이트에서 업데이트를 트리거할 수 있습니다.