diff --git a/content/ko/docs/reference/labels-annotations-taints/_index.md b/content/ko/docs/reference/labels-annotations-taints/_index.md index dd273fd349..fd517c8fab 100644 --- a/content/ko/docs/reference/labels-annotations-taints/_index.md +++ b/content/ko/docs/reference/labels-annotations-taints/_index.md @@ -7,7 +7,7 @@ weight: 20 -쿠버네티스는 모든 레이블과 어노테이션을 `kubernetes.io` 네임스페이스 아래에 정의해 놓았다. +쿠버네티스는 모든 레이블과 어노테이션을 `kubernetes.io`와 `k8s.io` 네임스페이스 아래에 정의해 놓았다. 이 문서는 각 값에 대한 레퍼런스를 제공하며, 값을 할당하기 위한 협력 포인트도 제공한다. @@ -25,7 +25,7 @@ weight: 20 [추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다. -### app.kubernetes.io/created-by +### app.kubernetes.io/created-by (사용 중단됨) 예시: `app.kubernetes.io/created-by: "controller-manager"` @@ -33,7 +33,9 @@ weight: 20 리소스를 생성한 컨트롤러/사용자. -[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다. +{{< note >}} +v1.9부터 이 레이블은 더 이상 사용되지 않는다. +{{< /note >}} ### app.kubernetes.io/instance @@ -85,6 +87,18 @@ weight: 20 [추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다. +### cluster-autoscaler.kubernetes.io/safe-to-evict + +예시: `cluster-autoscaler.kubernetes.io/safe-to-evict: "true"` + +적용 대상: 파드 + +이 어노테이션이 `"true"`로 설정된 경우, 파드 축출을 막는 다른 규칙이 있는 경우에도 +클러스터 오토스케일러가 파드를 축출할 수 있다. +클러스터 오토스케일러는 명시적으로 이 어노테이션이 `"false"`로 설정된 파드를 절대 축출하지 않는다. +따라서, 계속해서 실행을 유지하고자 하는 중요한 파드에 설정할 수 있다. +이 어노테이션이 설정되지 않은 경우, 클러스터 오토스케일러는 파드 수준(Pod-level) 동작을 따른다. + ## kubernetes.io/arch 예시: `kubernetes.io/arch=amd64` @@ -168,6 +182,23 @@ kubelet이 호스트네임을 읽어서 이 레이블의 값으로 채운다. `k 이 어노테이션은 레플리카셋(ReplicaSet) 다운스케일 순서를 조정할 수 있는 요소인 [파드 삭제 비용](/ko/docs/concepts/workloads/controllers/replicaset/#파드-삭제-비용)을 설정하기 위해 사용한다. 명시된 값은 `int32` 타입으로 파싱된다. +### cluster-autoscaler.kubernetes.io/enable-ds-eviction + +예시: `cluster-autoscaler.kubernetes.io/enable-ds-eviction: "true"` + +적용 대상: Pod + +이 어노테이션은 클러스터 오토스케일러가 데몬셋 파드를 축출할 것인지 여부를 제어한다. +이 어노테이션은 데몬셋 매니페스트 내 데몬셋 파드에 명시되어야 한다. +이 어노테이션이 `"true"`로 설정된 경우, 파드 축출을 막는 다른 규칙이 있는 경우에도 +클러스터 오토스케일러가 파드를 축출할 수 있다. 클러스터 오토스케일러가 데몬셋 파드를 축출하는 것을 허용하지 않기 위해서는, +중요한 데몬셋 파드에 이 어노테이션을 `"false"`로 설정한다. +이 어노테이션이 설정되지 않은 경우, 클러스터 오토스케일러는 전체 동작을 따른다. 즉, 해당 구성에 따라서 데몬셋을 축출한다. + +{{< note >}} +이 어노테이션은 데몬셋 파드에만 적용된다. +{{< /note >}} + ### kubernetes.io/ingress-bandwidth {{< note >}} @@ -420,7 +451,7 @@ v1.18부터, `spec.ingressClassName`으로 대체되었다. kubelet이 노드에 할당된 IPv4 주소를 명시하기 위해 이 어노테이션을 사용할 수 있다. -kubelet이 "외부" 클라우드 제공자에 의해 실행되었다면, 명령줄 플래그(`--node-ip`)를 통해 설정된 IP 주소를 명시하기 위해 kubelet이 이 어노테이션을 노드에 설정한다. cloud-controller-manager는 클라우드 제공자에게 이 IP 주소가 유효한지를 검증한다. +kubelet이 `--cloud-provider` 플래그를 사용하여 어떤 값을 갖게 되었다면 (외부 또는 레거시 트리 내(in-tree) 클라우드 공급자 모두 포함), kubelet은 이 어노테이션을 노드에 설정하여 명령줄 플래그(`--node-ip`)를 통해 설정된 IP 주소를 명시한다. cloud-controller-manager는 클라우드 제공자에게 이 IP 주소가 유효한지를 검증한다. ## batch.kubernetes.io/job-completion-index @@ -622,15 +653,19 @@ kubelet이 "외부" 클라우드 공급자에 의해 실행되었다면 노드 예시: `kubernetes.io/psp: restricted` -이 어노테이션은 [파드시큐리티폴리시](/ko/docs/concepts/security/pod-security-policy/)를 사용하는 경우에만 관련있다. +적용 대상: 파드 -파드시큐리티폴리시 어드미션 컨트롤러가 파드를 승인하면, -어드미션 컨트롤러는 파드가 이 어노테이션을 갖도록 수정한다. -이 어노테이션 값은 유효성 검사에서 사용된 파드시큐리티폴리시의 이름이다. +이 어노테이션은 파드시큐리티폴리시(PodSecurityPolicy)[PodSecurityPolicies](/ko/docs/concepts/security/pod-security-policy/)를 사용하는 경우에만 관련이 있다. +쿠버네티스 v{{< skew currentVersion >}}은 파드시큐리티폴리시 API를 지원하지 않는다. + +파드시큐리티폴리시 어드미션 컨트롤러가 파드를 승인했을 때, +어드미션 컨트롤러는 파드가 이 어노테이션을 갖도록 수정했다. +이 어노테이션 값은 유효성 검사에서 사용된 파드시큐리티폴리시의 이름이었다. ## seccomp.security.alpha.kubernetes.io/pod (사용 중단됨) {#seccomp-security-alpha-kubernetes-io-pod} -이 어노테이션은 쿠버네티스 v1.19부터 사용 중단되었으며 v1.25에서는 작동하지 않을 것이다. +이 어노테이션은 쿠버네티스 v1.19부터 사용 중단되었으며 향후 릴리스에서는 작동하지 않을 것이다. +대신 해당 파드 또는 컨테이너의 `securityContext.seccompProfile` 필드를 사용한다. 파드의 보안 설정을 지정하려면, 파드 스펙에 `securityContext` 필드를 추가한다. 파드의 `.spec` 내의 [`securityContext`](/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context) 필드는 파드 수준 보안 속성을 정의한다. [파드의 보안 컨텍스트를 설정](/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod)하면, @@ -638,7 +673,8 @@ kubelet이 "외부" 클라우드 공급자에 의해 실행되었다면 노드 ## container.seccomp.security.alpha.kubernetes.io/[이름] {#container-seccomp-security-alpha-kubernetes-io} -이 어노테이션은 쿠버네티스 v1.19부터 사용 중단되었으며 v1.25에서는 작동하지 않을 것이다. +이 어노테이션은 쿠버네티스 v1.19부터 사용 중단되었으며 향후 릴리스에서는 작동하지 않을 것이다. +대신 해당 파드 또는 컨테이너의 `securityContext.seccompProfile` 필드를 사용한다. [seccomp를 이용하여 컨테이너의 syscall 제한하기](/docs/tutorials/security/seccomp/) 튜토리얼에서 seccomp 프로파일을 파드 또는 파드 내 컨테이너에 적용하는 단계를 확인한다. 튜토리얼에서는 쿠버네티스에 seccomp를 설정하기 위해 사용할 수 있는 방법을 소개하며, @@ -655,7 +691,7 @@ seccomp 프로파일을 파드 또는 파드 내 컨테이너에 적용하는 볼륨스냅샷(VolumeSnapshot)으로부터 생성될 경우, 사용자가 소스 볼륨의 모드를 수정할 수 있는지 여부를 결정한다. -자세한 사항은 [스냅샷의 볼륨 모드 변환하기](/ko/docs/concepts/storage/volume-snapshots/#convert-volume-mode)와 +자세한 사항은 [스냅샷의 볼륨 모드 변환하기](/ko/docs/concepts/storage/volume-snapshots/#convert-volume-mode)와 [쿠버네티스 CSI 개발자용 문서](https://kubernetes-csi.github.io/docs/)를 참조한다. ## Audit을 위한 어노테이션들 @@ -723,14 +759,3 @@ kubeadm이 관리하는 컨트롤 플레인 노드에 적용되는 레이블. 적용 대상: 노드 중요한 워크로드만 스케줄링할 수 있도록 컨트롤 플레인 노드에 적용시키는 테인트. - -### node-role.kubernetes.io/master - -예시: `node-role.kubernetes.io/master:NoSchedule` - -적용 대상: 노드 - -중요한 워크로드만 스케줄링할 수 있도록 컨트롤 플레인 노드에 적용시키는 테인트. - -{{< note >}} 버전 v1.20 부터, 이 테인트는 `node-role.kubernetes.io/control-plane`의 등장으로 더 이상 사용되지 않으며, -버전 v1.25에서 삭제될 예정이다.{{< /note >}}