쿠버네티스에서는 Service라는 Object를 이용하여 여러대의 컨테이너에 부하를 분산시키기 때문에 고가용성을 실현할 수 있습니다.
오토스케일링을 통하여 부하가 많은 컨테이너는 스케일아웃을 통해 부하를 분산시킬 수 있고 부하가 적은 컨테이너는 스케일인을 통해서 유휴자원을 절약시킬수 있습니다.
OpenShift 서버에 직접적으로 제어를 하는것이 아닌 컨테이너로서 제어를 하기 때문에 OpenShift 자체에 장애가 발생하였더라도 컨테이너 레벨에서 장애를 복구하는 조치가 필요한 구조입니다.
컨테이너 엔진이 설치될 수 있고 OCI 표준을 지키는 환경이면 가능합니다.
기존의 VM 환경에서는 HostOS와 다르게 VM을 기동시키는 GuestOS가 필요했었는데요. 컨테이너 환경에서는 컨테이너가 프로세스 레벨로 동작을 하기때문에 Guest OS가 필요없고, GuestOS의 역할을 HostOS 커널을 공유하여 사용합니다.
OpenShift Cluster를 구축하기 위해서는 CoreOS가 필수적입니다. CoreOS는 RHEL 8 기준입니다.
OpenShift는 CoreOS라는 컨테이너를 기동시키기위한 특수한 OS를 이용하는데, 이 CoreOS는 Read Only라는 특성상 OS 자체에 어떠한 작업을 할 수 없습니다. 할 수 있는 작업은 매우 제한되어있기 때문에 보안솔루션을 설치할 수 없습니다. 또한 SELINUX, CGROUP, NAMESPACE등 리눅스 기반의 보안정책을 사용하고 있습니다.
컨테이너 환경은 베어메탈, VM, 퍼블릭 클라우드 등 컨테이너 엔진이 설치될 수 있는 모든 환경에서 운영 가능하기때문에 말씀하신 환경도 가능합니다.
컨테이너 에서는 OCI, Open Container Interface라는 표준이 있는데 이 표준을 따르는 컨테이너 툴(Podman 등등)을 이용하시어 표준을 지키실수 있습니다.
기존 운영환경에서는 장애상황에 대응하여 24시간 관리자가 대기를 하고 있거나 선제적인 조치가 필요하였는데요, 컨테이너와 컨테이너 오케스트레이션을 이용한다면 장애 발생상황에서도 자동복구가 되고 서비스의 부하가 증가하더라도 관리자의 개입 없이 리소스를 스케일 아웃이 가능해집니다.