다음은 쿠버네티스 스터디 자료를 참고해 정리한 내용입니다.
1
EC2 > Key pair > 키페어 생성 > seo-japan
2
CloudFotmation 으로 EC2 1대 생성
cloudformation으로 명령어 날릴 서버 1대 쉽게 생성?
cloudformation 으로 kops 가 설치된 ec2 만들기
도쿄
Stack name
seo32
k8sPrivateDomainame :
seo31.cndk.k8s
입력하지 않으면 nickname.cndk.k8s 로 생성됨
KeyName : ec2 키페어 선택
My-VPC 와 Public Subnet 1개가 생긴다.
3
admin role 하나 만들어 EC2에 부여하기
IAM > EC2 > k8s-admin
kops-ec2 > 오른 마우스 > 보안 > IAM역할수정 > role 적용한다.
이제 서버에서 원하는 명령어로 s3들 만들수 있다.
4
route53에 pirvate dns 가 자동 구축 된다.
route53 들어가 확인해보자. A레코더 반드시 확인
5
ec2에 로그온해 확인해보자
dig +short ns seo31.cndk.k8s
ns-1024.awsdns-00.org.
ns-1536.awsdns-00.co.uk.
ns-0.awsdns-00.com.
ns-512.awsdns-00.net.
1
설치한 EC2로 로그인
kops-ec2
일본 리전으로 변경
REGION=ap-northeast-1
echo $REGION
ap-northeast-1
//싱가포르
REGION=ap-southeast-1
2
k8s 설정 파일 버킷 생성
쿠버네티스 설치할때 필요한 설정파일을 위한 S3 저장소를 만든다.
aws s3 mb s3://seo-k31 --region $REGION
aws s3 ls
3
export NAME=seo31.cndk.k8s
export KOPS_STATE_STORE=s3://seo-k31
echo 'export NAME=seo31.cndk.k8s' >>~/.bashrc
echo 'export KOPS_STATE_STORE=s3://seo-k31' >>~/.bash
4
kops 설정 파일 생성(s3) 및 k8s 클러스터 배포 ?
echo $REGION
echo $NAME
kops create cluster --zones="$REGION"a --networking calico --master-size t3.medium --node-size t3.medium --node-count=2 --ssh-public-key ~/.ssh/id_rsa.pub --dns private $NAME -y
(설치에 30분 소요됨)
마스터 노드 1대(t3.medium)
워커 노드 2대(t3.medium) 생성됨
Public 도메인이 있는경우와 설치 명령어가 조금 다름 - private 라는 명령어가 들어감~
1
배포 상태 확인
kops validate cluster --wait 10m
Using cluster from kubectl context: seo4.cndk.k8s
Validating cluster seo4.cndk.k8s
INSTANCE GROUPS
NAME ROLE MACHINETYPE MIN MAX SUBNETS
master-ap-southeast-1a Master t3.medium 1 1 ap-southeast-1a
nodes-ap-southeast-1a Node t3.medium 2 2 ap-southeast-1a
NODE STATUS NAME ROLE READY
ip-172-20-45-237.ap-southeast-1.compute.internal master True
ip-172-20-54-176.ap-southeast-1.compute.internal node True
ip-172-20-59-102.ap-southeast-1.compute.internal node True
Your cluster seo4.cndk.k8s is ready
2
kops get cluster
NAME CLOUD ZONES
seo4.cndk.k8s aws ap-southeast-1a
3
Master API 서버에서 실습하도록 하자~
설정 파일을 API 서버로 복사가 필요하다.
설정파일로 명령을 날릴수 있다~
ssh 키를 api 서버로 복사
scp -i ~/.ssh/id_rsa ~/.kube/config ubuntu@api.seo31.cndk.k8s:/tmp/
4
api 서버로 ssh로 접속
ssh -i ~/.ssh/id_rsa ubuntu@api.seo31.cndk.k8s
ubuntu@ip-172-20-60-173:~$
// 접속 됨
5
클러스터 생성 확인?
kubectl get nodes
master 1대
node 2대 생김
NAME STATUS ROLES AGE VERSION
ip-172-20-45-237.ap-southeast-1.compute.internal Ready control-plane,master 21m v1.20.8
ip-172-20-54-176.ap-southeast-1.compute.internal Ready node 18m v1.20.8
ip-172-20-59-102.ap-southeast-1.compute.internal Ready node 18m v1.20.8
기타
로컬 PC에 쿠버네티스 설치하는법
https://brunch.co.kr/@topasvga/1667https://brunch.co.kr/@topasvga/1682
사용하지 않을때 삭제한다.
1
EC2 > Autoscaling 그룹에서 반드시 Autoscaling 그룹을 삭제하라.
삭제하지 않으면 EKS node 들이 다시 자동 생성 된다.
EC2에 가서 EC2 들이 삭제되었는지 확인하라.~
2
echo $NAME
kops delete cluster $NAME --yes
3
AWS CloudFormation 스택 삭제로 kops-ec2 등 명령내리는 EC2 삭제
4
EKS > 클러스터 에서 삭제 되었는지 반드시 확인하라~
다음 과정
https://brunch.co.kr/@topasvga/1682
https://brunch.co.kr/@topasvga/1656