Kubernetes Objects

2022. 5. 19. 21:26kubernetes

오브젝트 종류

kubectl api-resouces

위 명령어를 이용해 오브젝트들의 목록을 확인 할 수 있다. 

 

● Label/LabelSelector

● Workload
   - Pod
   - Controller
       - ReplicationController
       - ReplicaSets
       - DaemonSets
       - Jobs
       - CronJobs
       - Deployments
       - StatefulSets
       - HorizontalPodAutoscaler

● Network
    - Service
    - Endpoints
    - Ingress

● Storage
    - PersistentVolume
    - PersistentVolumeClaim
    - ConfigMap
    - Secret

● Authentication
    - ServiceAccount
    - RBAC
    - Role
    - ClusterRole
    - RoleBinding
    - ClusterRoleBinding

● Resource Isolation
    - Namespaces

● Resource Limits
    - Limits
    - Requests
    - ResourceQuota
    - LimitRange

● Scheduling
    - NodeName
    - NodeSelector
    - Affinity
      ▶ Node Affinity
      ▶ Pod Affinity
      ▶ Pod Anti Affinity
- Taints/Tolerations
- Drain/Cordon

 

오브젝트의 버전 확인

kubectl api-versions

ex) apps/v1

   - app : 그룹

   - v1 :  버전

> 그룹이 없는 api는 core 그룹

 

  ● Stable

   - 안정화된 버전을 뜻한다. 

   - v1, v2 같이 v뒤에 숫자를 붙여 표기

 

  ● Beta 

   - 안정화 되진 않았지만 충분히 검증 되어 오류는 없다. 

   - 다음 버전으로 올라가게 되면 기능이 변경 될 수 있어 downtime 발생할 수 있다.

     (특정기능을 사용하기 위한 재시작)

   - Mission Critrcal 같은 필수적인 시스템에서는 사용을 자제해야한다. 

   - v1beta(n), v2beta(n)와 같이 beta 뒤에 숫자를 붙여 표기

 

  ● Alpha

   - 기본적으로 비활성화된 상태이므로 평소에는 보이지 않는다. 

   - 개발 중인 API로 주로 개발자들이 사용 및 관리

   - v1alpha(n), v2alpha(n) 와 같이 alpha 뒤에 숫자를 붙여 표기

 

※ 버전 순서

   - v1alpha1 -> v1alpha2 -> v1alpha3 -> v1beta1 -> v1beta2 -> v1

 

오브젝트 정의

yaml 파일로 오브젝트를 정의 할 시 기본적으로 apiVersion, kind, spec, metadat를 정의해야 한다. 

apiVersion:
kind:
metdata:
spec:

   - apiVersion : 지원하는 오브젝트의 버전

   - kind : 오브젝트의 종류

   - metadata : 오브젝트의 메타데이터 

    ▶ 이름, 네임스페이스, 레이블, 어노테이션

   - spec : 오브젝트에 대한 선언

 

오브젝트의 정보를 확인할 수 있는 명령어

#pod의 정보
kubectl explain pods
#pod의 metadata의 정보 
kubectl explain pods.metadata
#pod의 spec의 정보
kubectl explain pods.spec
#pod의spec의 containers의 정보
kubectl explain pods.spec.containers
##pod의 spec의 containers의 images의 정보
kubectl explain pods.spec.containers.images
#pod의 spec에 구성 방법을 자세히 보여줌
kubectl explain pods.spec --recursive

 

오브젝트 관리

● 명령형 커멘드 : kubectl 명령으로만 구성된 오브젝트 관리 명령어

#생성
kubectl create
#실행
kubectl run
#표시(확인)
kubectl expose

 

● 선언형으로 오브젝트로 구성 및 관리 : yaml 파일들로 오브젝트 구성 및 관리를 한번에 실행

#리소스 파일을 적용
kubectl apply -f resources/

'kubernetes' 카테고리의 다른 글

Label과 LabelSelector, Annotations  (0) 2022.05.29
Namespace  (0) 2022.05.29
Workload - Pod  (0) 2022.05.29
Kubespray로 Kubernetes 설치  (0) 2022.05.17
K8s(kubernetes) 설치  (0) 2022.05.17