brunch

1-2. kubernetes 구축

by Master Seo

쿠버네티스를 설치해보자~

여기서는 AWS에 쿠버네티스를 설치해 사용해보자 (아마존 EKS가 아니다)

Master와 node 모두 사용자가 관리한다.


<1> AWS에 kubernetes 구축 - 학습용

<2> 게임 외부 노출 하기

<3> 테스트해보기

<4> 삭제

<10> 기타- 노트북에 kubernetes 설치법 (연습용)

<30> 전체 프로젝트 보기

<40> 쿠버네티스 배워보기

<100> 다음 과정 보기




<1> AWS에 kubernetes 구축 - 학습용


실습 1-3. KOPS로 AWS에 쿠버네티스 설치

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





<2> 게임 외부 노출 하기


1

터미널 2에서 모니터링 걸어 놓기

watch -d kubectl get deploy,svc,ep,pod,svc,rs



2

Deployment 생성

kubectl create -f - 는 바로 실행하라는 명령어


cat <<EOF | kubectl create -f -

apiVersion: apps/v1

kind: Deployment

metadata:

labels:

app.kubernetes.io/name: load-balancer-example

name: deployment-2048

spec:

replicas: 2

selector:

matchLabels:

app.kubernetes.io/name: app-2048

template:

metadata:

labels:

app.kubernetes.io/name: app-2048

spec:

containers:

- image: alexwhen/docker-2048

name: app-2048

ports:

- containerPort: 80

EOF


3

디플로이먼트 이름은 deploy 이름 확인 = deployment-2048


k get deploy

NAME READY UP-TO-DATE AVAILABLE AGE

deployment-2048 5/5 5 5 18m



4

lb 생성

lb 이름을 my-service로 함

kubectl expose deployment deployment-2048 --type=LoadBalancer --name=my-service

(3분 소요)



5

kubectl get services my-service



6

브라우저로 접속 확인

10 k8s game.png


참고 자료

https://kubernetes.io/ko/docs/tutorials/stateless-application/expose-external-ip-address/





<3> 테스트 해보기


1

ops-view 설치해 현황 모니터링 (실행후 5분 소요)


curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

helm version --short

helm repo add stable https://charts.helm.sh/stable


helm install kube-ops-view stable/kube-ops-view --set service.type=LoadBalancer --set rbac.create=True


2

모니터링

watch -d kubectl get deploy,svc,ep,pod,svc,rs


3

확인

웹브라우저에서

service/kube-ops-view 의 EXTERNAL-IP 로 접속



kube-ops-view 상세 설정법

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



4

route53에서 cname 설정해 접속하기


5

Pod를 늘려보자~


kubectl scale deployment deployment-2048 --replicas=10

kubectl scale deployment deployment-2048 --replicas=20


6

쿠버네티스는 master node 와 work node 2개가 있다.

따라서, 오토스케일링 그룹 2개 이다.

콘솔에서 2개가 보인다.

EC2 > Auto Scaling 그룹


7

Master node 수는 따로 변경작업을 하지 않기 바란다.

Master에 접속이 안된다 - -

It is also possible that a host key has just been changed.

The fingerprint for the ECDSA key sent by the remote host is

SHA256:VzpGJMmquGGkimlo2oHYirPJ9J3FNA2+etIu2l8jKq0.

Please contact your system administrator.

Add correct host key in /root/.ssh/known_hosts to get rid of this message.

Offending ECDSA key in /root/.ssh/known_hosts:1

ECDSA host key for api.seo31.cndk.k8s has changed and you have requested strict checking.

Host key verification failed.



8

work node 수 늘리기


오토스케일링 그룹 이름을 알아야 한다

콘솔에서 woker node 이름 확인

nodes-ap-xxxxxxxxxxxxxxxxx

20 autoscaling group 2.png


9

aws cli 설치하기

sudo apt install awscli


10

리전 설정 - 여기서는 도쿄로 설정한다. ap-northeast-1

aws configure

엔터

엔터

ap-northeast-1

엔터


11

AWS 웹 콘솔에서 Auto Scaling group name 확인 ?

다음은 Auto Scaling group 2개, 1개는 master , 하나는 node 그룹

master-ap-northeast-1a.masters.seo32.cndk.k8s

nodes-ap-northeast-1a.seo32.cndk.k8s


12

work node name 확인 ?

ASG ( Auto Scaling Group)이름 ?


ASG_NAME=nodes-ap-northeast-1a.seo32.cndk.k8s

echo ${ASG_NAME}


13

node가 4개가 되도록 변경 한다.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 2 --desired-capacity 4 --max-size 6




14

2분 후 node 증가 확인




<4> 삭제


kubectl delete deployment deployment-2048


아니면 디프롤이먼트 전체 삭제 , 서비스 전체 삭제

kubectl delete deployment --all

k delete service --all

// ops-view도 모두 삭제 되니 참고




<10> 기타- 노트북에 kubernetes 설치법 (연습용)


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




<30> 전체 프로젝트 보기


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




<40> 쿠버네티스 배워보기


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



<100> 다음 과정 보기


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




감사합니다.

keyword
매거진의 이전글쿠버네티스 이미지.컴퓨터 배경화면으로 ♡♡♡