K8s는 object(Pods, Replicas, Deployments, Service, etc)를 생성하기 위해 YAML File을 사용한다.
* Yaml 파일이 무엇인지 이해가 안된다면 이전 게시글 참고!
각 Object들은 모두 비슷한 형식을 따르는데, k8s definition 파일에는 항상 아래 4개의 상위 속성을 포함해야한다.
- apiVersion: object를 만들기 위해 사용할 k8s API version (예시는 두 번쨰 그림 속 kind/version 참고)
- kind: object type (pod, service, deployment, ...)
- metadata: 이름, label과 같은 오브젝트의 data.
. label은 나중에 pod가 여러 개 생겼을 때, 이를 묶어줄 수 있는 역할을 한다. tag라고 보면 쉬울듯!
label 밑에는 추가적인 key들을 작성해도 되지만, metaData 밑에는 key를 추가할 수 없다.
- spec: specification.
. 위 3개를 보면, 그래서 어떤 containers를, 어떤 image파일로 만들건데! 하는 정보가 없다.
그래서 containers 및 image 정보를 작성하고, multiple-containers가 될 경우 list로 써줄 수도 있다.
* 각 Key값 뒤 Value를 입력할 땐, 콜론(:) 뒤 띄어쓰기(space)하는 것 잊지말기
이후 k8s definition.yaml 파일을 작성 후엔,
kubectl create -f definition.yaml
kubectl apply -f definition.yaml 로 pod를 만들 수 있고, 아래와 같이 상세 조회도 가능하다.
* kubectl edit pod [pod명]을 하면, 현재 running된 pod의 config값을 변경할 수 있다.
이렇게 yaml파일을 vi를 통해 만들 수도 있지만, Visual Studio Code를 사용하면 더 쉽게 만들 수 있다.
아래와 같이 들여쓰기도 스스로 해줄 뿐더러, 첨삭(내가 뭘 틀렸는지 혹은 어떻게 입력해야하는지) 가이드라인도
제공해주기 때문이다.
그런데 검색하다보니, 구글에서도 google cloud Code를 제공한다..
즉, 별도의 프로그램 다운이 필요없는 것이다. 갓 구글 ㄷ ㄷ
https://cloud.google.com/code/docs/vscode/yaml-editing?hl=ko
출처)
자료의 기반은 모두 Udemy의 'Kubernetes for the Absolute Beginners - Hands-on' Course 입니다!
'직장생활 > Kubernetes(K8s), Docker' 카테고리의 다른 글
Kubernetes 왕초보 강의 6-3: Deployments (ft. Udemy) (0) | 2021.10.06 |
---|---|
Kubernetes 왕초보 강의 6-2: Replication Controller, ReplicaSet (ft. Udemy) (0) | 2021.10.06 |
Kubernetes 왕초보 강의 5: YAML Introduction (ft. Udemy) (0) | 2021.10.05 |
Kubernetes 왕초보 강의 4: Pods (ft. Udemy, K8s) (0) | 2021.10.05 |
Kubernetes 왕초보 강의 3: Setup Kubernetes (ft. Udemy, Minikube) (0) | 2021.10.05 |