쿠버네티스 스터디1-2
1. Pod-Container, Label, NodeSchedule
* 쿠버네티스 관리방법(용어정리)
-
Master node가 존재하며, Master node에 여러개의 Pod이 묶여서 관리
-
Master node
- Node Controller(노드를 관리한다)
-
Node
- 자원제공 (자원 필요시 Node 추가)
-
NameSpace
- ResourceQuota // Limitrange로 자원관리 설정을 할 수 있다.
-
Pod
- ConfigMap // Secret으로 Pod의 환경관리를 설정할 수 있다.
- Pod안에는 컨테이너가 존재한다
- 컨테이너당 하나의 앱이 동작한다
- Volume을 통해 Pod끼리 연결된다
- ConfigMap // Secret으로 Pod의 환경관리를 설정할 수 있다.
-
Replicaset, Replication Controller
- Pod이 죽거나 오류 장애 발생시 부활시킨다.
-
Deployment
- Pod의 복제, 배포
-
Daemonset
- 한 Node에 Pod이 하나만 유지되게끔 함
-
Cronjob
- 특정작업만 실행시킨 후 Pod 종료시키게끔 하기 위해 사용
-
실습 Part
1. 목적
- 직접 Pod을 생성시켜보고 각 명령어가 어떤의미로 쓰이는지 알아보기
-
Container
* apiVersion: v1 kind: Pod metadata: ** name: pod-1 //Pod 이름 설정 spec: containers: - **name: container1 //컨테이너 이름 image: kubetm/p8000 ports: - **containerPort: 8000 //노출되어있는 포트 설정 - name: container2 image: kubetm/p8080 ports: - containerPort: 8080
- 정리
- Pod
- 컨테이너당 여러개의 Port를 갖을 순 있지만, 같은 Port번호를 갖을 순 없다(같은 Pod에서)
이를 '호스트로 묶여있다' 라고함 - 한 Pod 생성시 고유 IP주소 생성
- 쿠버네티스 클러스터네에서만 접근 가능하다
- 외부에선 접근 불가하다
- Pod문제시 시스템에서 삭제 후 재생성 시킬시 IP도 변동된다
- Pod의 IP는 휘발성이다!
- 컨테이너당 여러개의 Port를 갖을 순 있지만, 같은 Port번호를 갖을 순 없다(같은 Pod에서)
- Pod
- 정리
-
Label
- 오브젝트 목적에 따라 분류, 선택 할 수 있다.
- (key, value)가 한쌍이다
- 한 Pod 에 여러개의 라벨을 달 수 있다
- 서비스에 해당 라벨을 선택하여 연결을 파악 할 수 있다
- Pod
labels:
type: web // 타입 지정
lo: dev
- Service
spec: selector: type: web // 해당타입의 Pod과 연결
-
NodeSchdule
-
두가지방법으로 생성 가능, 지정가능하다
- 직접 선택방법
spec: nodeSelector: kubernetes.io/hostname: k8s-node1
- 쿠버네티스 스케쥴러가 직접 지정(시스템이 Pod가 생성시 요구되는 자원을 파악하여 적절한 Node에 배치)
resources: requests: //메모리가 넘어도 pod을 종료시키진 않음 memory: 2Gi limits: //메모리의 경우 리미트가 넘으면 바로 pod종료 memory: 3Gi
-
Author And Source
이 문제에 관하여(쿠버네티스 스터디1-2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kurikuri/쿠버네티스-스터디1-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)