Openshift4.3 Installation on AWS

Overview

이번 포스팅에서는 Openshift Container Platform 4.x 를 AWS에 설치해보도록 하겠습니다.

Prerequisites

  • AWS계정
  • Red Hat 계정
  • linux서버 아무거나 하나

1. 설치 준비 단계

Install AWS CLI

먼저 AWS CLI툴을 설치해줍니다.

# Download the latest AWS Command Line Interface
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

$ unzip awscli-bundle.zip

# Install the AWS CLI into /bin/aws
$ ./awscli-bundle/install -i /usr/local/aws -b /bin/aws 

제대로 동작하는지 확인해주고 설치파일은 삭제해줍니다.

# Validate that the AWS CLI works
aws --version

# Clean up downloaded files
rm -rf /root/awscli-bundle /root/awscli-bundle.zip

image

이제 아마존 크레덴셜파일을 생성해줄 차례입니다.
본인의 계정을 참고해서 환경변수로 넣어주고, 파일로 만들어줍니다.

$ export AWSKEY=AKIAVLWERVDBNWD6DLGF
$ export AWSSECRETKEY=Q7766cxfyVX3NeJvgnruEEABCD39fUW8Fzq6AYc
$ export REGION=ap-southeast-1

$ mkdir $HOME/.aws
$ cat << EOF >>  $HOME/.aws/credentials
[default]
aws_access_key_id = ${AWSKEY}
aws_secret_access_key = ${AWSSECRETKEY}
region = $REGION
EOF

제대로 반영이 되었는지 체크해줍니다.

$ aws sts get-caller-identity

image

Install Openshift Installer

이제 openshift installer binary파일을 다운받아줍니다.

원하는 ocp버전을 설정해주고, 다운받아서 압축을 해제해줍니다.

$ OCP_VERSION=4.3.1

$ wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${OCP_VERSION}/openshift-install-linux-${OCP_VERSION}.tar.gz

$ tar zxvf openshift-install-linux-${OCP_VERSION}.tar.gz -C /usr/bin

$ rm -f openshift-install-linux-${OCP_VERSION}.tar.gz /usr/bin/README.md
chmod +x /usr/bin/openshift-install

Install oc CLI

kubernetes의 kubectl과 같은 역할을 해주는 oc cli툴을 설치해줍니다.

$ wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${OCP_VERSION}/openshift-client-linux-${OCP_VERSION}.tar.gz

$ tar zxvf openshift-client-linux-${OCP_VERSION}.tar.gz -C /usr/bin

$ rm -f openshift-client-linux-${OCP_VERSION}.tar.gz /usr/bin/README.md

$ chmod +x /usr/bin/oc

제대로 설치되었는지 확인 :

$ ls -l /usr/bin/{oc,openshift-install}

image

+추가로 oc 커맨드에 대해 자동완성(bash completion)설정을 하려면 :

$ oc completion bash >/etc/bash_completion.d/openshift

Get Pull Secret

이제 설치할때 필요한 pull secret을 얻어야 합니다.
RedHat Openshift Cluster Manager로 이동

openshift cluster를 올릴 플랫폼은 aws이니 aws를 선택해줍니다.
물론 vmwareopenstack, bare-metal도 존재합니다.

다음으로 Installer-provisioned infrastructure를 선택 :

Installer-Provisioned Infrastructure(IPI) : 클러스터를 구성하는데 필요한 네트워크, 시스템, os 등의 모든 부분을 코드로 구현하여 사용자가 인프라를 프로비저닝할 필요가 없음
User-Provisioned Infrastructure(UPI) : installer는 클러스터만 구성해주고 사용자가 인프라에 대한것을 프로비저닝 해야한다. 더 세세한 구성이 가능.

마지막으로 pull secret을 복사해둡니다.

아래와 비슷한 형식입니다.

{"auths":{"cloud.openshift.com":{"auth":"b3Bl...Qw==","email":"example@example.com"},"quay.io":{"auth":"b3Bl...Qw==","email":"example@example.com"},"registry.connect.redhat.com":{"auth":"NTMwN...N0VQ==","email":"example@example.com"},"registry.redhat.io":{"auth":"NTMwN...N0VQ==","email":"example@example.com"}}}

SSH key 생성

ssh key를 생성해줍니다.

$ ssh-keygen -f ~/.ssh/cluster-key -N ''

Install OpenShift Container Platform

이제 본격적으로 설치를 시작해보겠습니다.

설치 순서는 다음과 같습니다.

  1. Bootstrap 노드 생성, 해당 노드는 마스터 노드 부팅에 필요한 리소스를 제공해줌
  2. 마스터는 리소스를 bootstrap노드에서 가져와 부팅을 마침
  3. 마스터는 bootstrap 노드를 사용해 etcd 클러스터를 구성
  4. bootstrap노드는 etcd클러스터를 사용해 임시 쿠버네티스 컨트롤플레인을 시작
  5. 임시 컨트롤플레인은 진짜 컨트롤플레인을 마스터 머신에 올림
  6. 임시 컨트롤플레인은 꺼지고 마스터머신의 컨트롤플레인으로 컨트롤 권한이 옮겨감
  7. bootstrap노드는 마스터머신의 컨트롤플레인에 openshift component들을 넣음
  8. Installer는 bootstrap노드를 다운시킴

설치커맨드는 간단하게 한줄로 끝납니다.

$ openshift-install create cluster --dir $HOME/temp

image
SSH Public Key는 위에서 생성했었던 ssh key
Platform은 aws
Region은 가까운곳으로 선택
Base Domain은 ocp클러스터 라우트의 기본도메인으로 사용될 도메인을 선택
Cluster Name은 유니크하게 작성
Pull Secret은 위에서 복사했던 pull secret을 붙여넣기

image

image

설치가 완료되면 웹콘솔의 url과 클러스터 admin의 계정을 알려줍니다.

$ export KUBECONFIG=$HOME/temp/auth/kubeconfig
$ echo "export KUBECONFIG=$HOME/temp/auth/kubeconfig" >>$HOME/.bashrc

$ oc get nodes

image

클러스터를 삭제하려면 :

$ openshift-install destroy cluster --dir $HOME/temp

$ rm -rf $HOME/.kube 
$ rm -rf $HOME/temp


댓글남기기