Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

쟝이의 세상

Kubernetes(POD, Deployment, ReplicaSet, Service 생성) 본문

수업내용

Kubernetes(POD, Deployment, ReplicaSet, Service 생성)

zyangee 2024. 9. 27. 14:53

📌 도커 이미지 생성

✔️ 실습 파일 다운로드 및 압축 해제

$ wget http://jadecross.iptime.org:7778/k8s/lab/lab_k8s_2024.tar.gz
$ tar xfz lab_k8s_2024.tar.gz

 

✔️ 실습 파일 index.html 수정

$ cd ~/workspace/guestbook/src/main/resources/templates/
$ sed -i 's/방명록 v1/방명록 v1(이지향)/g' index.html

 

✔️ Maven 프로젝트 빌드 및 패키징

$ cd ~/workspace/guestbook
$ mvn clean package
$ docker build -t zyange/k8s_guestbook:1.0 .

 

✔️ 도커 로그인 후 이미지 push

$ docker login
$ docker push zyange/k8s_guestbook:1.0

👇🏻이미지 push 확인 화면

 

✔️ 도커 컨테이너 생성하고 실행 (docker run)

$ docker run --rm -p 8080:8080 zyange/k8s_guestbook:1.0
$ docker run -d -p 8080:8080 zyange/k8s_guestbook:1.0

"두 명령어의 차이"

--rm : 컨테이너가 종료되면 자동으로 삭제

-d : 컨테이너를 백그라운드에서 실행

 

👇🏻 사이트 접속

 

📌 POD, ReplicaSet, Service, Deployment 생성

1) pods 확인
$ kubectl get pods​

2) services 확인
$ kubectl get services

3) replicasets 확인
$ kubectl get replicasets​

 

✔️ deployment 생성

$ kubectl create deployment guestbook --image=zyange/k8s_guestbook:1.0 --port=8080
$ kubectl get all -o wide

"설명"

deployment 생성하면 replicaset, pod가 모두 생성되는 것을 확인할 수 있음

 

✔️ service 생성 및 확인

$ kubectl expose deployment guestbook --type=LoadBalancer --name guestbook-http
$ kubectl get services

 

✔️ 유지 pod 수 지정(replicaset)

$ kubectl scale deployment guestbook --replicas=3

 

✔️ 서비스 및 pod의 ip번호 확인

$ kubectl get services
$ kubectl get pods -o wide

 

✔️ 포트포워딩 된 ip로 접속시도

👇🏻 사이트 접속

 

✔️ Metrics Server 설치 (yaml파일 이용)

$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

 

✔️ 리소스 사용량 확인

$ kubectl top nodes

👇🏻 사이트 접속

 

📌 POD, ReplicaSet, Service, Deployment 삭제

✔️ pod 삭제 시도

 $ kubectl delete pods guestbook-79dbc8b87c-bctps
 $ kubectl delete pods guestbook-79dbc8b87c-lm7jq

"설명"

pod를 삭제해도 replicaset이 설정되어 있으므로 계속 3개가 유지된다.(pod가 새로 생겨남)

 

✔️ replicaset 삭제 시도

$ kubectl delete rs guestbook-79dbc8b87c

"설명"

deployment로 생성된 replicaset은 delete 해도 지워지지 않음을 확인할 수 있다.

 

✔️ deployment 삭제 시도

$ kubectl delete deployment guestbook

"설명"

deployment를 삭제함으로써 replicaset과 pod가 모두 삭제된 것을 확인할 수 있다.

동시에 수동으로 만든 guestbook-manual 파드는 replicaset이 없음을 알 수 있다. (파드 자체를 수동으로 생성했기 때문)

 

✔️ 포트포워딩

$ kubectl port-forward guestbook-manual 8888:8080

"설명"

같은 세션을 하나 더 열어서 "watch -n 1 kubectl get pods" 명령어로 확인해보면

 

👇🏻실행화면

8888포트로 실행했을 때에 8080포트로 포트포워딩 되어 해당 pod가 열리는 것을 확인할 수 있다.

'수업내용' 카테고리의 다른 글

Kubernetes 실습  (0) 2024.09.27
Kubernetes(label, namespace)  (0) 2024.09.27
쿠버네티스 개념 정리  (1) 2024.09.25
OWASP ZAP  (2) 2024.09.11
php <form태그와 변수값 전달>  (6) 2024.09.03