-
github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 1부AWS 2023. 3. 30. 09:22
https://devocean.sk.com/blog/techBoardDetail.do?ID=163654
위에 블로그를 보고 설명이 부족한 부분을 첨가해서 게시글을 작성했습니다.
EKS 클러스터를 만들기 위해 ec2 하나를 빌린다. t4g.small을 사용하겠다.
https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html
에 가면 kubectl 을 다운 받아준다.
t4g.small 은 arm 아키텍처라는 걸 알아두자.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.25.7/2023-03-17/bin/linux/arm64/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
이래서 kubectl version 을 해서 정상적으로 나오면 된다.
eksctl을 다운받기 위해 aws cli 를 설치해야한다.
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
이때 unzip 명령어가 없다면 설치해주자.
aws cli 설정을 해야한다.
aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: ap-northeast-2 Default output format [None]: json
aws configure 를 입력하면 access key 와 secret key 를 입력해야한다.
이거를 얻는 방법은
보안 자격 증명 들어가서 액세스키 만들기 하면 된다.
물론 iam 에서 유저 생성하고 만들어도 된다. 하지만 어떤 권한과 정책이 필요한지 아직은 잘 모르겠어서, 계정 액세스키를 사용하겠다.
aws configure 명령어가 성공적으로 실행했다면 eksctl을 설치하겠다.
https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_arm64.tar.gz" | tar xz -C /tmp sudo mv /tmp/eksctl /usr/local/bin eksctl version
으로 다운받으면 된다.
eksctl로 cluster을 생성해보자.
$ eksctl create cluster \ --version 1.25 \ --name eks-demo \ --vpc-nat-mode HighlyAvailable \ --node-private-networking \ --region ap-northeast-2 \ --node-type t3.medium \ --nodes 1 \ --with-oidc \ --ssh-access \ --ssh-public-key 지금 사용하는 ec2 의 pem 파일 이름 \ --managed
--ssh-public-key 에 값을 보고싶다면
cd ~ cd .ssh cat authorized_key
을 하면 내가 어떤 pem 파일 이름이 맨 아랫줄에 나오니까 그거 복사하면 된다.
이렇게 하면 1개의 노드가 생성된다.
aws에서 cloudformation에 가면 만들어지는 과정을 볼 수 있다.
15 ~ 20 분 정도 걸린다.
참고한 블로그를 보면 지금 사용하는 ec2에서만 eks에게 명령을 내릴 수 있게 설정하는 명령어가 있다.
eksctl utils update-cluster-endpoints --cluster=eks-demo --private-access=true --public-access=true --approve eksctl utils set-public-access-cidrs --cluster=eks-demo 지금 사용하는 EC2의 IP/32 --approve
간단히 테스트 할거라면 패스해도 괜찮다.
다음으로, github action 에서 ECR 으로 이미지를 올리는거를 해보겠다.
'AWS' 카테고리의 다른 글
github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 3부 (0) 2023.04.03 ec2에서 jenkins 빌드서버 만들어보기 2편 (0) 2023.03.31 ec2에서 jenkins 빌드서버 만들어보기 1편 (0) 2023.03.31 github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 2부 (0) 2023.03.30 github actions -> ecr -> ecs with ec2 multi module (0) 2022.10.28