CSIDriver
CSIDriver (CSI 드라이버)
CSIDriver는 클러스터에 배포된 CSI(컨테이너 스토리지 인터페이스) 볼륨 드라이버에 대한 정보를 담습니다.
본문
CSIDriver
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSIDriver
CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.
| Field | Description |
|---|---|
| apiVersion string |
APIVersion은 이 객체 표현의 버전이 붙은 스키마(versioned schema)를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식할 수 없는 값은 거부할 수 있습니다. 자세한 정보: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
| kind string |
Kind는 이 객체가 나타내는 REST 리소스를 나타내는 문자열 값입니다. 서버는 클라이언트가 요청을 제출하는 엔드포인트에서 이를 유추할 수 있습니다. 업데이트할 수 없습니다. CamelCase를 사용합니다. 자세한 정보: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| metadata ObjectMeta |
metadata is the standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
| spec * CSIDriverSpec |
spec represents the specification of the CSI Driver. |
CSIDriverSpec
CSIDriverSpec is the specification of a CSIDriver.
| Field | Description |
|---|---|
| attachRequired boolean |
attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called. This field is immutable. |
| fsGroupPolicy string |
fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field was immutable in Kubernetes < 1.29 and now is mutable. Defaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce. |
| nodeAllocatableUpdatePeriodSeconds integer |
nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds. This feature requires the MutableCSINodeAllocatableCount feature gate to be enabled. This field is mutable. |
| podInfoOnMount boolean |
podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. "csi.storage.k8s.io/pod.name": pod.Name "csi.storage.k8s.io/pod.namespace": pod.Namespace "csi.storage.k8s.io/pod.uid": string(pod.UID) "csi.storage.k8s.io/ephemeral": "true" if the volume is an ephemeral inline volume defined by a CSIVolumeSource, otherwise "false" "csi.storage.k8s.io/ephemeral" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the "Persistent" and "Ephemeral" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver. This field was immutable in Kubernetes < 1.29 and now is mutable. |
| preventPodSchedulingIfMissing boolean |
preventPodSchedulingIfMissing indicates that the CSI driver wants to prevent pod scheduling if the CSI driver on the node is missing. Enabling this option will prevent the scheduler (or any other component which embeds default scheduler such as cluster-autoscaler) from scheduling pods to nodes where CSI driver is not installed. For components(such as cluster-autoscaler) that embed the scheduler and run pod placement simulations using scheduler plugins, they MUST be aware of CSI driver registration information via CSINode object. They must create simulated CSINode objects in addition to Node objects during scheduling simulation, otherwise if PreventPodSchedulingIfMissing is enabled globally for CSIDriver object, any newly created node may be rejected by the scheduler because of missing CSI driver information from the node. This is a beta feature and requires the VolumeLimitScaling feature gate to be enabled. Default is "false". |
| requiresRepublish boolean |
requiresRepublish indicates the CSI driver wants NodePublishVolume being periodically called to reflect any possible change in the mounted volume. This field defaults to false. Note: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container. |
| seLinuxMount boolean |
seLinuxMount specifies if the CSI driver supports "-o context" mount option. When "true", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different -o context options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with "-o context=xyz" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context. When "false", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem. Default is "false". |
| serviceAccountTokenInSecrets boolean |
serviceAccountTokenInSecrets is an opt-in for CSI drivers to indicate that service account tokens should be passed via the Secrets field in NodePublishVolumeRequest instead of the VolumeContext field. The CSI specification provides a dedicated Secrets field for sensitive information like tokens, which is the appropriate mechanism for handling credentials. This addresses security concerns where sensitive tokens were being logged as part of volume context. When "true", kubelet will pass the tokens only in the Secrets field with the key "csi.storage.k8s.io/serviceAccount.tokens". The CSI driver must be updated to read tokens from the Secrets field instead of VolumeContext. When "false" or not set, kubelet will pass the tokens in VolumeContext with the key "csi.storage.k8s.io/serviceAccount.tokens" (existing behavior). This maintains backward compatibility with existing CSI drivers. This field can only be set when TokenRequests is configured. The API server will reject CSIDriver specs that set this field without TokenRequests. Default behavior if unset is to pass tokens in the VolumeContext field. |
| storageCapacity boolean |
storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true. The check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object. Alternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published. This field was immutable in Kubernetes <= 1.22 and now is mutable. |
| tokenRequests TokenRequest array |
tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: "csi.storage.k8s.io/serviceAccount.tokens": { "": { "token": , "expirationTimestamp": , }, ... } Note: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically. |
| volumeLifecycleModes string array |
volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is "Persistent", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is "Ephemeral". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta. This field is immutable. |
CSIDriverList
CSIDriverList is a collection of CSIDriver objects.
| Field | Description |
|---|---|
| apiVersion string |
APIVersion은 이 객체 표현의 버전이 붙은 스키마(versioned schema)를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식할 수 없는 값은 거부할 수 있습니다. 자세한 정보: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
| items * CSIDriver array |
items is the list of CSIDriver |
| kind string |
Kind는 이 객체가 나타내는 REST 리소스를 나타내는 문자열 값입니다. 서버는 클라이언트가 요청을 제출하는 엔드포인트에서 이를 유추할 수 있습니다. 업데이트할 수 없습니다. CamelCase를 사용합니다. 자세한 정보: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| metadata ListMeta |
표준 목록 메타데이터입니다. 자세한 정보: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
TokenRequest
TokenRequest contains parameters of a service account token.
| Field | Description |
|---|---|
| audience * string |
audience is the intended audience of the token in "TokenRequestSpec". It will default to the audiences of kube apiserver. |
| expirationSeconds integer |
expirationSeconds is the duration of validity of the token in "TokenRequestSpec". It has the same default value of "ExpirationSeconds" in "TokenRequestSpec". |
연산 (Operations)
post Create
HTTP 요청 (HTTP Request)
POST /apis/storage.k8s.io/v1/csidrivers
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| dryRun | string | 설정되면 수정 사항이 영속화(persist)되지 않아야 함을 나타냅니다. 유효하지 않거나 인식할 수 없는 dryRun 지시어는 오류 응답을 초래하며 요청을 더 이상 처리하지 않습니다. 허용 값: - All: 모든 dry run 단계가 처리됩니다. |
| fieldManager | string | fieldManager는 이러한 변경을 수행하는 주체(actor)나 엔터티와 연결된 이름입니다. 값은 128자 이하이어야 하며, https://golang.org/pkg/unicode/#IsPrint 에 정의된 대로 인쇄 가능한 문자만 포함해야 합니다. |
| fieldValidation | string | fieldValidation은 알 수 없는(unknown) 필드나 중복(duplicate) 필드를 포함하는 요청(POST/PUT/PATCH) 객체를 서버가 어떻게 처리할지 지시합니다. 허용 값: - Ignore: 객체에서 조용히 제거되는 모든 unknown 필드를 무시하고, 디코더가 만나는 중복 필드 중 마지막을 제외한 모든 필드를 무시합니다. v1.23 이전의 기본 동작입니다. - Warn: 객체에서 제거되는 각 unknown 필드와 만나는 각 중복 필드에 대해 표준 warning 응답 헤더로 경고를 보냅니다. 다른 오류가 없다면 요청은 여전히 성공하며 중복 필드 중 마지막 값만 영속화합니다. v1.23+의 기본 동작입니다. - Strict: 객체에서 unknown 필드가 제거되거나 중복 필드가 존재하면 BadRequest 오류로 요청을 실패시킵니다. 서버가 반환하는 오류에는 발견된 모든 unknown/duplicate 필드가 포함됩니다. |
본문 매개변수 (Body Parameters)
| Name | Type | Description |
|---|---|---|
| body | CSIDriver |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | CSIDriver |
| 201 | Created | CSIDriver |
| 202 | Accepted | CSIDriver |
patch Patch
HTTP 요청 (HTTP Request)
PATCH /apis/storage.k8s.io/v1/csidrivers/{name}
경로 매개변수 (Path Parameters)
| Name | Type | Description |
|---|---|---|
| name | string | CSIDriver의 이름입니다. |
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| dryRun | string | 설정되면 수정 사항이 영속화(persist)되지 않아야 함을 나타냅니다. 유효하지 않거나 인식할 수 없는 dryRun 지시어는 오류 응답을 초래하며 요청을 더 이상 처리하지 않습니다. 허용 값: - All: 모든 dry run 단계가 처리됩니다. |
| fieldManager | string | fieldManager는 이러한 변경을 수행하는 주체(actor)나 엔터티와 연결된 이름입니다. 값은 128자 이하이어야 하며, https://golang.org/pkg/unicode/#IsPrint 에 정의된 대로 인쇄 가능한 문자만 포함해야 합니다. 이 필드는 apply 요청(application/apply-patch)에는 필수이며, apply가 아닌 patch 유형(JsonPatch, MergePatch, StrategicMergePatch)에는 선택 사항입니다. |
| fieldValidation | string | fieldValidation은 알 수 없는(unknown) 필드나 중복(duplicate) 필드를 포함하는 요청(POST/PUT/PATCH) 객체를 서버가 어떻게 처리할지 지시합니다. 허용 값: - Ignore: 객체에서 조용히 제거되는 모든 unknown 필드를 무시하고, 디코더가 만나는 중복 필드 중 마지막을 제외한 모든 필드를 무시합니다. v1.23 이전의 기본 동작입니다. - Warn: 객체에서 제거되는 각 unknown 필드와 만나는 각 중복 필드에 대해 표준 warning 응답 헤더로 경고를 보냅니다. 다른 오류가 없다면 요청은 여전히 성공하며 중복 필드 중 마지막 값만 영속화합니다. v1.23+의 기본 동작입니다. - Strict: 객체에서 unknown 필드가 제거되거나 중복 필드가 존재하면 BadRequest 오류로 요청을 실패시킵니다. 서버가 반환하는 오류에는 발견된 모든 unknown/duplicate 필드가 포함됩니다. |
| force | boolean | Force는 Apply 요청을 "강제(force)"하는 데 사용됩니다. 즉 사용자가 다른 사람이 소유한 충돌 필드를 다시 획득하게 됩니다. apply가 아닌 patch 요청에서는 Force 플래그가 설정되지 않은 상태여야 합니다. |
본문 매개변수 (Body Parameters)
| Name | Type | Description |
|---|---|---|
| body | Patch |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | CSIDriver |
| 201 | Created | CSIDriver |
put Replace
HTTP 요청 (HTTP Request)
PUT /apis/storage.k8s.io/v1/csidrivers/{name}
경로 매개변수 (Path Parameters)
| Name | Type | Description |
|---|---|---|
| name | string | CSIDriver의 이름입니다. |
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| dryRun | string | 설정되면 수정 사항이 영속화(persist)되지 않아야 함을 나타냅니다. 유효하지 않거나 인식할 수 없는 dryRun 지시어는 오류 응답을 초래하며 요청을 더 이상 처리하지 않습니다. 허용 값: - All: 모든 dry run 단계가 처리됩니다. |
| fieldManager | string | fieldManager는 이러한 변경을 수행하는 주체(actor)나 엔터티와 연결된 이름입니다. 값은 128자 이하이어야 하며, https://golang.org/pkg/unicode/#IsPrint 에 정의된 대로 인쇄 가능한 문자만 포함해야 합니다. |
| fieldValidation | string | fieldValidation은 알 수 없는(unknown) 필드나 중복(duplicate) 필드를 포함하는 요청(POST/PUT/PATCH) 객체를 서버가 어떻게 처리할지 지시합니다. 허용 값: - Ignore: 객체에서 조용히 제거되는 모든 unknown 필드를 무시하고, 디코더가 만나는 중복 필드 중 마지막을 제외한 모든 필드를 무시합니다. v1.23 이전의 기본 동작입니다. - Warn: 객체에서 제거되는 각 unknown 필드와 만나는 각 중복 필드에 대해 표준 warning 응답 헤더로 경고를 보냅니다. 다른 오류가 없다면 요청은 여전히 성공하며 중복 필드 중 마지막 값만 영속화합니다. v1.23+의 기본 동작입니다. - Strict: 객체에서 unknown 필드가 제거되거나 중복 필드가 존재하면 BadRequest 오류로 요청을 실패시킵니다. 서버가 반환하는 오류에는 발견된 모든 unknown/duplicate 필드가 포함됩니다. |
본문 매개변수 (Body Parameters)
| Name | Type | Description |
|---|---|---|
| body | CSIDriver |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | CSIDriver |
| 201 | Created | CSIDriver |
delete Delete
HTTP 요청 (HTTP Request)
DELETE /apis/storage.k8s.io/v1/csidrivers/{name}
경로 매개변수 (Path Parameters)
| Name | Type | Description |
|---|---|---|
| name | string | CSIDriver의 이름입니다. |
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| dryRun | string | 설정되면 수정 사항이 영속화(persist)되지 않아야 함을 나타냅니다. 유효하지 않거나 인식할 수 없는 dryRun 지시어는 오류 응답을 초래하며 요청을 더 이상 처리하지 않습니다. 허용 값: - All: 모든 dry run 단계가 처리됩니다. |
| gracePeriodSeconds | integer | 객체가 삭제되기까지의 시간(초)입니다. 값은 음이 아닌 정수여야 합니다. 값 0은 즉시 삭제를 의미합니다. 이 값이 nil이면 지정된 유형의 기본 유예 기간(grace period)이 사용됩니다. 지정하지 않으면 객체별 기본값이 적용됩니다. 0은 즉시 삭제를 의미합니다. |
| ignoreStoreReadErrorWithClusterBreakingPotential | boolean | true로 설정하면 일반 삭제 흐름이 손상된 객체(corrupt) 오류로 실패할 때 리소스의 비안전 삭제(unsafe deletion)를 트리거합니다. 리소스는 a) 데이터를 변환할 수 없거나[예: 복호화 실패] b) 객체로 디코딩에 실패하는 등, 기본 스토리지에서 성공적으로 검색할 수 없을 때 손상된 것으로 간주합니다. 참고: 비안전 삭제는 finalizer 제약을 무시하고, 사전 조건(precondition) 검사를 건너뛰며, 스토리지에서 객체를 제거합니다. 경고: 비안전 삭제되는 리소스와 연관된 워크로드가 일반 삭제 흐름에 의존한다면 클러스터가 손상될 수 있습니다. 정말로 잘 알고 있을 때만 사용하세요. 기본값은 false이며 사용자가 명시적으로 활성화해야 합니다. |
| orphanDependents | boolean | 사용 중단(Deprecated): PropagationPolicy를 사용하세요. 이 필드는 1.7에서 폐기 예정입니다. 종속 객체를 고아(orphan)로 만들지 여부입니다. true/false이면 객체의 finalizers 목록에서 "orphan" finalizer가 추가/제거됩니다. 이 필드 또는 PropagationPolicy 중 하나만 설정할 수 있으며 둘 다는 안 됩니다. |
| propagationPolicy | string | 가비지 컬렉션을 수행할지, 어떻게 수행할지입니다. 이 필드 또는 OrphanDependents 중 하나만 설정할 수 있으며 둘 다는 안 됩니다. 기본 정책은 metadata.finalizers에 설정된 기존 finalizer와 리소스별 기본 정책에 따라 결정됩니다. 허용 값: 'Orphan' - 종속 객체를 고아로 만듦; 'Background' - 가비지 컬렉터가 백그라운드에서 종속 객체를 삭제하도록 허용; 'Foreground' - 포그라운드에서 모든 종속 객체를 삭제하는 계단식(cascading) 정책. |
본문 매개변수 (Body Parameters)
| Name | Type | Description |
|---|---|---|
| body | DeleteOptions |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | CSIDriver |
| 202 | Accepted | CSIDriver |
delete Delete Collection
HTTP 요청 (HTTP Request)
DELETE /apis/storage.k8s.io/v1/csidrivers
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| continue | string | 서버에서 더 많은 결과를 가져올 때는 continue 옵션을 설정해야 합니다. 이 값은 서버가 정의하므로 클라이언트는 continue 값 자체를 제외하고 동일한 쿼리 매개변수를 사용한 이전 쿼리 결과의 continue 값만 사용할 수 있으며, 서버는 인식하지 못하는 continue 값을 거부할 수 있습니다. 지정된 continue 값이 만료(보통 5~15분)되거나 서버의 구성 변경으로 더 이상 유효하지 않으면, 서버는 continue 토큰과 함께 410 ResourceExpired 오류로 응답합니다. 클라이언트가 일관된 목록을 원한다면 continue 필드 없이 목록을 다시 시작해야 합니다. 그렇지 않으면 클라이언트는 410 오류로 받은 토큰으로 다른 목록 요청을 보낼 수 있으며, 서버는 다음 키부터 시작하되 최신 스냅샷 기준의 목록으로 응답하는데, 이는 이전 목록 결과와 일치하지 않을 수 있습니다(첫 목록 요청 이후 생성/수정/삭제된 객체는 키가 "다음 키" 이후라면 응답에 포함됩니다). watch가 true일 때는 이 필드가 지원되지 않습니다. 클라이언트는 서버가 반환한 마지막 resourceVersion 값부터 watch를 시작하여 변경 사항을 놓치지 않을 수 있습니다. |
| dryRun | string | 설정되면 수정 사항이 영속화(persist)되지 않아야 함을 나타냅니다. 유효하지 않거나 인식할 수 없는 dryRun 지시어는 오류 응답을 초래하며 요청을 더 이상 처리하지 않습니다. 허용 값: - All: 모든 dry run 단계가 처리됩니다. |
| fieldSelector | string | 반환되는 객체 목록을 필드 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| gracePeriodSeconds | integer | 객체가 삭제되기까지의 시간(초)입니다. 값은 음이 아닌 정수여야 합니다. 값 0은 즉시 삭제를 의미합니다. 이 값이 nil이면 지정된 유형의 기본 유예 기간(grace period)이 사용됩니다. 지정하지 않으면 객체별 기본값이 적용됩니다. 0은 즉시 삭제를 의미합니다. |
| ignoreStoreReadErrorWithClusterBreakingPotential | boolean | true로 설정하면 일반 삭제 흐름이 손상된 객체(corrupt) 오류로 실패할 때 리소스의 비안전 삭제(unsafe deletion)를 트리거합니다. 리소스는 a) 데이터를 변환할 수 없거나[예: 복호화 실패] b) 객체로 디코딩에 실패하는 등, 기본 스토리지에서 성공적으로 검색할 수 없을 때 손상된 것으로 간주합니다. 참고: 비안전 삭제는 finalizer 제약을 무시하고, 사전 조건(precondition) 검사를 건너뛰며, 스토리지에서 객체를 제거합니다. 경고: 비안전 삭제되는 리소스와 연관된 워크로드가 일반 삭제 흐름에 의존한다면 클러스터가 손상될 수 있습니다. 정말로 잘 알고 있을 때만 사용하세요. 기본값은 false이며 사용자가 명시적으로 활성화해야 합니다. |
| labelSelector | string | 반환되는 객체 목록을 라벨 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| limit | integer | limit은 목록 호출에서 반환할 최대 응답 수입니다. 더 많은 항목이 존재하면 서버는 목록 메타데이터의 continue 필드에 동일한 초기 쿼리로 다음 결과 집합을 가져오는 데 사용할 수 있는 값을 설정합니다. limit을 설정하면 요청된 모든 객체가 필터링되는 경우 요청한 수보다 적게(최대 0개까지) 반환될 수 있으며, 클라이언트는 더 많은 결과가 있는지 여부를 판단할 때 continue 필드의 존재만 사용해야 합니다. 서버는 limit 인자를 지원하지 않기로 선택하고 사용 가능한 모든 결과를 반환할 수 있습니다. limit이 지정되고 continue 필드가 비어 있으면 클라이언트는 더 이상 사용 가능한 결과가 없다고 가정할 수 있습니다. watch가 true이면 이 필드는 지원되지 않습니다. 서버는 continue를 사용할 때 반환되는 객체가 limit 없이 한 번의 목록 호출을 수행한 것과 동일함을 보장합니다. 즉 첫 요청 이후 생성/수정/삭제된 객체는 이후의 지속 요청에 포함되지 않습니다. 이를 일관된 스냅샷(consistent snapshot)이라고도 하며, limit으로 매우 큰 결과를 작은 조각으로 나누어 받는 클라이언트가 모든 가능한 객체를 볼 수 있도록 보장합니다. 청크 목록 중 객체가 업데이트되면 첫 목록 결과가 계산된 시점에 존재했던 객체 버전이 반환됩니다. |
| orphanDependents | boolean | 사용 중단(Deprecated): PropagationPolicy를 사용하세요. 이 필드는 1.7에서 폐기 예정입니다. 종속 객체를 고아(orphan)로 만들지 여부입니다. true/false이면 객체의 finalizers 목록에서 "orphan" finalizer가 추가/제거됩니다. 이 필드 또는 PropagationPolicy 중 하나만 설정할 수 있으며 둘 다는 안 됩니다. |
| propagationPolicy | string | 가비지 컬렉션을 수행할지, 어떻게 수행할지입니다. 이 필드 또는 OrphanDependents 중 하나만 설정할 수 있으며 둘 다는 안 됩니다. 기본 정책은 metadata.finalizers에 설정된 기존 finalizer와 리소스별 기본 정책에 따라 결정됩니다. 허용 값: 'Orphan' - 종속 객체를 고아로 만듦; 'Background' - 가비지 컬렉터가 백그라운드에서 종속 객체를 삭제하도록 허용; 'Foreground' - 포그라운드에서 모든 종속 객체를 삭제하는 계단식(cascading) 정책. |
| resourceVersion | string | resourceVersion은 요청이 제공될 수 있는 리소스 버전에 대한 제약을 설정합니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| resourceVersionMatch | string | resourceVersionMatch는 resourceVersion이 목록 호출에 어떻게 적용되는지 결정합니다. resourceVersion이 설정된 목록 호출에서는 resourceVersionMatch를 설정하는 것이 매우 권장됩니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| sendInitialEvents | boolean | sendInitialEvents=true는 watch=true와 함께 설정할 수 있습니다. 이 경우 watch 스트림은 현재 컬렉션에 있는 객체들의 상태를 만들어 내는 합성(synthetic) 이벤트로 시작합니다. 그러한 이벤트가 모두 전송되면 합성 "Bookmark" 이벤트가 전송됩니다. 이 bookmark는 객체 집합에 해당하는 ResourceVersion(RV)을 보고하며 "k8s.io/initial-events-end": "true" 어노테이션으로 표시됩니다. 이후 watch 스트림은 평소처럼 진행되며, 감시 대상 객체의 변경(RV 이후)에 해당하는 이벤트를 보냅니다. sendInitialEvents 옵션을 설정할 때는 resourceVersionMatch 옵션도 반드시 설정해야 합니다. watch 요청의 의미는 다음과 같습니다: |
| shardSelector | string | shardSelector는 CEL 기반 샤드 선택자(shard selector) 표현식을 사용하여 반환되는 객체 목록을 제한합니다. 형식은 shardRange() 함수와 ||(논리 OR)을 결합하여 하나 이상의 해시 범위를 지정합니다: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 필드 경로는 CEL 스타일의 객체 루트 구문(예: "object.metadata.uid")을 사용하며, fieldSelector 형식("metadata.uid")이 아닙니다. 현재 지원되는 경로: - object.metadata.uid - object.metadata.namespace hexStart와 hexEnd는 '0x' 접두사가 붙은 단일 인용 CEL 문자열 리터럴로, 64비트 FNV-1a 해시 공간의 포함하는 하한과 배타적 상한을 정의합니다. 전체 범위는 [0x0, 0x10000000000000000)이며, 배타적 상한은 2^64와 같습니다. 예: 2-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 4-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000') 샤드 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000') 샤드 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000') 이는 알파 필드이며 ShardedListAndWatch 기능 게이트(feature gate)를 활성화해야 합니다. |
| timeoutSeconds | integer | list/watch 호출의 타임아웃입니다. 활동 여부와 관계없이 호출 시간을 제한합니다. |
본문 매개변수 (Body Parameters)
| Name | Type | Description |
|---|---|---|
| body | DeleteOptions |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | Status |
get Read
HTTP 요청 (HTTP Request)
GET /apis/storage.k8s.io/v1/csidrivers/{name}
경로 매개변수 (Path Parameters)
| Name | Type | Description |
|---|---|---|
| name | string | CSIDriver의 이름입니다. |
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | CSIDriver |
get List
HTTP 요청 (HTTP Request)
GET /apis/storage.k8s.io/v1/csidrivers
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| allowWatchBookmarks | boolean | allowWatchBookmarks는 "BOOKMARK" 타입의 watch 이벤트를 요청합니다. 북마크를 구현하지 않은 서버는 이 플래그를 무시할 수 있으며, 북마크 전송은 서버의 판단에 따릅니다. 클라이언트는 북마크가 특정 간격으로 반환된다고 가정해서는 안 되며, 세션 중 서버가 BOOKMARK 이벤트를 보낼 것이라고 가정해서도 안 됩니다. 이 요청이 watch가 아니라면 이 필드는 무시됩니다. |
| continue | string | 서버에서 더 많은 결과를 가져올 때는 continue 옵션을 설정해야 합니다. 이 값은 서버가 정의하므로 클라이언트는 continue 값 자체를 제외하고 동일한 쿼리 매개변수를 사용한 이전 쿼리 결과의 continue 값만 사용할 수 있으며, 서버는 인식하지 못하는 continue 값을 거부할 수 있습니다. 지정된 continue 값이 만료(보통 5~15분)되거나 서버의 구성 변경으로 더 이상 유효하지 않으면, 서버는 continue 토큰과 함께 410 ResourceExpired 오류로 응답합니다. 클라이언트가 일관된 목록을 원한다면 continue 필드 없이 목록을 다시 시작해야 합니다. 그렇지 않으면 클라이언트는 410 오류로 받은 토큰으로 다른 목록 요청을 보낼 수 있으며, 서버는 다음 키부터 시작하되 최신 스냅샷 기준의 목록으로 응답하는데, 이는 이전 목록 결과와 일치하지 않을 수 있습니다(첫 목록 요청 이후 생성/수정/삭제된 객체는 키가 "다음 키" 이후라면 응답에 포함됩니다). watch가 true일 때는 이 필드가 지원되지 않습니다. 클라이언트는 서버가 반환한 마지막 resourceVersion 값부터 watch를 시작하여 변경 사항을 놓치지 않을 수 있습니다. |
| fieldSelector | string | 반환되는 객체 목록을 필드 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| labelSelector | string | 반환되는 객체 목록을 라벨 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| limit | integer | limit은 목록 호출에서 반환할 최대 응답 수입니다. 더 많은 항목이 존재하면 서버는 목록 메타데이터의 continue 필드에 동일한 초기 쿼리로 다음 결과 집합을 가져오는 데 사용할 수 있는 값을 설정합니다. limit을 설정하면 요청된 모든 객체가 필터링되는 경우 요청한 수보다 적게(최대 0개까지) 반환될 수 있으며, 클라이언트는 더 많은 결과가 있는지 여부를 판단할 때 continue 필드의 존재만 사용해야 합니다. 서버는 limit 인자를 지원하지 않기로 선택하고 사용 가능한 모든 결과를 반환할 수 있습니다. limit이 지정되고 continue 필드가 비어 있으면 클라이언트는 더 이상 사용 가능한 결과가 없다고 가정할 수 있습니다. watch가 true이면 이 필드는 지원되지 않습니다. 서버는 continue를 사용할 때 반환되는 객체가 limit 없이 한 번의 목록 호출을 수행한 것과 동일함을 보장합니다. 즉 첫 요청 이후 생성/수정/삭제된 객체는 이후의 지속 요청에 포함되지 않습니다. 이를 일관된 스냅샷(consistent snapshot)이라고도 하며, limit으로 매우 큰 결과를 작은 조각으로 나누어 받는 클라이언트가 모든 가능한 객체를 볼 수 있도록 보장합니다. 청크 목록 중 객체가 업데이트되면 첫 목록 결과가 계산된 시점에 존재했던 객체 버전이 반환됩니다. |
| resourceVersion | string | resourceVersion은 요청이 제공될 수 있는 리소스 버전에 대한 제약을 설정합니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| resourceVersionMatch | string | resourceVersionMatch는 resourceVersion이 목록 호출에 어떻게 적용되는지 결정합니다. resourceVersion이 설정된 목록 호출에서는 resourceVersionMatch를 설정하는 것이 매우 권장됩니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| sendInitialEvents | boolean | sendInitialEvents=true는 watch=true와 함께 설정할 수 있습니다. 이 경우 watch 스트림은 현재 컬렉션에 있는 객체들의 상태를 만들어 내는 합성(synthetic) 이벤트로 시작합니다. 그러한 이벤트가 모두 전송되면 합성 "Bookmark" 이벤트가 전송됩니다. 이 bookmark는 객체 집합에 해당하는 ResourceVersion(RV)을 보고하며 "k8s.io/initial-events-end": "true" 어노테이션으로 표시됩니다. 이후 watch 스트림은 평소처럼 진행되며, 감시 대상 객체의 변경(RV 이후)에 해당하는 이벤트를 보냅니다. sendInitialEvents 옵션을 설정할 때는 resourceVersionMatch 옵션도 반드시 설정해야 합니다. watch 요청의 의미는 다음과 같습니다: |
| shardSelector | string | shardSelector는 CEL 기반 샤드 선택자(shard selector) 표현식을 사용하여 반환되는 객체 목록을 제한합니다. 형식은 shardRange() 함수와 ||(논리 OR)을 결합하여 하나 이상의 해시 범위를 지정합니다: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 필드 경로는 CEL 스타일의 객체 루트 구문(예: "object.metadata.uid")을 사용하며, fieldSelector 형식("metadata.uid")이 아닙니다. 현재 지원되는 경로: - object.metadata.uid - object.metadata.namespace hexStart와 hexEnd는 '0x' 접두사가 붙은 단일 인용 CEL 문자열 리터럴로, 64비트 FNV-1a 해시 공간의 포함하는 하한과 배타적 상한을 정의합니다. 전체 범위는 [0x0, 0x10000000000000000)이며, 배타적 상한은 2^64와 같습니다. 예: 2-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 4-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000') 샤드 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000') 샤드 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000') 이는 알파 필드이며 ShardedListAndWatch 기능 게이트(feature gate)를 활성화해야 합니다. |
| timeoutSeconds | integer | list/watch 호출의 타임아웃입니다. 활동 여부와 관계없이 호출 시간을 제한합니다. |
| watch | boolean | 설명된 리소스의 변경 사항을 감시(watch)하여 add, update, remove 알림의 스트림으로 반환합니다. resourceVersion을 지정하세요. |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | CSIDriverList |
get Watch
HTTP 요청 (HTTP Request)
GET /apis/storage.k8s.io/v1/watch/csidrivers/{name}
경로 매개변수 (Path Parameters)
| Name | Type | Description |
|---|---|---|
| name | string | CSIDriver의 이름입니다. |
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| allowWatchBookmarks | boolean | allowWatchBookmarks는 "BOOKMARK" 타입의 watch 이벤트를 요청합니다. 북마크를 구현하지 않은 서버는 이 플래그를 무시할 수 있으며, 북마크 전송은 서버의 판단에 따릅니다. 클라이언트는 북마크가 특정 간격으로 반환된다고 가정해서는 안 되며, 세션 중 서버가 BOOKMARK 이벤트를 보낼 것이라고 가정해서도 안 됩니다. 이 요청이 watch가 아니라면 이 필드는 무시됩니다. |
| continue | string | 서버에서 더 많은 결과를 가져올 때는 continue 옵션을 설정해야 합니다. 이 값은 서버가 정의하므로 클라이언트는 continue 값 자체를 제외하고 동일한 쿼리 매개변수를 사용한 이전 쿼리 결과의 continue 값만 사용할 수 있으며, 서버는 인식하지 못하는 continue 값을 거부할 수 있습니다. 지정된 continue 값이 만료(보통 5~15분)되거나 서버의 구성 변경으로 더 이상 유효하지 않으면, 서버는 continue 토큰과 함께 410 ResourceExpired 오류로 응답합니다. 클라이언트가 일관된 목록을 원한다면 continue 필드 없이 목록을 다시 시작해야 합니다. 그렇지 않으면 클라이언트는 410 오류로 받은 토큰으로 다른 목록 요청을 보낼 수 있으며, 서버는 다음 키부터 시작하되 최신 스냅샷 기준의 목록으로 응답하는데, 이는 이전 목록 결과와 일치하지 않을 수 있습니다(첫 목록 요청 이후 생성/수정/삭제된 객체는 키가 "다음 키" 이후라면 응답에 포함됩니다). watch가 true일 때는 이 필드가 지원되지 않습니다. 클라이언트는 서버가 반환한 마지막 resourceVersion 값부터 watch를 시작하여 변경 사항을 놓치지 않을 수 있습니다. |
| fieldSelector | string | 반환되는 객체 목록을 필드 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| labelSelector | string | 반환되는 객체 목록을 라벨 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| limit | integer | limit은 목록 호출에서 반환할 최대 응답 수입니다. 더 많은 항목이 존재하면 서버는 목록 메타데이터의 continue 필드에 동일한 초기 쿼리로 다음 결과 집합을 가져오는 데 사용할 수 있는 값을 설정합니다. limit을 설정하면 요청된 모든 객체가 필터링되는 경우 요청한 수보다 적게(최대 0개까지) 반환될 수 있으며, 클라이언트는 더 많은 결과가 있는지 여부를 판단할 때 continue 필드의 존재만 사용해야 합니다. 서버는 limit 인자를 지원하지 않기로 선택하고 사용 가능한 모든 결과를 반환할 수 있습니다. limit이 지정되고 continue 필드가 비어 있으면 클라이언트는 더 이상 사용 가능한 결과가 없다고 가정할 수 있습니다. watch가 true이면 이 필드는 지원되지 않습니다. 서버는 continue를 사용할 때 반환되는 객체가 limit 없이 한 번의 목록 호출을 수행한 것과 동일함을 보장합니다. 즉 첫 요청 이후 생성/수정/삭제된 객체는 이후의 지속 요청에 포함되지 않습니다. 이를 일관된 스냅샷(consistent snapshot)이라고도 하며, limit으로 매우 큰 결과를 작은 조각으로 나누어 받는 클라이언트가 모든 가능한 객체를 볼 수 있도록 보장합니다. 청크 목록 중 객체가 업데이트되면 첫 목록 결과가 계산된 시점에 존재했던 객체 버전이 반환됩니다. |
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| resourceVersion | string | resourceVersion은 요청이 제공될 수 있는 리소스 버전에 대한 제약을 설정합니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| resourceVersionMatch | string | resourceVersionMatch는 resourceVersion이 목록 호출에 어떻게 적용되는지 결정합니다. resourceVersion이 설정된 목록 호출에서는 resourceVersionMatch를 설정하는 것이 매우 권장됩니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| sendInitialEvents | boolean | sendInitialEvents=true는 watch=true와 함께 설정할 수 있습니다. 이 경우 watch 스트림은 현재 컬렉션에 있는 객체들의 상태를 만들어 내는 합성(synthetic) 이벤트로 시작합니다. 그러한 이벤트가 모두 전송되면 합성 "Bookmark" 이벤트가 전송됩니다. 이 bookmark는 객체 집합에 해당하는 ResourceVersion(RV)을 보고하며 "k8s.io/initial-events-end": "true" 어노테이션으로 표시됩니다. 이후 watch 스트림은 평소처럼 진행되며, 감시 대상 객체의 변경(RV 이후)에 해당하는 이벤트를 보냅니다. sendInitialEvents 옵션을 설정할 때는 resourceVersionMatch 옵션도 반드시 설정해야 합니다. watch 요청의 의미는 다음과 같습니다: |
| shardSelector | string | shardSelector는 CEL 기반 샤드 선택자(shard selector) 표현식을 사용하여 반환되는 객체 목록을 제한합니다. 형식은 shardRange() 함수와 ||(논리 OR)을 결합하여 하나 이상의 해시 범위를 지정합니다: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 필드 경로는 CEL 스타일의 객체 루트 구문(예: "object.metadata.uid")을 사용하며, fieldSelector 형식("metadata.uid")이 아닙니다. 현재 지원되는 경로: - object.metadata.uid - object.metadata.namespace hexStart와 hexEnd는 '0x' 접두사가 붙은 단일 인용 CEL 문자열 리터럴로, 64비트 FNV-1a 해시 공간의 포함하는 하한과 배타적 상한을 정의합니다. 전체 범위는 [0x0, 0x10000000000000000)이며, 배타적 상한은 2^64와 같습니다. 예: 2-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 4-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000') 샤드 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000') 샤드 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000') 이는 알파 필드이며 ShardedListAndWatch 기능 게이트(feature gate)를 활성화해야 합니다. |
| timeoutSeconds | integer | list/watch 호출의 타임아웃입니다. 활동 여부와 관계없이 호출 시간을 제한합니다. |
| watch | boolean | 설명된 리소스의 변경 사항을 감시(watch)하여 add, update, remove 알림의 스트림으로 반환합니다. resourceVersion을 지정하세요. |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | WatchEvent |
get Watch List
HTTP 요청 (HTTP Request)
GET /apis/storage.k8s.io/v1/watch/csidrivers
쿼리 매개변수 (Query Parameters)
| Name | Type | Description |
|---|---|---|
| allowWatchBookmarks | boolean | allowWatchBookmarks는 "BOOKMARK" 타입의 watch 이벤트를 요청합니다. 북마크를 구현하지 않은 서버는 이 플래그를 무시할 수 있으며, 북마크 전송은 서버의 판단에 따릅니다. 클라이언트는 북마크가 특정 간격으로 반환된다고 가정해서는 안 되며, 세션 중 서버가 BOOKMARK 이벤트를 보낼 것이라고 가정해서도 안 됩니다. 이 요청이 watch가 아니라면 이 필드는 무시됩니다. |
| continue | string | 서버에서 더 많은 결과를 가져올 때는 continue 옵션을 설정해야 합니다. 이 값은 서버가 정의하므로 클라이언트는 continue 값 자체를 제외하고 동일한 쿼리 매개변수를 사용한 이전 쿼리 결과의 continue 값만 사용할 수 있으며, 서버는 인식하지 못하는 continue 값을 거부할 수 있습니다. 지정된 continue 값이 만료(보통 5~15분)되거나 서버의 구성 변경으로 더 이상 유효하지 않으면, 서버는 continue 토큰과 함께 410 ResourceExpired 오류로 응답합니다. 클라이언트가 일관된 목록을 원한다면 continue 필드 없이 목록을 다시 시작해야 합니다. 그렇지 않으면 클라이언트는 410 오류로 받은 토큰으로 다른 목록 요청을 보낼 수 있으며, 서버는 다음 키부터 시작하되 최신 스냅샷 기준의 목록으로 응답하는데, 이는 이전 목록 결과와 일치하지 않을 수 있습니다(첫 목록 요청 이후 생성/수정/삭제된 객체는 키가 "다음 키" 이후라면 응답에 포함됩니다). watch가 true일 때는 이 필드가 지원되지 않습니다. 클라이언트는 서버가 반환한 마지막 resourceVersion 값부터 watch를 시작하여 변경 사항을 놓치지 않을 수 있습니다. |
| fieldSelector | string | 반환되는 객체 목록을 필드 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| labelSelector | string | 반환되는 객체 목록을 라벨 기준으로 제한하는 선택자(selector)입니다. 기본값은 모든 것을 대상으로 합니다. |
| limit | integer | limit은 목록 호출에서 반환할 최대 응답 수입니다. 더 많은 항목이 존재하면 서버는 목록 메타데이터의 continue 필드에 동일한 초기 쿼리로 다음 결과 집합을 가져오는 데 사용할 수 있는 값을 설정합니다. limit을 설정하면 요청된 모든 객체가 필터링되는 경우 요청한 수보다 적게(최대 0개까지) 반환될 수 있으며, 클라이언트는 더 많은 결과가 있는지 여부를 판단할 때 continue 필드의 존재만 사용해야 합니다. 서버는 limit 인자를 지원하지 않기로 선택하고 사용 가능한 모든 결과를 반환할 수 있습니다. limit이 지정되고 continue 필드가 비어 있으면 클라이언트는 더 이상 사용 가능한 결과가 없다고 가정할 수 있습니다. watch가 true이면 이 필드는 지원되지 않습니다. 서버는 continue를 사용할 때 반환되는 객체가 limit 없이 한 번의 목록 호출을 수행한 것과 동일함을 보장합니다. 즉 첫 요청 이후 생성/수정/삭제된 객체는 이후의 지속 요청에 포함되지 않습니다. 이를 일관된 스냅샷(consistent snapshot)이라고도 하며, limit으로 매우 큰 결과를 작은 조각으로 나누어 받는 클라이언트가 모든 가능한 객체를 볼 수 있도록 보장합니다. 청크 목록 중 객체가 업데이트되면 첫 목록 결과가 계산된 시점에 존재했던 객체 버전이 반환됩니다. |
| pretty | string | 값이 'true'이면 출력을 보기 좋게(pretty printed) 만듭니다. user-agent가 브라우저나 명령줄 HTTP 도구(curl, wget)를 나타내지 않는 한 기본값은 'false'입니다. |
| resourceVersion | string | resourceVersion은 요청이 제공될 수 있는 리소스 버전에 대한 제약을 설정합니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| resourceVersionMatch | string | resourceVersionMatch는 resourceVersion이 목록 호출에 어떻게 적용되는지 결정합니다. resourceVersion이 설정된 목록 호출에서는 resourceVersionMatch를 설정하는 것이 매우 권장됩니다. 자세한 내용은 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 를 참조하세요. 기본값은 설정되지 않은 상태(unset)입니다. |
| sendInitialEvents | boolean | sendInitialEvents=true는 watch=true와 함께 설정할 수 있습니다. 이 경우 watch 스트림은 현재 컬렉션에 있는 객체들의 상태를 만들어 내는 합성(synthetic) 이벤트로 시작합니다. 그러한 이벤트가 모두 전송되면 합성 "Bookmark" 이벤트가 전송됩니다. 이 bookmark는 객체 집합에 해당하는 ResourceVersion(RV)을 보고하며 "k8s.io/initial-events-end": "true" 어노테이션으로 표시됩니다. 이후 watch 스트림은 평소처럼 진행되며, 감시 대상 객체의 변경(RV 이후)에 해당하는 이벤트를 보냅니다. sendInitialEvents 옵션을 설정할 때는 resourceVersionMatch 옵션도 반드시 설정해야 합니다. watch 요청의 의미는 다음과 같습니다: |
| shardSelector | string | shardSelector는 CEL 기반 샤드 선택자(shard selector) 표현식을 사용하여 반환되는 객체 목록을 제한합니다. 형식은 shardRange() 함수와 ||(논리 OR)을 결합하여 하나 이상의 해시 범위를 지정합니다: shardRange(object.metadata.uid, '0x0', '0x8000000000000000') shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 필드 경로는 CEL 스타일의 객체 루트 구문(예: "object.metadata.uid")을 사용하며, fieldSelector 형식("metadata.uid")이 아닙니다. 현재 지원되는 경로: - object.metadata.uid - object.metadata.namespace hexStart와 hexEnd는 '0x' 접두사가 붙은 단일 인용 CEL 문자열 리터럴로, 64비트 FNV-1a 해시 공간의 포함하는 하한과 배타적 상한을 정의합니다. 전체 범위는 [0x0, 0x10000000000000000)이며, 배타적 상한은 2^64와 같습니다. 예: 2-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000') 4-샤드 분할: 샤드 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000') 샤드 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000') 샤드 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000') 샤드 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000') 이는 알파 필드이며 ShardedListAndWatch 기능 게이트(feature gate)를 활성화해야 합니다. |
| timeoutSeconds | integer | list/watch 호출의 타임아웃입니다. 활동 여부와 관계없이 호출 시간을 제한합니다. |
| watch | boolean | 설명된 리소스의 변경 사항을 감시(watch)하여 add, update, remove 알림의 스트림으로 반환합니다. resourceVersion을 지정하세요. |
응답 (Response)
| Status | Description | Response |
|---|---|---|
| 200 | OK | WatchEvent |