Toby's Study Blog
article thumbnail
Published 2023. 8. 10. 16:24
Pod kubernetes

안에 하나의 독립적인 서비스를 줄 수 있는 컨테이너가 있다.

컨테이너는 서비스가 연결될 수 있도록 포트를 가지고 있는데

한 컨테이너가 포트를 하나 이상 가질 순 있지만 한 파드 내에서

포트가 중복될 순 없다.

파드가 생성될때 고유의 ip주소가 할당된다.

쿠버네티스 클러스터 내에서만 이 ip를 통해 파드에 접근 가능하다.

pod에 문제가 생기면 시스템이 감지를 해 삭제 후 재 생성, ip주소는 변경 된다.

apiVersion: v1

kind: Pod

metadata:

name: pod-1

spec:

containers:

  • name: container1

image: kubetm/p8000

ports:

  • containerPort: 8000
  • name: container2

image: kubetm/p8080

ports:

  • containerPort: 8080

Label

사용 이유 : Object를 분류, 분류된 Object 들만 따로 골라서 연결하기 위함구성 : Key-Value, 한 파드에 여러개의 라벨을 달 수 있다.

웹 화면만 보고 싶다 -> 타입이 웹인 라벨이 달린 파드들을 서비스에 연결하여 서비스의 정보를 웹 개발자에게 알려주면 된다. (자신이 원하는 파드들만 접속할 수 있음)

apiVersion: v1

kind: Pod

metadata:

name: pod-2

labels:

type: web

lo: dev

spec:

containers:

  • name: container

image: kubetm/initapiVersion: v1

kind: Service

metadata:

name: svc-1

spec:

selector:      selector에 key와 value를 넣으면 해당

type: web. 내용과 매칭되는 라벨이 붙어있는 파드에 연결된다.

ports:

  • port: 8080

Node Schedule

Node에  라벨을 달아 Pod를 만들때  Node를 지정할 수 있다.

  1. 노드의 라벨과 매칭되는 key, value 를 넣는다.

apiVersion: v1

kind: Pod

metadata:

name: pod-3

spec:

nodeSelector:

kubernetes.io/hostname: k8s-node1

containers:

  • name: container

image: kubetm/init

  1. 노드에 사용가능한 자원량(메모리)에 따라 쿠버네티스가 알아서 스케줄링을 해준다.

apiVersion: v1

kind: Pod

metadata:

name: pod-4

spec:

containers:

  • name: container

image: kubetm/init

resources:

requests:

memory: 2Gi //Pod는 2GB만큼을 요구한다.

limits:

memory: 3Gi //초과시 Pod종료시킴

'kubernetes' 카테고리의 다른 글

Pod-Lifecycle  (0) 2023.08.10
Namespace, ResourceQuota, LimitRange  (0) 2023.08.10
Service  (0) 2023.08.10
Controller  (0) 2023.08.10
Volume  (0) 2023.08.10
profile

Toby's Study Blog

@Toby12

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그