rueki
쿠버네티스 파드 본문
Pod 개념 : 한 개 이상의 컨테이너로 단일 목적의 일을 하기 위해서 모인 단위이다. 파드는 언제든 죽을 수 있는 존재임.
1. 파드 생성 기초(파드 내에서 하나의 컨테이너 설치)
- pod.yaml (예시)
apiVersion: v1
kind: Pod
metadata:
name: sample-pod
spec:
containers:
- name: nginx-container
image: nginx:1.16
- yaml파일을 통한 pod 생성
kubectl apply -f pod.yaml

파드 내에 메타데이터, 스펙이 있는 것으로 생각하면 좋음.
메타데이터는 파드의 레이블, 이름과 같은 정보를 나타내는 것, 스펙은 파드에서 호출할 컨테이너 이미지를 지정한다.
위에서는 nginx:1.16의 이미지를 컨테이너로 생성한다는 뜻이다.
2. 파드 생성 기초2(파드 내에서 둘 이상의 컨테이너 설치)
- pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: sample-2pod
spec:
containers:
- name: nginx-container
image: nginx:1.16
- name: redis-container
image: redis:3.2
3. 파드에 생성한 컨테이너 접속
kubectl exec -it sample-pod -- /bin/bash
명령어가 도커 컨테이너 접속 할 때 쓰는 것과 유사해보인다.

위에서 한 파드 내 두 개의 컨테이너 생성했을 때, 컨테이너를 -c 옵션을 통해 선택이 가능하다.
kubectl exec -it sample-2pod -c redis-container -- /bin/bash
4. EntryPoint, CMD -> command / args
도커에서는 EntryPoint와 CMD를 이용해서 컨테이너 생성 시 명령어를 실행시킬 수 있었지만, 쿠버네티스에는 Command와 args를 사용한다.
apiVersion: v1
kind: pod
metadata:
name: sample-entrypoint
spec:
containers:
- name: nginx-container-112
image: nginx:1.16
command: ["/bin/sleep"]
args: ["3600"]
5. 파드명 제한
파드명을 지을 때 무조건 문자는 영문 소문자, 숫자 사용이 가능하며, 기호는 '-', '.' 만 가능하다.
그리고 이름의 시작과 끝은 영문 소문자여야한다.
apiVersion: v1
kind: pod
metadata:
name: sample-pod_fail
spec:
containers:
- name: nginx-container-112
image: nginx:1.16
언더바를 이용해서 이름을 지으니 아래와 같은 에러가 발생함.

6. 파드 접속 시 작업 디렉토리 설정하기
도커 컨테이너는 기본적으로 WORKDIR을 통해서 작업 경로를 설정할 수 있는데, 쿠버네티스에서는 스펙에서 컨테이너 명시할 때 workingDir로 설정할 수가 있다.
apiVersion: v1
kind: Pod
metadata:
name: sample=workingdir
spec:
containers:
- name: nginx-container
image: nginx:1.16
workingDir: /tmp

pwd를 통해 현재 경로를 확인하니 workingDir로 설정한 tmp로 되어있는 것을 볼 수 있었다.
'쿠버네티스, 도커' 카테고리의 다른 글
쿠버네티스 디플로이먼트 (0) | 2022.02.23 |
---|---|
쿠버네티스 레플리카셋 (0) | 2022.02.23 |
쿠버네티스 리소스 종류 (0) | 2022.02.21 |
쿠버네티스 환경 (0) | 2022.02.21 |
쿠버네티스 정의 및 사용 개념 (0) | 2022.02.21 |