본문 바로가기

프로젝트

Kubevirt를 활용한 VM 및 컨테이너 통합 관리 프로젝트 6 / OKD

1) OKD 소개

OKD는 Openshift의 오픈 소스 커뮤니티 버전이다. Openshift는 컨테이너 기반의 소프트웨어의 배포와 관리를 위한 PaaS 플랫폼이다. 데브옵스를 위한 다양한 오픈소스 도구들이 추가된, RedHat사에서 개발하는 쿠버네티스 배포판이다.

OKD를 사용하면 GUI 콘솔에서 컨테이너뿐 아니라 operator, 서비스, PV, PVC 같은 리소스를 관리할 수 있어 매우 편리하고, 프로메테우스, 그라파나 같은 모니터링 툴이 포함되어 있어서 클러스터의 자원이나 이슈 등을 손쉽게 확인할 수 있다.

또한 애플리케이션을 빌드하고 배포, 확장, 상태 관리까지 내장되어 있는 CI/CD 도구등을 이용하여 자동화할 수 있다는 장점이 있다.

 

2) OKD Cluster 아키텍처

 

OKD 클러스터 구성도는 다음과 같다. 여기서 Bastion은 두 가지의 기능이 있다. 첫 번째로는, 각 마스터노드에 ssh 접근을 가능하게 한다. 두번째로는, 클러스터가 시스템을 구성하는 데 필요한 Kubernetes 매니페스트 및 Ignition 구성 파일을 마스터와 부트스트랩에 제공하는 역할이다. Ignition 파일은 부팅 프로세스 초기에 실행되어 사용자 공간이 부팅되기 전에 디스크를 다시 분할하고, 파일 시스템을 포맷하고, 사용자를 만들고, 파일을 쓰는 초기화 작업의 정보가 담겨져 있다.

구성요소중 Bootstrap은 Bastion에서 생성된 ignition 파일을 사용하여 생성되며 후에 생성할 마스터노드에 필요한 리소스를 제공해준다.

Master 노드는 자원 상의 이유로 클러스터의 마스터 및 워커 역할을 동시에 하게끔 구성했다.

 

3) OKD 4.8설치 과정

Bastion 노드를 구성하기 위해 우선 CentOS 8.4로 가상머신을 생성한 후 호스트네임과 네트워크를 세팅한다. 이후 내부 DNS, HA-Proxy, HTTP, SSH를 설정하고 설정파일과 쿠버네티스 manifest, ignition 파일을 생성하면 Bastion 노드가 구성된다.

 

Bootstrap과 Master 노드는 모두 Fedora Core OS 이미지를 이용하여 Kickstart로 설치한다.

여기서 Fedora CoreOS는 컨테이너화된 워크로드를 안전하게 대규모로 실행하기 위한 컨테이너 전용 리눅스 배포판으로, 리눅스 컨테이너는 격리된 애플리케이션 실행 환경을 제공해 이를 관리하며 서비스할 수 있도록 Bootstrap과 Master 노드에 사용했다.

마스터 노드가 bootstrap을 사용해 etcd 클러스터를 구성하면, bootstrap 노드는 이를 이용하여 컨트롤플레인을 마스터 노드에 올리게 되고 마스터 노드로 컨트롤 권한이 옮겨진다. 권한이 옮겨간 시점부터 bootstrap의 역할은 다 하였고, 추후 okd 클러스터 전체를 리부트할 일이 생겨도 bootstrap은 필요하지 않다.

Bootstrap과 Master 노드의 설치가 완료되면 다음과 같은 OKD 콘솔을 통해 컨테이너를 관리할 수 있게 된다.