회사에서 프론트엔드 개발을 하며 OCI에 배포하는 방식을 OKE를 사용한 쿠버네티스 분산 배포 방식으로 기술검토하며 개선 적용하였다. 이에 기록을 남겨 둔다.
현재 회사에서는 개발한 서비스 (http://ateverse.com) 로 클라우드 인증제 (KACI) 인증 신청을 하고 있다. 이 절차에 따르면 서비스가 갖춰야 할 조건 중에 분산 배포가 적용될 것을 권장하고 있다. 현재까지는 로컬에서 빌드한 dist.zip을 인스턴스에 올려 unzip으로 Nginx 서빙 폴더에 배포하는 방식이었고, 이 방식은 Nginx 단일 모듈을 사용하는 것이므로 당연히 변경되어야 한다고 판단했다.
그리하여 예전에 Oracle사를 방문하여 OKE(Oracle Cloud Infrastructure Container Engine for Kubernetes) 를 사용 교육 받았던 경험을 떠듬떠듬 떠올려가며 Livelabs 문서(https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/run-workshop?p210_wid=3206&p210_wec=&session=8830523801112) 를 참고해서 적용을 하였고, 아래와 같이 배포 가이드를 작성했다. (개인 노션의 한계로 이미지는 첨부되지 않는다.)
초기의 OCI instance에는 라이브러리를 업데이트하는 작업이 필요합니다.
sudo yum update -y
docker를 사용하려면 인스턴스에서 docker처럼 사용되고 있는 podman이 존재합니다. 그러나 본 가이드는 podman을 삭제하는 것에서 시작하겠습니다.
sudo yum remove podman-docker
또한 yum install시 docker나 oci 등의 위치를 못 찾는 문제가 있기 때문에 EPEL 저장소 활성화를 진행합니다.
sudo yum install -y epel-release
이제 oci 및 docker, kubectl을 설치해줘야 합니다.
oci
: OCI에 맞는 kubeconfig를 세팅할 수 있습니다.docker
: 가상 image를 만들 수 있고 ocir(Oracle Image Repository) 에 push할 수 있습니다.kubectl
: 쿠버네티스를 실행하며 get all 등 배포 상태를 확인할 수 있습니다.설치 명령어는 아래와 같습니다.
oci
(Oracle Linux 8)
sudo dnf -y install oraclelinux-developer-release-el8
sudo dnf install python36-oci-cli
docker
# Docker 설치를 위한 리포지토리 추가
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo <https://download.docker.com/linux/centos/docker-ce.repo>
# Docker 설치
sudo yum install -y docker-ce docker-ce-cli [containerd.io](<http://containerd.io/>)
kubectl
sudo yum install -y kubectl
OKE방식의 설정을 해줘야 합니다. Oracle의 Livelabs에서 OKE 설정 가이드를 참고합니다.
Task4. OKE Kubernetes 클러스터 생성을 진행합니다.