Tip: what are the GVK GVR CRD CR Scheme in Kuberentes Core API
GVK:
- GVK stands for Group Version Kind
- Each Kind in K8S has Group and Version. i.e. Kind "Pod" is in Group "core" , Version "v1". Refer to official API doc
- GVK is defined to associate Group, Version and Kind
- Each GVK map to a given root Go type in the package
- Source code definition is here
GVR:
- GVR stands for Group Version Resource
- GVR is a "use" or "instance" of GVK in the K8S API
- The command "kubectl api-resources" gives us a list of GVR in the K8S cluster
CRD:
- CRD stands for Custom Resource Definition
- Each CRD is like Kind in K8S, so it also has Group, Version
- CRD is the extension of the K8S API. Refer to official doc
- Once it is defined, it acts like GVK in K8S API.
CR:
- CR stands for Custom Resource
- CR is a "use" or "instance" of CRD in the K8S API
- Once it is instantiated, it acts like GVR in K8S API.
- The command "kubectl api-resources" gives us a list including both GVR and CR in the cluster.
Scheme:
- The scheme is defined to keep track of a given GO type mapping to a given GVK.
- For example, we define myexample.io/api/v1.mykind{}
- The scheme is going to map it to the API group we defined in CRD: batchv1.myexample.io/v1
- {
kind: mykind
apiVersion: batchv1.myexample.io/v1
}
- Source code definition is here.
No comments:
Post a Comment