brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 03. 2021

쿠버1탄-13.도메인 없이 KOPS로 AWS에쿠버네티스

다음은 쿠버네티스 스터디 자료를 참고해  정리한 내용입니다.


도메인 없이 KOPS로 AWS에 쿠버네티스 설치


<1> Cloudformation으로 command 서버 1대 생성

<2> AWS K8s 클러스터 생성하기

<3> 설치후 확인

<4> 삭제



<1>  Cloudformation으로 command 서버 1대 생성


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.



<2> AWS K8s 클러스터 생성하기


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 라는 명령어가 들어감~




<3> 설치후 확인


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




<4> 삭제


사용하지 않을때 삭제한다.


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



감사합니다.





        

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