kubernetes

kubernetes yaml file

yaml 파일에서의 key 값들에 대한 설명을 알아봅시다. kubernetes에 관한 내용을 꾸준히 추가하면서 관련 된 내용들도 추가될 예정입니다.

기본 스펙 설명

yaml
// my-yaml-test1.yaml
apiVersion: v1
kind: Pod
metadata:
  name: my-yaml-test1
spec:
  containers:
  - name: nginx
    image: nginx:1.24

apiVersion

  • 만들고자 하는 객체의 버전을 적어주는 곳입니다. 위의 예시에서는 Pod를 만드는 경우로 v1을 적어주면 됩니다. 객체에 따른 버전은 정해져 있고, 이는 공식 문서를 참고해서 적어주면 됩니다.

kind

  • 만들고자 하는 객체의 종류를 적어주는 곳입니다. 위의 예를 참고하면 Pod 객체를 만들기 때문에 Pod를 적어줍니다.

metadata

  • 여러개를 key/value 형태로 추가하는 것이 가능합니다. 위에서는 name만 적은 것인고, name은 객체를 식별하는 id와 같은 역할을 합니다.

spec

  • 여러가지 스펙을 정할 수 있습니다. 위의 예에서는 컨테이너의 스펙을 정의해 주었습니다.

spec > containers

  • docker image를 통해서 컨테이너를 만들 수 있습니다. name과 image를 추가하여 복수갸의 컨테이너도 추가하는 것이 가능합니다. 만약 위와 같이 주소 없이 이름만 적게 되면 docker hub에서 image를 가져오게 됩니다.

심화 명령어 설명

spec > restartPolicy

  • OnFailure : 작동 실패 시 재시작합니다. 만약 정상 종료 된다면 재시작 하지 않습니다.
  • Never : 에러가 발생해도 재시작하지 않습니다.
  • 클릭

CrashLoopBackOff

  • 재시작 후에 바로 시작하지 말고 잠시 대기 후에 시작하도록 셋팅하는 부분을 나타냅니다.

kubernetes command

Pod

yaml로 pod 생성
$ kubectl apply -f yaml파일
$ kubectl apply -f my-yaml-test1.yaml
생성된 pod 확인
$ kubectl get po
$ kubectl get pod
$ kubectl get pods
  • Pod의 상태 변화를 확인하는 것이 가능합니다. Running, Completed와 같은 상태 변화를 확인합니다.
생성된 pod 상세정보 확인
$ kubectl describe pod 파드이름
$ kubectl describe pod my-yaml-test1
  • 정상 종료된 것을 describe를 통해 확인이 가능합니다.
  • 재시작 정책이 잘 작동하는지 확인하는 것이 가능합니다.
생성된 pod 삭제
$ kubectl delete pod 파드이름
$ kubectl delete pod my-yaml-test1

kubectl explain

  • 명령어를 확인할 때 사용합니다.

kubectl explain pod

  • 특정 객체를 조회할 수 있습니다.

kubectl explain pod.spec

  • 특정 객체의 세부스펙 조회가 가능합니다.

  • 명령어를 확인할 때 사용합니다.