EKS 클러스터 구축 하는법(2) - Bastion 호스트 설정 및 클러스터 구축
Bastion host란?
Bastion Host란, 외부에서 내부 네트워크에 접근할 수 있는 일종의 게이트다.
보안성이 높은 인프라와 외부 인터넷을 연결하고 중계해준다.
모든 인바운드 트래픽은 Bastion Host를 통과해야 내부 네트워크로 들어갈 수 있다.
이를 이용해 Private Instance에서 발생되는 계정 액세스 로그들을 한곳에서 취합 및 제어하기에 관리가 용이해지고 보안성 또한 높아진다.
먼저 EKS를 구축하는 데 필요한 BastionHost를 위한 EC2를 생성 해줄 것이다.
OS는 상관없으나 필자는 Ubuntu20.04 로 진행하였다.
먼저 만들어둔 VPC의 bastion subnet(public)에 배치한다.
보안 그룹을 생성하고 나의 ip로만 ssh 액세스가 가능토록 한다.
키페어 로그인을 설정하여 주는 것이 좋다.
AWS CLI설치
키페어 로그인 설정 후
apt install vim curl unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
명령어를 실행하여, AWS Cli 를 설치한다.
/usr/local/bin/aws --version
명령어를 사용해 버전을 확인한다. 출력시 잘 설치가 된 것이다.
aws configure
AWS Access Key ID [None]: access
AWS Secret Access Key [None]: secret
Default region name [None]: ap-northeast-1
Default output format [None]: json
이 명령어를 이용하여 본인 계정의 액세스 키를 입력해준다.
AWS 계정의 액세스키를 생성하는 방법은
https://docs.aws.amazon.com/ko_kr/keyspaces/latest/devguide/access.credentials.html
Amazon Keyspace용 AWS 자격 증명을 생성하고 구성하는 방법 - Amazon Keyspaces(Apache Cassandra용)
사용자 이름에는 최대 64개의 문자, 숫자 및 더하기(+), 등호(=), 쉼표(,), 마침표(.), 앳(@) 및 하이픈(-) 조합을 사용할 수 있습니다. 이름은 계정 내에서 고유해야 합니다. 대소문자는 구별하지 않습
docs.aws.amazon.com
공식 문서를 참조 하여 생성하면 된다.
Kubectl 설치
curl -LO https://dl.k8s.io/release/v1.29.0/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
명령어를 이용하여 kubectl 1.29버전을 설치한다.
설치 후 kubectl version을 이용하여 버전을 확인할 수 있다면 설치 완료
eksctl 설치 및 클러스터 구축
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
위의 명령어를 이용해 최신버전의 eksctl을 설치한다.
설치 후
eksctl version
을 이용하여 설치 유무 확인한다.
eksctl create cluster \
> --vpc-public-subnets 'privateA subnet', 'privateC subnet' \
> --name eks-work-cluster \
> --region ap-northeast-1 \
> --nodegroup-name Cloudcrew-nodegroup \
> --version 1.29 \
> --node-type t2.medium \
> --nodes 3 \
> --nodes-min 3 \
> --nodes-max 5
위 명령어를 입력하면 간단하게 클러스터를 구축 할 수 있다.
노드 그룹 또한 정상 생성 되어있는 모습을 볼 수 있다.
aws eks update-kubeconfig \
--region ap-northeast-1 \
--name 클러스터이름
위를 입력하고 클러스터의 kubeconfig파일을 가져온다
Api Server 정보와 인증 정보를 /home/ec2-user/.kube/config 로 가져온다. Kubeconfig는 클러스터 Api Server 정보와 Api Server 접근에 대한 사용자 인증 정보를 담고 있다
위 과정을 거치면 노드 조회가 가능해질 것이다.