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
이제 아마존 크레덴셜파일을 생성해줄 차례입니다.
본인의 계정을 참고해서 환경변수로 넣어주고, 파일로 만들어줍니다.
$ 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
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}
+추가로 oc 커맨드에 대해 자동완성(bash completion)설정을 하려면 :
$ oc completion bash >/etc/bash_completion.d/openshift
Get Pull Secret
이제 설치할때 필요한 pull secret을 얻어야 합니다.
RedHat Openshift Cluster Manager로 이동
openshift cluster를 올릴 플랫폼은 aws
이니 aws
를 선택해줍니다.
물론 vmware
나 openstack
, 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
이제 본격적으로 설치를 시작해보겠습니다.
설치 순서는 다음과 같습니다.
- Bootstrap 노드 생성, 해당 노드는 마스터 노드 부팅에 필요한 리소스를 제공해줌
- 마스터는 리소스를 bootstrap노드에서 가져와 부팅을 마침
- 마스터는 bootstrap 노드를 사용해 etcd 클러스터를 구성
- bootstrap노드는 etcd클러스터를 사용해 임시 쿠버네티스 컨트롤플레인을 시작
- 임시 컨트롤플레인은 진짜 컨트롤플레인을 마스터 머신에 올림
- 임시 컨트롤플레인은 꺼지고 마스터머신의 컨트롤플레인으로 컨트롤 권한이 옮겨감
- bootstrap노드는 마스터머신의 컨트롤플레인에 openshift component들을 넣음
- Installer는 bootstrap노드를 다운시킴
설치커맨드는 간단하게 한줄로 끝납니다.
$ openshift-install create cluster --dir $HOME/temp
SSH Public Key
는 위에서 생성했었던 ssh key
Platform
은 aws
Region
은 가까운곳으로 선택
Base Domain
은 ocp클러스터 라우트의 기본도메인으로 사용될 도메인을 선택
Cluster Name
은 유니크하게 작성
Pull Secret
은 위에서 복사했던 pull secret을 붙여넣기
설치가 완료되면 웹콘솔의 url과 클러스터 admin의 계정을 알려줍니다.
$ export KUBECONFIG=$HOME/temp/auth/kubeconfig
$ echo "export KUBECONFIG=$HOME/temp/auth/kubeconfig" >>$HOME/.bashrc
$ oc get nodes
클러스터를 삭제하려면 :
$ openshift-install destroy cluster --dir $HOME/temp
$ rm -rf $HOME/.kube
$ rm -rf $HOME/temp
끗
댓글남기기