kubernets

 

이번 시간엔 쿠버네티스의 매니페스트 파일에 대해서 정리해본다.

그 전에 파드(Pod)에 대한 내용을 조금 정리해보자

 

파드 (Pod)

  • 파드는 쿠버네티스에서 배포 가능한 가장 작은 컴퓨팅 단위 이다.
  • 파드는 하나의 애플리케이션을 갖는다.
  • 파드는 노드(Node) 안에 자리 잡고, 노드의 자원이 충분하지 않는 경우 새로운 노드를 만들어 파드를 생성한다.
  • 스케일 아웃을 하는 경우, 파드 단위로 늘어난다. (애플리케이션 단위 X)
  • 하나의 파드 안에 2개의 컨테이너를 생성한 경우 데이터 공간을 공유하며 서로 통신이 가능하다. (docker 의 link 옵션을 대체)

 

쿠버네티스의 매니페스트 파일은 YAML 양식을 사용하며, 아래와 비슷한 형식을 가진다.

 

pod-definition.yaml

# 아래 apiVersion, kind, metadata, spec 은 필수 값이다.

# kubernetes API 버전
# 사용할 수 있는 버전은 v1 || apps/v1 || apps/v1-beta || extension/v1-beta 가 있다.
apiVersion: v1

# 사용할 수 있는 종류는 Pod || Service || ReplicaSet || Deployment 가 있다.
kind: Pod

# name, label 등의 필드를 사용할 수 있다.
# label 에는 원하는 값을 설정할 수 있다.
# Dictonary 형식
metadata:
  name: myapp-pod
  label:
    app: myapp
    type: server 
  
# 컨테이너와 이미지를 설정하는 아주 중요한 값이다.
spec:

# 컨테이너는 List/Array 형식을 갖으며, 여러개의 컨테이너를 가질 수 있다.
  containers:

# '-' 는 리스트의 첫번째라는 것을 표현할 때 쓴다.
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
    
#  - name: backend-container
#    image: redis

 

완성된 매니페스트 파일은 kubectl create -f pod-definition.yaml 로 생성이 가능하다.

이렇게 생성된 pod 는 kubectl port-forward my-app-nginx 8080:80 으로 설정 후 접근이 가능했다.

(임시 설정인 것 같다.)

 

$ kubectl port-forward my-app-nginx 8080:80

Forwarding from 127.0.0.1:8080 -> 80
Forwarding from [::1]:8080 -> 80
Handling connection for 8080
Handling connection for 8080

 

 

이후 Udemy 에서 제공해준 KodeKloud 를 등록했다.

실습 작업 해볼 예정..