DevOps/Kubernetes

[Kubernetes] Kubernetes CRD 와 CR 설명과 실습

kimc 2024. 9. 20. 23:46
반응형

[Kubernetes] Kubernetes Custom Resource Definition과 Custom Resource 설명과 실습


```

[k8s] Kubernetes CRD 와 CR 설명과 실습

```

이번 글을 통해 배워갈 내용

  1. Kubernetes CRD 와 CR 설명
  2. Kubernetes CRD 와 CR 실습

1. Kubernetes CRD 와 CR 설명

Custom Resource Definition(CRD)는 쿠버네티스에서 기본 제공 기능을 확장하여, 사용자가 직접 리소스 타입을 정의하고 클러스터에 새로운 기능을 추가할 수 있게 해 줍니다. 이를 통해 서드파티 솔루션을 설치하고 관리할 수 있으며, 클러스터의 유연성을 높이는 중요한 역할을 합니다.

API Aggregation(AA)는 커스텀 리소스를 생성할 수 있는 방법 중 하나입니다. AA는 GO 언어 개발 및 바이너리 이미지 생성이 필요하지만, CRD는 비교적 간단하게 커스텀 리소스를 생성할 수 있어 더 자주 사용됩니다.


2. Kubernetes CRD 와 CR 실습

CRD을 등록합니다

 

nano crd-human.yaml
apiVersion: "apiextensions.k8s.io/v1"
kind: "CustomResourceDefinition"
metadata:
  name: "humans.k106.com"
spec:
  group: "k106.com"
  names:
    plural: "humans"
    singular: "human"
    kind: "Human"
  scope: "Namespaced"
  versions:
    - name: "v1alpha1"
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: "object"
          required: ["spec"]
          properties:
            spec:
              type: "object"
              required: ["age", "height", "job"]
              properties:
                age:
                  type: "integer"
                  minimum: 0
                  maximum: 100
                height:
                  type: "integer"
                  minimum: 50
                  maximum: 250
                job:
                  type: "string"
                  minLength: 1
k create -f crd-human.yaml



생성한 CRD를 가지고 CR을 만듭니다

nano cr-human.yaml

 

apiVersion: "k106.com/v1alpha1"
kind: "Human"
metadata:
  name: "sample-human"
spec:
  age: 31
  height: 176
  job: "programmer"

 

k create -f cr-human.yaml

 

 

확인해 봅니다

k get humans

 


읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)


 

참조 및 인용

https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/

 

Custom Resources

Custom resources are extensions of the Kubernetes API. This page discusses when to add a custom resource to your Kubernetes cluster and when to use a standalone service. It describes the two methods for adding custom resources and how to choose between the

kubernetes.io

 

반응형