※주의
이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서
글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다.
공식문서가 더욱 더 큰 도움이 될 수 있습니다!
궁금점
apiVersion에 대해서 궁금하다!
행동
API
쿠버네티스 API를 사용하면 쿠버네티스 오브젝트들의 상태를 쿼리하고 조작할 수 있습니다.
쿠버네티스 컨트롤 플레인의 핵심은 API 서버와 그것이 노출하는 HTTP API입니다.
사용자와 클러스터의 다른 부분 및 모든 외부 컴포넌트는 API 서버를 통해 서로 통신합니다.
새로운 유스케이스가 등장하거나 기존 시스템이 변경됨에 따라 성공적인 시스템은 성장하고 변경될 필요가 있습니다.
따라서, 쿠버네티스는 쿠버네티스 API를 지속적으로 변경하고 성장시킬 수 있는 디자인 기능을 가지고 있습니다.
쿠버네티스 프로젝트는 기존 클라이언트와의 호환성을 중단하지 않고,
다른 프로젝트가 적응할 수 있도록 오랫동안 호환성을 유지하는 것을 목표로 합니다.
그렇기 때문에 여러 가지의 apiVersion이 존재해서 기존 클라이언트에 영향을 주지않고
호환성을 유지하는 것입니다.
디플로이먼트로 예를 들자면
현재 쿠버네티스에서 공식적으로 제공하고있는 디플로이먼트에 대한 api입니다.
apps/v1 을 제공하고 있기 때문에
apiVersion: apps/v1
kind: Deployment
metadata:
# Unique key of the Deployment instance
name: deployment-example
spec:
# 3 Pods should exist at all times.
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
# Apply this label to pods and default
# the Deployment label selector to this value
app: nginx
spec:
containers:
- name: nginx
# Run this image
image: nginx:1.14
위와 같이 사용을 하고
deployments 뒤에 .apps 라고 붙는 것은 apps라고 하는 group에 속한 deployment들을 보여달라
라는 쿼리가 됩니다.
참고
https://kubernetes.io/ko/docs/concepts/overview/kubernetes-api/
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/
'Kubernetes & Docker > 궁금한 것' 카테고리의 다른 글
쿠버네티스 "kubectl get all" 명령어에 나오는 모든 것들에 대해서 (0) | 2020.07.17 |
---|---|
쿠버네티스 YAML 파일 작성 시 실행 순서에 대해서 (0) | 2020.07.17 |
쿠버네티스 볼륨(volume)에 대해서 (0) | 2020.07.17 |
쿠버네티스 minikube status 명령어를 입력하면 나오는 kubelet, apiserver,kubeconfig에 대해서 (0) | 2020.07.17 |
쿠버네티스 노드와 마스터 서버에 대해서(kubelet, kubeadm) (0) | 2020.07.17 |