brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 28. 2024

NCP 21탄-5. Amazon EKS -2024-07

Amazon 쿠버네티스 서비스인 EKS를 설치해 보자.


<1> CloudFormation으로 EKS 설치해 보자.

<2>  EC2의 베스천 서버 공인 IP로  로그인

<3> 모니터링툴인 kubeops view 설치

<4> EKS에 서비스 올리기





<1> CloudFormation으로 EKS 설치해 보자.



1

준비물 ?

EC2 키페어

EKS 만들 수 있는 권한 = AWS IAM >  Access-key / Secret-Key




2

참고 자료

https://brunch.co.kr/@topasvga/3572




3

CloudFormation으로 설치



최신버전인 1.30 버전 설치를 한다.

비용 절감을 위해 워커 노드 1대만 생성한다.





30분 걸린다.


https://vclock.kr/timer/#countdown=00:10:00&enabled=0&seconds=0&sound=xylophone&loop=1







<2>  EC2의 베스천 서버 공인 IP로  로그인



1

k get nodes




2

# 노드 보안그룹 ID 확인

aws ec2 describe-security-groups --filters Name=group-name,Values=*ng1* --query "SecurityGroups[*].[GroupId]" --output text


NGSGID=$(aws ec2 describe-security-groups --filters Name=group-name,Values=*ng1* --query "SecurityGroups[*].[GroupId]" --output text)

echo $NGSGID


3

# 노드 보안그룹에 eksctl-host 에서 노드(파드)에 접속 가능하게 룰(Rule) 추가 설정

aws ec2 authorize-security-group-ingress --group-id $NGSGID --protocol '-1' --cidr 192.168.1.100/32




<3> 모니터링툴인 kubeops view 설치


kube-ops-view 설치


helm repo add geek-cookbook https://geek-cookbook.github.io/charts/


helm install kube-ops-view geek-cookbook/kube-ops-view --version 1.2.2 --set env.TZ="Asia/Seoul" --namespace kube-system


kubectl patch svc -n kube-system kube-ops-view -p '{"spec":{"type":"LoadBalancer"}}'


kubectl annotate service kube-ops-view -n kube-system "external-dns.alpha.kubernetes.io/hostname=kubeopsview.$MyDomain"


echo -e "Kube Ops View URL = http://kubeopsview.$MyDomain:8080/#scale=1.5"


( 5분 걸림)



watch -d kubectl get svc,pods -A



8080 포트로 접속!!!!





<4> EKS에 서비스 올리기



1

게임 1개 올리기



cat <<EOF | k create -f -

apiVersion: apps/v1

kind: Deployment

metadata:

  name: deployment-2048

spec:

  selector:

    matchLabels:

      app.kubernetes.io/name: app-2048

  replicas: 2

  template:

    metadata:

      labels:

        app.kubernetes.io/name: app-2048

    spec:

      containers:

      - image: alexwhen/docker-2048

        name: app-2048

        ports:

        - containerPort: 80

EOF


k expose deployment deployment-2048 --port=80 --type=LoadBalancer



2

게임용 로드 밸런서 생성됨

  LoadBalancer   10.100.222.177   a60502c2c4aef4aa0afeb1c8fb410d65-1812132346.ap-northeast-2.elb.amazonaws.com   80:31403/TCP





3

로드 밸런서 IP 확인?


dig +short a60502c2c4aef4aa0afeb1c8fb410d65-1812132346.ap-northeast-2.elb.amazonaws.com

52.78.63.27

15.165.219.209




4

서비스에 추가

GTM >  Traffic Policy





5

현재 구축된 내용




6

CSP마다 다른 서비스 운영




7

마리오 게임

https://brunch.co.kr/@topasvga/3193





8

node 수 증가 시키기


https://brunch.co.kr/@topasvga/3572




9

# 추가 자료 - 쿠버네티스 공부하기


https://brunch.co.kr/@topasvga/1656



10

# 추가 자료 - 네이버 클라우드 테라폼 시작하기


https://brunch.co.kr/@topasvga/3594




11

# 추가 자료 - AWS 테라폼 시작하기


https://brunch.co.kr/@topasvga/3588




다음

클라우드 코드로 관리하기.

https://brunch.co.kr/@topasvga/3943



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari