본문 바로가기

⭐ Kubernetes & EKS/Kubernetes (쿠버네티스)

pod의 기본설명과 디스크럽터 작성

728x90
반응형

# pod란 무엇인가?

- pod를 통해 컨테너가 관리되는 이유는 무엇일까? 컨테이너 집합은 때때로 함께 스케줄링되고, 동일노드에서 실행되며, 로컬로 통신을 하거나 저장 공간을 공유해야 하기 때문이다.

예를 들어보면, 블로그 애플리케이션은 컨테이너를 동기화하는 컨테이너와 블로그 콘텐츠를 사용자에게 제공하는 웹서버 컨테이너로 구성이 될 것이다. 두 컨테이너는 데이터를 공유 해야 하기 때문에 pod 하나에 함께 스케줄링 되어야 한다. 그리고 대부분의 애플리케이션은 하나의 pod에서 위의 과정을 수행하게 된다.

- 중요한것은 kubectl run 명령어가 실제로 pod를 직접 생성하지는 않는다. 디플로이먼트가 생성이 되고, 디플로이먼트가 pod를 생성한다.

# yaml 파일을 사용하여 작성
# pod 디스크립터 작성 (마스터 노스에서 실행)

1. https://kubernetes.io/

 

Production-Grade Container Orchestration

Production-Grade Container Orchestration

kubernetes.io

2. 검색창에서 pod Overview 을 검색

3. Pod Overview 로 이동

4. Control + f 후 kind: 찾기

pod 디스크립터 정보를 확인 할 수있음.

# 디스크립터 작성

mkdir yaml

cd yaml

gedit go-http-pod.yaml

# 파일내용

apiVersion: v1
kind: Pod
metadata:
  name: http-go
spec:
  containers:
  - name: http-go
    image: gasbugs/http-go
    ports:
    - containerPort: 8080

# 저장 후 실행

kubectl create -f go-http-pod.yaml

# pod의 정보를 보는 방법

kubectl get pod http-go

kubectl get pod http-go -o wide

kubectl get pod http-go -o yaml

kubectl describe pod http-go

# 서비스 접근하기

kubectl port-forward http-go 8080:8080

127.0.0.1:8080

- 접근해서 서비스 확인하기

# 생성한 pod 삭제하기

kubectl delete -f go-httpp-pod.yaml

kubectl delete pod http-go

# 모든 pod 삭제

kubectl delete all --all

kubectl delete pod --all

# 만약 pod가 terminating 상태에서 삭제가 안될경우 아래의 명령어 사용

kubectl delete pods [pod name] --grace-period=0 --force
kubectl delete pods nginx-6799fc88d8-jb5xc --grace-period=0 --force

# pod에 log 보기

kubectl logs http-go

# pod에 주석달기

kubectl annotate pod http-go test1234=test1234
728x90
반응형