일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 도커
- 백준
- 스프링
- 메시지
- 스프링시큐리티
- 파이썬
- springdataredis
- oauth2
- 국제화
- AWS
- 트랜잭션
- JIRA
- githubactions
- 액세스토큰
- springsecurity
- yaml-resource-bundle
- 재갱신
- docker
- 티스토리챌린지
- CI/CD
- 스프링부트
- 토이프로젝트
- 소셜로그인
- 오블완
- springsecurityoauth2client
- java
- 리프레시토큰
- 프로그래머스
- Spring
- 데이터베이스
- Today
- Total
땃쥐네
[Kubernetes] 파드(Pod) 생성 및 목록 조회 본문
파드를 생성하는 방법
파드를 생성하는 방법은 크게 두 가지로 나뉘어진다.
하나는 CLI 명령을 통해 직접 파드 생성 명령을 기술하는 방식이고,
다른 하나는 파일(보통 yaml 파일)을 통해 파드에 대한 명세를 기술하고 이 파일을 통해 파드를 실행시키는 방법이다.
그러나 보통 파드 하나를 실행시키기 위해 설정해야하는 값들은 많고 이를 CLI 명령을 통해 매번 실행, 관리하는 것은 유지보수 관점에서 좋지 않으므로 재사용의 편의를 위해, 파일을 통해 파드를 생성한다.
매니페스트 파일(Manifest File)
위에서 파드는 파일을 통해 생성한다고 말했는데, 파드뿐만 아니라 쿠버네티스의 다양한 리소스(파드, 서비스, 디플로이먼트, 볼륨, ...) 등을 생성할 때도 파일을 사용해서 생성한다.
이런 리소스들을 생성하는 파일을 쿠버네티스에서는 '매니페스트 파일(Manifest File)' 이라고 한다.
매니페스트 파일은 보통 yaml 파일로 작성되어 관리된다.(다른 형식으로도 가능하긴 한데 주류는 yaml 이다.)
파드와 같은 리소스를 정의하는 것은 CLI 로도 가능하지만, 매번 명령어를 수동으로 기입하는 것은 번거롭다.
그래서 보통 쿠버네티스 리소스들을 매니페스트 파일을 통해 문서화해서 관리한다.
이렇게 문서화하고 버전 제어 시스템(Git)에 저장하여 버전관리할 수도 있다는 장점도 있다.
매니페스트 파일 작성
쿠버네티스의 Pods 공식 문서에서는 파드에 대한 매니페스트 파일을 어떻게 기술하는 지 설명되어 있다.
공식 홈페이지에서는 nginx 파드를 띄우는 것을 예시로 들어 설명하고 있는데, 이를 변형해서 tomcat 파드를 실행해보고자 한다.
tomcat-pod.yaml 이라는 파일을 생성하고, 다음 yaml 파일을 작성한다.
apiVersion: v1 # Pod를 생성할 때는 v1이라고 기재한다. (공식 문서)
kind: Pod # Pod를 생성한다고 명시
# 파드의 기본 정보
metadata:
name: tomcat-pod # Pod 의 이름
# 파드의 상세 정보
spec:
containers:
- name: tomcat-container # 생성할 컨테이너의 이름
image: tomcat:11.0.4 # 컨테이너를 생성할 때 사용할 Docker 이미지
ports:
- containerPort: 8080 # 해당 컨테이너가 어떤 포트를 사용하는 지 명시적으로 표현(그냥 문서화 역할. 가독성)
전체적인 골격은 정해져있고, 몇 가지 우리 입맛에 맞게만 변형해서 쓰면 된다.
여기서 주의할 점은 spec.ports.containerPort 부분인데, 이 값을 8080으로 지정했으나 이 값에 의해 톰캣 컨테이너가 실행되는 것이 아니다.
tomcat 컨테이너는 기본적인 설정으로 8080 포트에서 실행되도록 이미지가 설계되어 있고, 그에 따라서 8080 포트에서 실행되는 것이다.
spec.ports.containerPort 는 그 자체로 톰캣이 실행되는 포트 번호를 지정하는 것이 아니며, 단순히 컨테이너가 어떤 포트를 사용하는 지 명시적으로 나타내기 위한 문서화용이다.
파드 실행, 목록 조회
kubectl apply -f tomcat-pod.yaml
위와 같이 파드에 대한 매니페스트 파일을 작성하고, 해당 매니페스트 파일이 위치한 경로에서 위 명령을 실행한다.
kubectl get pod # 파드 목록 조회
kubectl get pods # 파드 목록 조회
그리고, kubectl get pod (또는 pods) 명령을 통해 파드 목록을 조회할 수 있다.
정상적으로 파드가 생성된 것을 볼 수 있다.
NAME 은 그 파드의 이름,
READY 는 (파드 내 준비 완료된 컨테이너 수)/(파드 내 총 컨테이너 수)
STATUS 는 파드의 상태(Running 은 정상적으로 실행 중을 의미한다.)
RESTARTS 는 재시작한 횟수
AGE 는 파드가 실행되고 얼마의 시간이 흘렀는 지를 의미한다.
배포된 서버 접속 시도
파드를 8080 포트에서 실행했으니,
우리 로컬 컴퓨터의 8080 포트로 접속을 실행해봐야지! 하고 localhost:8080 으로 접속을 시도하면 위와 같이 접속에 실패한다.
이 부분은 왜 그런지 이어지는 글에서 다시 다뤄볼 것이다.
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] 스프링부트 파드 실행 (+ ImagePullPolicy 주의점) (1) | 2025.03.02 |
---|---|
[Kubernetes] 파드-쿠버네티스 네트워크, 파드 외부에서 접속하기 (0) | 2025.02.27 |
[Kubernetes] 파드(Pod) (0) | 2025.02.26 |
[Kubernetes] Windows 로컬 환경에서 쿠버네티스 설치 (0) | 2025.02.25 |
[Kubernetes] 쿠버네티스란? (0) | 2025.02.25 |