일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바스크립트
- 스프링부트
- kubernetes
- 티스토리챌린지
- Spring
- 엘라스틱서치
- 알고리즘정렬
- Sort
- 카카오 면접
- 카카오
- java
- 김영한
- k8s
- 오블완
- 스프링핵심원리
- 이펙티브자바
- 스프링 핵심원리
- Effective Java
- 코딩테스트
- 클린아키텍처
- 스프링
- 이차전지관련주
- Effective Java 3
- ElasticSearch
- 이펙티브 자바
- 자바
- 알고리즘
- JavaScript
- effectivejava
- 예제로 배우는 스프링 입문
- Today
- Total
Kim-Baek 개발자 이야기
Kubernetes Service, Deployment 본문
Kubernetes Service
Qwiklabs의 Orchestrating the Cloud with Kubernetes
을 공부 하면서 정리한 내용이다.
Service
Kubernets Service는 논리적인 Pods set의 추상적개념으로 이해하면 된다.
즉 Pods의 Endpoint라고 생각하면 된다. 특정 Pod 들은 언제든지 restart되거나 stop 될 수 있다.
그래서 Service를 통해 Pod 들의 안정적인 Endpoint를 제공할 수 있다.
Service는 label
를 사용해 어떤 Pod들을 묶을지 결정한다.
Service Type
Service는 4가지 Type을 가지고 있으며, default는 ClusterIP
Type이다.
Service Type에 대해서는 간단하게 정리하고, 자세한 Spec은 아래 kubernetes
documentation에서 확인 할 수 있다.
- ClusterIP - defatul type이며, Service는 오직 cluster-internal IP를 통해 Cluster 내부에만 노출된다.
- NodePort - 외부에서 접근 가능하도록 static port (NodePort)를 노출한다.
- LoadBalancer - Service에 Load balancer를 적용한다.
- ExternalName - Service와 DNS name을 맵핑해준다.
Creating Service
Service를 정의한 Manifest파일을 적용시킨다.
kubectl create -f services/monolith.yaml
Deployment
Deployment는 Running 중인 Pod의 수를 유지하는 등 Pod를 관리해준다.
Deployment는 ReplicaSets를 통해 Pod의 Starting, Stopping을 관리한다.
(Replicasets의 개념은 추후에 다뤄 볼 예정이다.)
Pod의 수는 사용자가 정의해준 replicas 수 이다.
예를 들어, 위와 같이 replicas 이 3으로 정의된 Deployment가 있다고 가정하다.
Node3 이 예기치 못한 에러로 Down 된다면, Deployment는 3개의 Pod를 유지하기 위해서 Pod를 Node2 에 새로 생성하게 된다.
이 밖에, Deployment를 통해서 Scaling이나 Rolling update, 배포 등을 편하게 해준다.
Creating Deployment
Deployment 를 생성하는 방법 역시 매니페스트 파일을 정의 후 생성이 가능하다.
Reference
'개발 > k8s' 카테고리의 다른 글
Kubernetes 의 내부도메인 (0) | 2024.11.19 |
---|---|
Kubernetes StatefulSets (0) | 2020.09.20 |
Kubernetes Pod (0) | 2020.09.01 |