7탄 = 1/5
서울리전에 쿠버네티스를 설치해보자.
임의의 ip 블럭으로 설치한다.
우선 쿠버네티스 클러스터를 만들 베스천 서버 1대를 만들자.
1
베스천 서버 생성을 위해 퍼블릭 네트워크에 서버 1대를 만든다.
aws에서 제공하는 디폴트 네트워크가 퍼블릭이므로 그곳에 서버 1대를 만들면 된다.
VPC 마법사로 만들어도 된다.
배스천 생성
아마존 리눅스2로 만든다.
aws cli등 설치되어 있다.
베스천 서버에 admin role 부여한다.
꼭 admin이 아니더라도 되지만, 여러 권한이 필요하여 여기서는 admin권한을 제공한다.
쿠버네티스 클러스터를 만드는 명령을 날리려면 vpc생성, 서버 생성등 권한이 필요하다.
2
vpc
3
ec2
Network setting > Edit
Auto-assign public ip
Enable로 변경한다.
4
iam > roles > create roles > admin 추가
bastion1
5
ec2 > 보안 > role 수정 > bastion1 로 변경
1
베스천 EC2 서버에 로그인
쿠버네티스를 설치하는 툴이 eksctl 설치해보자.
eksctl 다운로드
curl --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv -v /tmp/eksctl /usr/local/bin
eksctl version
2
쿠버네티스에 명령을 내리는 kubectl 을 설치해 보자.
sudo curl --location -o /usr/local/bin/kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
sudo chmod +x /usr/local/bin/kubectl
kubectl version --short --client
1
리전을 변수로 지정
export AWS_REGION=ap-northeast-2
2
cksctl create로 쿠버네티스 클러스터를 생성
eksctl create cluster \
--name dev-cluster \
--nodegroup-name dev-nodes \
--node-type t3.small \
--nodes 3 \
--nodes-min 1 \
--nodes-max 4 \
--managed \
--version 1.28 \
--region ${AWS_REGION}
(15분)
3
클라우드 포메이션에서 가서 생성되는 내용 확인이 가능하다.
4
생성 완료후 node 보기.
kubectl get nodes
6
현재 자격증명 확인
aws sts get-caller-identity --query Arn
"arn:aws:iam::476286675138:user/12-24-user"
모니터링 하기
watch -d kubectl get pods,svc,deploy,rs
pod 1개 만들기
k get deploy,rs,po
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mario 1/1 1 1 5m34s
deployment.apps/websrv 4/4 4 4 34s
NAME DESIRED CURRENT READY AGE
replicaset.apps/mario-7f7ddc97f4 1 1 1 5m34s
replicaset.apps/websrv-7bf7d5d9ff 4 4 4 34s
NAME READY STATUS RESTARTS AGE
pod/mario-7f7ddc97f4-mwnf9 1/1 Running 0 5m34s
pod/nginx-pod 1/1 Running 0 60s
pod/websrv-7bf7d5d9ff-5hkfc 1/1 Running 0 34s
pod/websrv-7bf7d5d9ff-9jcvz 1/1 Running 0 34s
pod/websrv-7bf7d5d9ff-bx5k5 1/1 Running 0 34s
pod/websrv-7bf7d5d9ff-km5qm 1/1 Running 0 34s
(2분 걸림)
3
a126d1fdc5218411bac03dd88d67b423-1418180016.ap-northeast-2.elb.amazonaws.com
확장
kubectl scale 명령어~~~~~~
www 를 CNAME 으로 로드밸런서를 연결하자
a126d1fdc5218411bac03dd88d67b423-1418180016.ap-northeast-2.elb.amazonaws.com
네임스페이스를 디폴트로 해서 파드를 확인한다.
1
kubectl get pods -n default
kubectl get pods
파드안에 컨테이너수 이다.
2
변수로 저장.
첫번째 pod 이름을 환경 변수에 저장
export MY_POD_NAME=$(kubectl get pods -n default -o jsonpath='{.items[0].metadata.name}')
kubectl -n default describe pod $MY_POD_NAME
3
pod 에서 bash shell에 연결한다.
kubectl exec -it ${MY_POD_NAME} -n default -- /bin/bash
ls
4
게임 설치
apk add micro-tetris
tetris
exit
https://brunch.co.kr/@topasvga/2469
https://brunch.co.kr/@topasvga/2468
https://brunch.co.kr/@topasvga/1679
감사합니다.