27.15.2. 아키텍처
CSI 드라이버는 일반적으로 컨테이너 이미지로 제공됩니다. 이러한 컨테이너는 OpenShift Container Platform이 실행되는 위치를 인식하지 못합니다. OpenShift Container Platform에서 CSI 호환 스토리지 백엔드를 사용하려면 클러스터 관리자가 OpenShift Container Platform과 스토리지 드라이버 간의 브리지 역할을 하는 여러 구성 요소를 배포해야 합니다.
다음 다이어그램에서는 OpenShift Container Platform 클러스터의 Pod에서 실행되는 구성 요소에 대한 상위 수준 개요를 설명합니다.
다양한 스토리지 백엔드에 대해 여러 CSI 드라이버를 실행할 수 있습니다. 각 드라이버에는 드라이버 및 CSI 등록 기관과 함께 자체 외부 컨트롤러의 배포 및 DaemonSet이 필요합니다.
27.15.2.1. 외부 CSI 컨트롤러
외부 CSI 컨트롤러는 3개의 컨테이너가 포함된 1개 이상의 Pod를 배포하는 배포입니다.
-
OpenShift Container Platform의
attach
및detach
호출을 CSI 드라이버에 대한 해당ControllerPublish 및 Controller
Unpublish
호출로 변환하는 외부 CSI 연결 컨테이너 -
OpenShift Container Platform의
provision
및delete
호출을 CSI 드라이버에 대한 해당CreateVolume 및
호출로 변환하는 외부 CSI 프로비저너 컨테이너DeleteVolume
- CSI 드라이버 컨테이너
CSI 연결 및 CSI 프로비저너 컨테이너는 UNIX 도메인 소켓을 사용하여 CSI 드라이버 컨테이너와 통신하므로 CSI 통신이 Pod를 종료하지 않도록 합니다. Pod 외부에서 CSI 드라이버에 액세스할 수 없습니다.
attach
, 분리
, provision
및 삭제
작업에는 일반적으로 스토리지 백엔드에 인증 정보를 사용하기 위해 CSI 드라이버가 필요합니다. 컴퓨팅 노드의 심각한 보안 위반 시 인증 정보가 사용자 프로세스에 유출되지 않도록 인프라 노드에서 CSI 컨트롤러 Pod를 실행합니다.
외부 연결은 타사 attach/detach 작업을 지원하지 않는 CSI 드라이버에서도 실행해야 합니다. 외부 연결은 CSI 드라이버에 ControllerPublish
또는 ControllerUnpublish
작업을 발행하지 않습니다. 그러나 필요한 OpenShift Container Platform 연결 API를 구현하려면 실행해야 합니다.