Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- docker
- 조합
- VUE
- KEVISS
- jwt
- 재정의
- 생성자 주입
- static
- Test
- java
- 열 속성
- 테스트 코드
- cache
- AOP
- stream
- 인덱스
- 바이너리 카운팅
- StringBuilder
- DI
- SQL
- jpa
- redis
- 필드 주입
- equals
- hashcode
- lambda
- select_type
- Spring
- DDL
- MSA
Archives
- Today
- Total
백엔드 개발자 블로그
Core Concept 본문
2.1. Pod
- 역할
- 앱의 단일 인스턴스
- 생성 방법
- 설정파일(yaml) 작성 후 생성하기
- 설정파일(yaml) 작성`apiVersion: v1``kind: Pod``meetadata:`` ``name: {Pod이름}`` ``labels:`` ``app: {앱이름}`` ``type: {앱타입}` `spec:`` ``containers:`` ``- name: {컨테이너이름}`` ``image: {이미지이름}``:wq!`
- `vi {파일이름}.yaml`
- 설정파일을 토대로 Pod 생성
- `kubectl create -f {파일이름}.yaml`
- 명령어로 간단하게 생성 및 설정하기
- 바로 Pod 생성하기
- `kubectl run {Pod이름} --image={image이름}`
- 설정파일 작성 후 Pod 생성
- `kubectl run nginx --image=nginx --dry-run=client -o yaml > {파일이름}.yaml``kubectl create -f {파일이름}.yaml`
- 설정파일(yaml) 작성 후 생성하기
- 조회 방법`kubectl get pods`
- 존재하는 pod, pod 상태, pod이름 확인 가능
- 상세 조회 방법`kubectl describe pod {pod이름}`
- 어떤 image로 생성 됐는지, 컨테이너 상태, 에러 원인 확인 가능
- 삭제 방법
- `kubectl delete pod {pod이름}`
- 수정 방법
- 설정 파일 수정하기
- `vi {파일이름}.yaml`
- 수정사항 적용하기
- `kubectl apply -f {파일이름}.yaml`
- 적용 됐는지 확인하기
- `kubectl get pods`
2.2. ReplicaSet
- 역할
- 고가용성 : 응용어플리케이션이 항상 실행되도록 하기 위해 포드를 복사함
- 로드 밸런싱 : 서로 다른 노드의 여러 포드에 걸쳐 부하 분산
- 생성 방법
- 설정 파일 작성`apiVersion: apps/v1``kind: ReplicaSet``metadata: ` `spec:`` ``template:`` ``{apiVersion,kind를 제외한 pod 설정 파일 내용}`` ``replicas: {복제갯수}`` ``selector:`` ``{Pod metadata 하위 key-value 넣기}`
- `vi {파일이름}.yaml`
- 설정 파일 토대로 Replica Set 생성
- `kubectl create -f {파일이름}.yaml`
- 조회 방법
- `kubectl get rs`
- 상세 조회 방법
- `kubectl describe rs {ReplicaSet이름}`
- 삭제 방법
- `kubectl delete rs {ReplicaSet이름}`
- 수정 방법
- 설정 파일 수정
- `kubectl edit rs {rs이름}` `OR` `vi {파일이름}.yaml`
- 수정 적용하기
- `kubectl replace -f {파일이름}.yaml`
- 확인하기
- `kubectl get rs`
- 생성이 안됐으면 기존 pod 삭제
- `kubectl delete pod {pod이름}`
2.3. Deployment
- 역할
- 애플리케이션의 배포와 관리(버전 업데이트, 롤백, 스케일링)를 담당
- 생성 방법
- yaml 파일 작성 후 Deployment 생성
- 설정파일 작성
- `apiVersion: apps/v1``kind: Deployment``metadata: ` `spec:`` ``template:`` ``{apiVersion,kind를 제외한 pod 설정 파일 내용}`` ``replicas: {복제갯수}`` ``selector:`` ``{Pod metadata 하위 key-value 넣기}`
- 설정 파일 토대로 Deployment 생성
- `kubectl create -f {파일이름}.yaml`
- 명령어로 간단히 생성
- 바로 생성하기
- `kubectl create deployment --image=nginx nginx`
- yaml 파일 작성 후 생성하기
- `kubectl create deployment --image=nginx nginx --dry-run=client -o yaml > nginx-deployment.yaml``kubectl create -f nginx-deployment.yaml`
- yaml 파일 작성 후 Deployment 생성
2.4. Service
- 역할
- 애플리케이션 안팎의 다양한 구성 요소간의 통신을 가능하게 함
- 종류
- NodePort
- 역할
- 노드의 포트와 내부 포트 매핑 + 내부 포트와 Pod IP 매핑
- ssh로 Node 접속한 뒤 내부 Pod로 접속할 필요 없이 바로 Node에 접속하면 애플리케이션 실행 됨
- 생성 방법
- 역할
- ClusterIP
- 역할
- ssh로 Node 접속한 뒤 내부 Pod로 접속할 필요 없이 바로 Node에 접속하면 애플리케이션 실행 됨
- 중간다리 역할을 해서 Pod를 변경해도 서비스 간 통신에 영향을 안 미치게 됨
- 생성 방법
- 역할
- LoadBalancer
- 역할
- 사용자에게 단일 IP를 제공 + 알아서 부하 분산
- 생성 방법
- 역할
- NodePort
- 조회 방법
- `kubectl get services`
- 상세 조회 방법
- `kubectl describe service {service이름}`
- 수정 방법
- yaml 파일 수정
- 수정 적용
- 삭제 방법
- `kubectl delete service {service이름}`
2.5. Namespace
- 역할
- 오브젝트를 논리적으로 구분하여 그룹핑 함
- 생성 방법
- 옵션
- Resource Quota
- 조회 방법
- 상세 조회 방법
'CI CD > K8S' 카테고리의 다른 글
Cluster Component (1) | 2023.08.22 |
---|