오늘은 이미 SW(devops)팀에서 구축한 EKS에 접속하는 방법을
실습을 진행하며 알아보려고 합니다!
첫 파트인 EKS 관리 시스템 구축은 누구나 따라하실 수 있지만,
두번째 파트부터는 이미 만들어진 시스템을 활용하기 때문에 따라하셔도 접근권한이 없어서 실습이 불가능합니다.
관련 업무를 진행하실 때 진행순서만 참고해주세요!
MacOS에 aws CLI 및 config 등을 설정해서 사용할 수도 있겠지만,
Linux EC2 인스턴스를 생성하고 해당 인스턴스에 관리를 위한 설정을 구축하여,
다른 팀원들이 바로 사용할 수 있도록 해보겠습니다.
외부에서 AWS에 접근할 시스템(인스턴스)가 필요합니다. 보통 Linux를 사용합니다.
Linux EC2 인스턴스를 생성해봅시다.
Terminus(MacOS)를 이용하여 SSH 접속을 합니다.
ec2를 생성해서 진행하는 경우 아래를 진행해주세요. MacOS 환경에서 진행하는 경우 다음 섹션으로 이동해서 진행해주세요!
$ sudo apt-get install -y unzip
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version
$ aws --version
aws-cli/2.2.5 Python/3.8.8 Linux/4.4.0-19041-Microsoft exe/x86_64.ubuntu.20 prompt/off
$ 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 version
0.68.0
$ curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/kubectl
$ chmod +x ./kubectl
$ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
$ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
$ kubectl version --short --client
Client Version: v1.19.6-eks-49a6c0
$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh
브라우저에서 AWS CLI를 다운로드 합니다.(macOS pkg 파일)
eksctl를 다운로드합니다. homebrew를 이용합니다.
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
% brew tap weaveworks/tap
% brew install weaveworks/tap/eksctl
% brew upgrade eksctl && brew link --overwrite eksctl
% eksctl version
softwareupdate --all --install --force
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
k8s 관리툴인 kubectl 설치
$ curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.20.4/2021-04-12/bin/darwin/amd64/kubectl
$ chmod +x ./kubectl
$ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
$ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile
$ kubectl version --short --client
Client Version: v1.20.4-eks-6b7464
brew install helm
aws.amazon.com에서 - root 로그인후 IAM 생성
사용자이름(User name*) : eks-mng-user
프로그래밍 방식(Programmatic access) 선택
기존 정책(Attach existing policies directly) : administrator
태그 추가(Add tags (optional)) - <SKIP>
[사용자만들기(Create User)] 버튼 클릭
사용자 생성되면 csv다운로드 -액세스ID/엑세스키
$ aws configure
AWS Access Key ID [None]: AKIASJ...E37V
AWS Secret Access Key [None]: XLzhAqt...7g
Default region name [None]: ap-northeast-2
Default output format [None]: <ENTER>
ubuntu@seongmi_lee:~$ cd .aws/
ubuntu@seongmi_lee:~/.aws$ ls
ubuntu@seongmi_lee:~/.aws$ cat config
[default]
region = ap-northeast-2
ubuntu@seongmi_lee:~/.aws$ cat credentials
[default]
aws_access_key_id = AKIASJ...E37V
aws_secret_access_key = XLzhAq...7g
잘 연결되는지 확인
ubuntu@seongmi_lee:~/.aws$ aws sts get-caller-identity
{
"UserId": "AID...KS26",
"Account": "15..75",
"Arn": "arn:aws:iam::158208647875:user/k8suser-console"
}
지금까지 위에서 진행한 사항은 개인적으로 사용할 EKS 환경을 구축하는 과정이었습니다.
이제 미리 DevOps 개발자가 만들어둔 EKS 구성을 받아와 사용하는 방법을 확인해보겠습니다.
aws credential이 등록되어 있는지 확인합니다.
cd ~/.aws
cat credential
aws config를 확인해보고, 아래처럼 수정합니다.
cat config
vim config
후 아래 처럼 수정해주세요.[default]
sts_regional_endpoints=regional
region = ap-northeast-2
output = yaml
[profile environment-predict]
role_arn = arn:aws:iam::174950111464:role/admin
source_profile = default
region = ap-northeast-2
output = yaml
등록한 aws config의 profile을 사용해서 kubeconfig를 업데이트합니다.
$ aws eks update-kubeconfig \
--name environment-predict(클러스터 이름) \
--alias env-predict \
--profile environment-predict
--context
를 사용해서 kubectl을 사용할 수 있습니다.
--context
를 입력하지 않으면 default에 접근하게 됩니다.kubectl get nodes --context env-predict
Kubernetes IDE인 lens를 설치합니다.
이제 lens를 이용해 클러스터를 관리하겠습니다.