일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 가상스레드
- Springboot 테스트 속도
- JAVA 가상스레드란
- 스프링 scouter
- 스프링 모니터링
- 스프링 성능테스트
- 스프링 gatling
- file upload progress
- okhttp progress
- 성능테스트 모니터링
- 테스트 속도개선
- gradle custom plugin
- spring socuter
- okhttp sink
- okhttp upload progress
- 테스트 속도
- gradle plugin이란
- spring 테스트 성능
- junit 테스트 속도
- gradle pl
- @MockBean 속도
- gatling
- spring gatling
- custom plugin
- 자바Thread
- @DirtiesContext 속도
- gradle plugin만들기
- 자바 가상스레드란
- spring 테스트 속도
- JDK21 가상스레드
- Today
- Total
호딩클라우드
kubernetes란? 그리고 deployment,pod 생성해보기 본문
https://kubernetes.io/ko/docs/concepts/overview/
쿠버네티스란 무엇인가?
쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하
kubernetes.io
쿠버네티스란 무엇인가?
컨테이너화된 서비스를 관리하기위한 오픈소스 플랫폼입니다.
쿠버네티스 유용한이유
물리서버를 이용하던 시대에는 배포되는 애플리케이션에 대해 최적화된 물리서버의 리소스를 제공할 수 없었습니다.
이로인해 가상화가 등장하고, 하나의 물리서버에서 애플리케이션을 격리하여 여러 가상시스템을 실행할 수 있게 되었습니다.
이후 더나은 가상화를 제공하기위해 컨테이너개념이 등장했으며 개발과 운영의 관심사 불리가 이루어졌습니다.
쿠버네티스 구성요소
파드 자세히
하나이상의 컨테이너 그룹입니다.
내부 IP address, 공유스토리지 등이 포함되어 있습니다. 쿠버네티스 최소 단위입니다.
노드 자세히
쿠버니티스 작업장비(워커머신)이며 클러스터에 따라 vm 또는 물리머신이 될 수 있습니다.
여러개의 파드는 하나의 노드위에서 동작합니다.
Deployment
Deployment는 쿠버네티스가 애플리케이션의 인스턴스를 어떻게 생성하고 업데이트 해야 하는지를 지시한다. Deployment가 생성되면 Control Plane이 Deployment에 포함된 애플리케이션 인스턴스가 클러스터의 개별 노드에서 실행되도록 스케줄링합니다.
namespace
쿠버네티스 리소스들이 묶여 있는 하나의 가상 공간 또는 그룹입니다.
[실습] yaml로 deployment 생성 해보기
[목표]
namespace: hoding-1
pod이름 : nginx-pod
Replicas : 4
컨테이너 이름: nginx-container
컨테이너 이미지: nginx:1.14 생성
#namespace 확인
kubectl get ns
#namepsace 생성
kubectl create ns hoding-1
- namespace/hoding-1 created
#default nampspace 설정
kubectl config set-context --current --namespace=hoding-1
#default namespace 확인, confgin 파일의 context로도 확인 가능 "cat $HOME/.kube/config"
kubectl config view --minify | grep namespace
[practice-1.yml]
#요구사항에 맞게 yml파일 작성
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-pod
spec:
replicas: 4
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx-container
image: nginx:1.14
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#writing-a-deployment-spec
#yml파일을 이용해서 deployment 생성
kubectl create -f practice-1.yml
- deployment.apps/nginx-pod created
#생성된 pod 확인
kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-pod-b46989c4d-bbnns 1/1 Running 0 5s
nginx-pod-b46989c4d-t965r 1/1 Running 0 5s
nginx-pod-b46989c4d-w5dkt 1/1 Running 0 5s
nginx-pod-b46989c4d-zstwp 1/1 Running 0 5s
#생성된 deployment 확인
kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-pod 4/4 4 4 102s
#요구사항에 맞는 pod가 생성되었는지 자세히 확인
kubectl describe deployment nginx-pod
Name: nginx-pod
Namespace: hoding-1
...
Replicas: 4 desired | 4 updated | 4 total | 4 available | 0 unavailable
...
Pod Template:
Labels: app=nginx-pod
Containers:
nginx-container:
Image: nginx:1.14
# deployment 삭제
kubectl delete deployment nginx-pod
[실습] 커맨드 명령으로 pod생성, 테스트 그리고 로그확인하기
[목표]
nginx파드를 생성하고 로그확인하기
pod name: nginx-pod
image: nginx
#pod 생성
kubectl run nginx-pod --image=nginx --port=80
#pod 자세히 확인
kubectl describe pod nginx-pod
# http://localhost/ 에 요청보내기
kubectl exec nginx-pod -- curl http://localhost/
#http://localhost/fail 에 요청보내기
kubectl exec nginx-pod -- curl http://localhost/fail
#로그확인
kubectl logs -f nginx-pod
#모든 pod 삭제
kubectl delete pod --all
#hoding-1 namespace 삭제
kubectl delete namespace hoding-1