[ko] Update outdated files in dev-1.24-ko.2 (M54-M64)

pull/35333/head
bconfiden2 2022-07-21 16:36:15 +09:00
parent 22194189ed
commit 4f7d6ab342
10 changed files with 412 additions and 90 deletions

View File

@ -77,9 +77,11 @@ TCP/UDP 스트림 포워딩이나 백-엔드 집합에 걸쳐서 라운드-로
* [kube-apiserver 환경설정 (v1alpha1)](/docs/reference/config-api/apiserver-config.v1alpha1/)
* [kube-apiserver 환경설정 (v1)](/docs/reference/config-api/apiserver-config.v1/)
* [kube-apiserver 암호화 (v1)](/docs/reference/config-api/apiserver-encryption.v1/)
* [kube-apiserver 요청 제한 (v1alpha1)](/docs/reference/config-api/apiserver-eventratelimit.v1alpha1/)
* [kubelet 환경설정 (v1alpha1)](/docs/reference/config-api/kubelet-config.v1alpha1/) 및
[kubelet 환경설정 (v1beta1)](/docs/reference/config-api/kubelet-config.v1beta1/)
* [kubelet 크리덴셜 제공자 (v1alpha1)](/docs/reference/config-api/kubelet-credentialprovider.v1alpha1/)
* [kubelet 자격증명 제공자 (v1alpha1)](/docs/reference/config-api/kubelet-credentialprovider.v1alpha1/)
* [kubelet 자격증명 제공자 (v1beta1)](/docs/reference/config-api/kubelet-credentialprovider.v1beta1/)
* [kube-scheduler 환경설정 (v1beta2)](/docs/reference/config-api/kube-scheduler-config.v1beta2/) 및
[kube-scheduler 환경설정 (v1beta3)](/docs/reference/config-api/kube-scheduler-config.v1beta3/)
* [kube-proxy 환경설정 (v1alpha1)](/docs/reference/config-api/kube-proxy-config.v1alpha1/)
@ -87,6 +89,7 @@ TCP/UDP 스트림 포워딩이나 백-엔드 집합에 걸쳐서 라운드-로
* [클라이언트 인증 API (v1beta1)](/docs/reference/config-api/client-authentication.v1beta1/) 및
[클라이언트 인증 API (v1)](/docs/reference/config-api/client-authentication.v1/)
* [WebhookAdmission 환경설정 (v1)](/docs/reference/config-api/apiserver-webhookadmission.v1/)
* [이미지 정책 API (v1alpha1)](/docs/reference/config-api/imagepolicy.v1alpha1/)
## kubeadm을 위한 API 설정
@ -96,5 +99,5 @@ TCP/UDP 스트림 포워딩이나 백-엔드 집합에 걸쳐서 라운드-로
## 설계 문서
쿠버네티스 기능에 대한 설계 문서의 아카이브.
[쿠버네티스 아키텍처](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md)와
[쿠버네티스 디자인 개요](https://git.k8s.io/community/contributors/design-proposals)가 좋은 출발점이다.
[쿠버네티스 아키텍처](https://git.k8s.io/design-proposals-archive/architecture/architecture.md)와
[쿠버네티스 디자인 개요](https://git.k8s.io/design-proposals-archive)부터 읽어보는 것이 좋다.

View File

@ -24,3 +24,5 @@ no_list: true
- 서비스 어카운트
- [개발자 가이드](/docs/tasks/configure-pod-container/configure-service-account/)
- [관리](/ko/docs/reference/access-authn-authz/service-accounts-admin/)
- [kubelet 인증과 인가](/docs/reference/access-authn-authz/kubelet-authn-authz/)
- kubelet [TLS 부트스트래핑](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/)을 포함함

View File

@ -760,7 +760,7 @@ kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면,
Portworx CSI 플러그인으로 라우트하는 심(shim)과 변환 로직을 활성화한다.
Portworx CSI 드라이버가 설치 및 설정되어 있어야 한다.
- `CSINodeInfo`: `csi.storage.k8s.io` 내의 CSINodeInfo API 오브젝트와 관련된 모든 로직을 활성화한다.
- `CSIPersistentVolume`: [CSI (Container Storage Interface)](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md)
- `CSIPersistentVolume`: [CSI (Container Storage Interface)](https://git.k8s.io/design-proposals-archive/storage/container-storage-interface.md)
호환 볼륨 플러그인을 통해 프로비저닝된 볼륨을 감지하고
마운트할 수 있다.
- `CSIServiceAccountToken` : 볼륨을 마운트하는 파드의 서비스 계정 토큰을 받을 수 있도록
@ -1087,10 +1087,10 @@ kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면,
참조한다.
- `RotateKubeletClientCertificate`: kubelet에서 클라이언트 TLS 인증서의 로테이션을 활성화한다.
자세한 내용은
[kubelet 구성](/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#kubelet-configuration)을 참고한다.
[kubelet 구성](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#kubelet-configuration)을 참고한다.
- `RotateKubeletServerCertificate`: kubelet에서 서버 TLS 인증서의 로테이션을 활성화한다.
자세한 사항은
[kubelet 구성](/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#kubelet-configuration)을 확인한다.
[kubelet 구성](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#kubelet-configuration)을 확인한다.
- `RunAsGroup`: 컨테이너의 init 프로세스에 설정된 기본 그룹 ID 제어를
활성화한다.
- `RuntimeClass`: 컨테이너 런타임 구성을 선택하기 위해 [런타임클래스(RuntimeClass)](/ko/docs/concepts/containers/runtime-class/)

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,6 @@ short_description: >
타사 공급자가 유지보수하는 소프트웨어.
aka:
tags:
- extension
---
@ -17,6 +16,3 @@ tags:
매니지드 서비스의 몇 가지 예시로 AWS EC2, Azure SQL Database 그리고
GCP Pub/Sub이 있으나, 애플리케이션에서 사용할 수 있는 모든 소프트웨어 제품이 될 수 있다.
[서비스 카탈로그](/ko/docs/concepts/extend-kubernetes/service-catalog/)는
{{< glossary_tooltip text="서비스 브로커" term_id="service-broker" >}}가 제공하는
매니지드 서비스의 목록과 프로비전, 바인딩하는 방법을 제공한다.

View File

@ -4,15 +4,15 @@ id: service-catalog
date: 2018-04-12
full_link:
short_description: >
쿠버네티스 클러스터 내에서 실행되는 응용 프로그램이 클라우드 공급자가 제공하는 데이터 저장소 서비스와 같은 외부 관리 소프트웨어 제품을 쉽게 사용할 수 있도록하는 확장 API이다.
쿠버네티스 클러스터 내에서 실행되는 응용 프로그램이, 클라우드 공급자가 제공하는 데이터 저장소 서비스와 같은 외부 관리 소프트웨어 제품을 쉽게 사용할 수 있도록 해주던 이전의 확장 API이다.
aka:
tags:
- extension
---
쿠버네티스 클러스터 내에서 실행되는 응용 프로그램이 클라우드 공급자가 제공하는 데이터 저장소 서비스와 같은 외부 관리 소프트웨어 제품을 쉽게 사용할 수 있도록하는 확장 API이다.
쿠버네티스 클러스터 내에서 실행되는 응용 프로그램이, 클라우드 공급자가 제공하는 데이터 저장소 서비스와 같은 외부 관리 소프트웨어 제품을 쉽게 사용할 수 있도록 해주던 이전의 확장 API이다.
<!--more-->
서비스 생성 또는 관리에 대한 자세한 지식 없이도 {{< glossary_tooltip text="서비스 브로커" term_id="service-broker" >}}를 통해 외부의 {{< glossary_tooltip text="매니지드 서비스" term_id="managed-service" >}}의 목록과 프로비전, 바인딩하는 방법을 제공한다.
서비스 생성 또는 관리에 대한 자세한 지식 없이도 외부의 {{< glossary_tooltip text="매니지드 서비스" term_id="managed-service" >}}의 목록과 프로비전, 바인딩하는 방법을 제공한다.

View File

@ -30,14 +30,14 @@ echo "source <(kubectl completion bash)" >> ~/.bashrc # 자동 완성을 bash
```bash
alias k=kubectl
complete -F __start_kubectl k
complete -o default -F __start_kubectl k
```
### ZSH
```bash
source <(kubectl completion zsh) # 현재 셸에 zsh의 자동 완성 설정
echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshrc # 자동 완성을 zsh 셸에 영구적으로 추가한다.
echo '[[ $commands[kubectl] ]] && source <(kubectl completion zsh)' >> ~/.zshrc # 자동 완성을 zsh 셸에 영구적으로 추가한다.
```
### --all-namespaces 에 대한 노트
@ -265,22 +265,22 @@ kubectl autoscale deployment foo --min=2 --max=10 # 디플로이
## 리소스 패치
```bash
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' # 노드를 부분적으로 업데이트
# 노드를 부분적으로 업데이트
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'
# 컨테이너의 이미지를 업데이트. 병합(merge) 키이므로, spec.containers[*].name이 필요.
# 컨테이너의 이미지를 업데이트. 병합(merge) 키이므로, spec.containers[*].name이 필요
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'
# 위치 배열을 이용한 json 패치를 사용하여, 컨테이너의 이미지를 업데이트.
# 위치 배열을 이용한 json 패치를 사용하여, 컨테이너의 이미지를 업데이트
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'
# 위치 배열을 이용한 json 패치를 사용하여 livenessProbe 디플로이먼트 비활성화.
# 위치 배열을 이용한 json 패치를 사용하여 livenessProbe 디플로이먼트 비활성화
kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]'
# 위치 배열에 새 요소 추가
kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'
# Update a deployment's replicas count by patching it's scale subresource
# 디플로이먼트의 scale 서브리소스를 패치하여 레플리카 카운트를 업데이트.
# 디플로이먼트의 scale 서브리소스를 패치하여 레플리카 수 업데이트
kubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'
```
@ -381,7 +381,10 @@ kubectl cluster-info # 마스
kubectl cluster-info dump # 현재 클러스터 상태를 stdout으로 덤프
kubectl cluster-info dump --output-directory=/path/to/cluster-state # 현재 클러스터 상태를 /path/to/cluster-state으로 덤프
# key와 effect가 있는 테인트(taint)가 이미 존재하면, 그 값이 지정된 대로 대체된다.
# 현재 노드에 존재하고 있는 테인트(taint)들을 확인
kubectl get nodes -o=custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect
# 이미 존재하고 있는 key와 effect를 갖는 테인트의 경우, 지정한 값으로 대체
kubectl taint nodes foo dedicated=special-user:NoSchedule
```

View File

@ -2,6 +2,7 @@
title: 잘 알려진 레이블, 어노테이션, 테인트(Taint)
content_type: concept
weight: 20
---
<!-- overview -->
@ -10,10 +11,80 @@ weight: 20
이 문서는 각 값에 대한 레퍼런스를 제공하며, 값을 할당하기 위한 협력 포인트도 제공한다.
<!-- body -->
## API 오브젝트에서 사용되는 레이블, 어노테이션, 테인트
### app.kubernetes.io/component
예시: `app.kubernetes.io/component: "database"`
적용 대상: 모든 오브젝트
아키텍처 내의 컴포넌트.
[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다.
### app.kubernetes.io/created-by
예시: `app.kubernetes.io/created-by: "controller-manager"`
적용 대상: 모든 오브젝트
리소스를 생성한 컨트롤러/사용자.
[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다.
### app.kubernetes.io/instance
예시: `app.kubernetes.io/instance: "mysql-abcxzy"`
적용 대상: 모든 오브젝트
애플리케이션 인스턴스를 식별하기 위한 고유한 이름.
[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다.
### app.kubernetes.io/managed-by
예시: `app.kubernetes.io/managed-by: "helm"`
적용 대상: 모든 오브젝트
애플리케이션의 작업을 관리하기 위해 사용되는 도구.
[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다.
### app.kubernetes.io/name
예시: `app.kubernetes.io/name: "mysql"`
적용 대상: 모든 오브젝트
애플리케이션의 이름.
[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다.
### app.kubernetes.io/part-of
예시: `app.kubernetes.io/part-of: "wordpress"`
적용 대상: 모든 오브젝트
해당 애플리케이션이 속한 상위 레벨의 애플리케이션 이름.
[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다.
### app.kubernetes.io/version
예시: `app.kubernetes.io/version: "5.7.21"`
적용 대상: 모든 오브젝트
애플리케이션의 현재 버전(시맨틱 버전, 리비전 해시, 기타 등등).
[추천하는 레이블](/ko/docs/concepts/overview/working-with-objects/common-labels/#labels)을 확인한다.
## kubernetes.io/arch
예시: `kubernetes.io/arch=amd64`
@ -72,15 +143,69 @@ kubelet이 호스트네임을 읽어서 이 레이블의 값으로 채운다. `k
어떤 오브젝트를 변경할 수도 있는 `kubectl` 명령에 `--record` 플래그를 사용하면 이 레이블이 추가된다.
### kubernetes.io/description {#description}
예시: `kubernetes.io/description: "Description of K8s object."`
적용 대상: 모든 오브젝트
이 어노테이션은 주어진 오브젝트의 특정 상태를 표현하는데 사용한다.
### kubernetes.io/enforce-mountable-secrets {#enforce-mountable-secrets}
예시: `kubernetes.io/enforce-mountable-secrets: "true"`
적용 대상: 서비스어카운트(ServiceAccount)
이 어노테이션의 값은 **true**로 설정되어야만 작동한다. 이 어노테이션은, 해당 서비스어카운트로 동작중인 파드가 그 서비스어카운트의 `secrets` 항목에 명시된 Secret API 오브젝트만을 참조한다는 뜻이다.
## controller.kubernetes.io/pod-deletion-cost {#pod-deletion-cost}
예시: `controller.kubernetes.io/pod-deletion-cost=10`
적용 대상: Pod
적용 대상: 파드
이 어노테이션은 레플리카셋(ReplicaSet) 다운스케일 순서를 조정할 수 있는 요소인 [파드 삭제 비용](/ko/docs/concepts/workloads/controllers/replicaset/#파드-삭제-비용)을
설정하기 위해 사용한다. 명시된 값은 `int32` 타입으로 파싱된다.
### kubernetes.io/ingress-bandwidth
{{< note >}}
인그레스 트래픽 조절 어노테이션은 실험적인 기능이다.
만약 트래픽 조절 기능을 활성화시키고 싶다면, CNI 설정 파일(기본적으로 `/etc/cni/net.d`)에 `bandwidth` 플러그인을 추가해야 하며,
실행파일이 CNI의 실행파일 경로(기본적으로 `/opt/cni/bin`) 아래에 포함되어있는지도 확인하자.
{{< /note >}}
Example: `kubernetes.io/ingress-bandwidth: 10M`
적용 대상: 파드
파드에 QoS(quality-of-service)를 적용함으로써 가용한 대역폭을 효과적으로 제한할 수 있다.
인그레스 트래픽(파드로 향하는)은 효과적으로 데이터를 처리하기 위해 대기 중인 패킷을 큐로 관리한다.
파드의 대역폭을 제한하기 위해서는, 오브젝트를 정의하는 JSON 파일을 작성하고
`kubernetes.io/ingress-bandwidth` 어노테이션을 통해 데이터 트래픽의 속도를 명시한다. 인그레스 속도를 명시할 때 사용되는 단위는
초당 비트([수량](/docs/reference/kubernetes-api/common-definitions/quantity/))이다.
예를 들어, `10M`은 초당 10 메가비트를 의미한다.
### kubernetes.io/egress-bandwidth
{{< note >}}
이그레스 트래픽 조절 어노테이션은 실험적인 기능이다.
만약 트래픽 조절 기능을 활성화시키고 싶다면, CNI 설정 파일(기본적으로 `/etc/cni/net.d`)에 `bandwidth` 플러그인을 추가해야 하며,
실행파일이 CNI의 실행파일 경로(기본적으로 `/opt/cni/bin`) 아래에 포함되어있는지도 확인하자.
{{< /note >}}
예시: `kubernetes.io/egress-bandwidth: 10M`
적용 대상: 파드
이그레스 트래픽(파드로부터의)은 설정된 속도를 초과하는 패킷을 삭제하는 정책에 의해 처리되며,
파드에 거는 제한은 다른 파드의 대역폭에 영향을 주지 않는다.
파드의 대역폭을 제한하기 위해서는, 오브젝트를 정의하는 JSON 파일을 작성하고
`kubernetes.io/egress-bandwidth` 어노테이션을 통해 데이터 트래픽의 속도를 명시한다. 이그레스 속도를 명시할 때 사용되는 단위는
초당 비트([수량](/docs/reference/kubernetes-api/common-definitions/quantity/))이다.
예를 들어, `10M`은 초당 10 메가비트를 의미한다.
## beta.kubernetes.io/instance-type (사용 중단됨)
{{< note >}} v1.17부터, [`node.kubernetes.io/instance-type`](#nodekubernetesioinstance-type)으로 대체되었다. {{< /note >}}
@ -163,13 +288,23 @@ _SelectorSpreadPriority_ 는 최선 노력(best effort) 배치 방법이다. 클
예시: `volume.beta.kubernetes.io/storage-provisioner: k8s.io/minikube-hostpath`
적용 대상: PersistentVolumeClaim
적용 대상: 퍼시스턴트볼륨클레임(PersistentVolumeClaim)
이 어노테이션은 사용 중단되었다.
### volume.beta.kubernetes.io/mount-options (deprecated) {#mount-options}
예시 : `volume.beta.kubernetes.io/mount-options: "ro,soft"`
적용 대상: 퍼시스턴트볼륨
쿠버네티스 관리자는, 노드에 퍼시스턴트볼륨이 마운트될 경우 추가적인 [마운트 옵션](/ko/docs/concepts/storage/persistent-volumes/#mount-options)을 명세할 수 있다.
이 어노테이션은 사용 중단되었다.
## volume.kubernetes.io/storage-provisioner
적용 대상: PersistentVolumeClaim
적용 대상: 퍼시스턴트볼륨클레임
이 어노테이션은 동적 프로비저닝이 요구되는 PVC에 추가될 예정이다.
@ -199,6 +334,24 @@ kubelet이 Microsoft 윈도우에서 실행되고 있다면, 사용 중인 Windo
쿠버네티스가 여러 서비스를 구분하기 위해 이 레이블을 사용한다. 현재는 `ELB`(Elastic Load Balancer) 를 위해서만 사용되고 있다.
### kubernetes.io/service-account.name
예시: `kubernetes.io/service-account.name: "sa-name"`
Used on: 시크릿(Secret)
이 어노테이션에는 토큰(`kubernetes.io/service-account-token` 타입의 시크릿에 저장되는)이 나타내는
서비스어카운트의 {{< glossary_tooltip term_id="name" text="이름">}}을 기록한다.
### kubernetes.io/service-account.uid
예시: `kubernetes.io/service-account.uid: da68f9c6-9d26-11e7-b84e-002dc52800da`
적용 대상: 시크릿
이 어노테이션에는 토큰(`kubernetes.io/service-account-token` 타입의 시크릿에 저장되는)이 나타내는
서비스어카운트의 {{< glossary_tooltip term_id="uid" text="고유 ID">}}를 기록한다.
## endpointslice.kubernetes.io/managed-by {#endpointslicekubernetesiomanaged-by}
예시: `endpointslice.kubernetes.io/managed-by="controller"`
@ -257,7 +410,7 @@ v1.18부터, `spec.ingressClassName`으로 대체되었다.
적용 대상: 스토리지클래스(StorageClass)
하나의 스토리지클래스(StorageClass) 리소스에 이 어노테이션이 `"true"`로 설정된 경우,
클래스가 명시되지 않은 새로운 퍼시스턴트볼륨클레임(PersistentVolumeClaim) 리소스는 해당 기본 클래스로 할당될 것이다.
클래스가 명시되지 않은 새로운 퍼시스턴트볼륨클레임 리소스는 해당 기본 클래스로 할당될 것이다.
## alpha.kubernetes.io/provided-node-ip
@ -354,6 +507,21 @@ kubelet은 노드의 `imagefs.available`, `imagefs.inodesFree`, `nodefs.availabl
kubelet은 '`/proc/sys/kernel/pid_max`의 크기의 D-값'과 노드에서 쿠버네티스가 사용 중인 PID를 확인하여, `pid.available` 지표라고 불리는 '사용 가능한 PID 수'를 가져온다. 그 뒤, 관측한 지표를 kubelet에 설정된 문턱값(threshold)과 비교하여 노드 컨디션과 테인트의 추가/삭제 여부를 결정한다.
### node.kubernetes.io/out-of-service
예시: `node.kubernetes.io/out-of-service:NoExecute`
사용자는 노드에 테인트를 수동으로 추가함으로써 서비스 중이 아니라고 표시할 수 있다. 만약 `NodeOutOfServiceVolumeDetach`
[기능 게이트](/ko/docs/reference/command-line-tools-reference/feature-gates/)가 `kube-controller-manager`에 활성화되어 있으며
노드가 이 테인트로 인해 서비스 중이 아니라고 표시되어있을 경우, 노드에서 실행되던 매칭되는 톨러레이션이 없는 파드들은 강제로 삭제됨과 동시에 볼륨이 분리된다. 이는 서비스 중이 아닌 노드의 파드들이 다른 노드에서 빠르게 복구될 수 있도록 해준다.
{{< caution >}}
이 테인트를 언제 어떻게 사용할지에 대한 자세한 사항은
[논 그레이스풀 노드 셧다운](/ko/docs/concepts/architecture/nodes/#non-graceful-node-shutdown)
를 참조한다.
{{< /caution >}}
## node.cloudprovider.kubernetes.io/uninitialized
예시: `node.cloudprovider.kubernetes.io/uninitialized:NoSchedule`
@ -465,3 +633,94 @@ kubelet이 "외부" 클라우드 공급자에 의해 실행되었다면 노드
seccomp 프로파일을 파드 또는 파드 내 컨테이너에 적용하는 단계를 확인한다.
튜토리얼에서는 쿠버네티스에 seccomp를 설정하기 위해 사용할 수 있는 방법을 소개하며,
이는 파드의 `.spec` 내에 `securityContext` 를 설정함으로써 가능하다.
### snapshot.storage.kubernetes.io/allowVolumeModeChange
예시: `snapshot.storage.kubernetes.io/allowVolumeModeChange: "true"`
적용 대상: VolumeSnapshotContent
값은 `true` 혹은 `false`만을 받는다.
{{< glossary_tooltip text="퍼시스턴트볼륨클레임" term_id="persistent-volume-claim" >}}이
볼륨스냅샷(VolumeSnapshot)으로부터 생성될 경우,
사용자가 소스 볼륨의 모드를 수정할 수 있는지 여부를 결정한다.
자세한 사항은 [스냅샷의 볼륨 모드 변환하기](/docs/concepts/storage/volume-snapshots/#convert-volume-mode)
와 [쿠버네티스 CSI 개발자용 문서](https://kubernetes-csi.github.io/docs/)를 참조한다.
## Audit을 위한 어노테이션들
<!-- sorted by annotation -->
- [`authorization.k8s.io/decision`](/docs/reference/labels-annotations-taints/audit-annotations/#authorization-k8s-io-decision)
- [`authorization.k8s.io/reason`](/docs/reference/labels-annotations-taints/audit-annotations/#authorization-k8s-io-reason)
- [`insecure-sha1.invalid-cert.kubernetes.io/$hostname`](/docs/reference/labels-annotations-taints/audit-annotations/#insecure-sha1-invalid-cert-kubernetes-io-hostname)
- [`missing-san.invalid-cert.kubernetes.io/$hostname`](/docs/reference/labels-annotations-taints/audit-annotations/#missing-san-invalid-cert-kubernetes-io-hostname)
- [`pod-security.kubernetes.io/audit-violations`](/docs/reference/labels-annotations-taints/audit-annotations/#pod-security-kubernetes-io-audit-violations)
- [`pod-security.kubernetes.io/enforce-policy`](/docs/reference/labels-annotations-taints/audit-annotations/#pod-security-kubernetes-io-enforce-policy)
- [`pod-security.kubernetes.io/exempt`](/docs/reference/labels-annotations-taints/audit-annotations/#pod-security-kubernetes-io-exempt)
자세한 사항은 [Audit 어노테이션](/docs/reference/labels-annotations-taints/audit-annotations/) 페이지를 참고한다.
## kubeadm
### kubeadm.alpha.kubernetes.io/cri-socket
예시: `kubeadm.alpha.kubernetes.io/cri-socket: unix:///run/containerd/container.sock`
적용 대상: 노드
kubeadm `init`/`join`시 주어지는 CRI 소켓 정보를 유지하기 위해 사용하는 어노테이션.
kubeadm은 노드 오브젝트를 이 정보를 주석 처리한다. 이상적으로는 KubeletConfiguration의 항목이어야 하기 때문에,
어노테이션은 "alpha" 상태로 남아있다.
### kubeadm.kubernetes.io/etcd.advertise-client-urls
예시: `kubeadm.kubernetes.io/etcd.advertise-client-urls: https://172.17.0.18:2379`
적용 대상: 파드
etcd 클라이언트들이 접근할 수 있는 URL 목록을 추적하기 위해, 로컬에서 관리되는 etcd 파드에 배치되는 어노테이션.
주로 etcd 클러스터의 헬스 체크에 사용한다.
### kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint
예시: `kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: https//172.17.0.18:6443`
적용 대상: 파드
외부로 노출시킬 API 서버의 엔드포인트를 추적하기 위해,
로컬에서 관리되는 kube-apiserver 파드에 배치되는 어노테이션.
### kubeadm.kubernetes.io/component-config.hash
예시: `kubeadm.kubernetes.io/component-config.hash: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae`
적용 대상: 컨피그맵(ConfigMap)
컴포넌트 설정을 관리하는 컨피그맵에 배치되는 어노테이션.
사용자가 특정 컴포넌트에 대해서 kubeadm 기본값과 다른 설정값을 적용했는지 판단하기 위한 해시(SHA-256)를 가지고 있다.
### node-role.kubernetes.io/control-plane
적용 대상: 노드
kubeadm이 관리하는 컨트롤 플레인 노드에 적용되는 레이블.
### node-role.kubernetes.io/control-plane
예시: `node-role.kubernetes.io/control-plane:NoSchedule`
적용 대상: 노드
중요한 워크로드만 스케줄링할 수 있도록 컨트롤 플레인 노드에 적용시키는 테인트.
### node-role.kubernetes.io/master
예시: `node-role.kubernetes.io/master:NoSchedule`
적용 대상: 노드
중요한 워크로드만 스케줄링할 수 있도록 컨트롤 플레인 노드에 적용시키는 테인트.
{{< note >}} 버전 v1.20 부터, 이 테인트는 `node-role.kubernetes.io/control-plane`의 등장으로 더 이상 사용되지 않으며,
버전 v1.25에서 삭제될 예정이다.{{< /note >}}

View File

@ -39,7 +39,7 @@ JSON과 Protobuf 직렬화 스키마 모두 스키마 변경에 대해서
동일한 가이드라인을 따른다. 이후 설명에서는 이 형식 모두를 다룬다.
API 버전 규칙과 소프트웨어 버전 규칙은 간접적으로 연관된다.
[API와 릴리스 버전 부여에 관한 제안](https://git.k8s.io/community/contributors/design-proposals/release/versioning.md)에는
[API와 릴리스 버전 부여에 관한 제안](https://git.k8s.io/design-proposals-archive/release/versioning.md)에는
API 버전 규칙과 소프트웨어 버전 규칙 간의 관계가 기술되어 있다.
API 버전의 차이는 수준의 안정성과 지원의 차이를 나타낸다.
@ -83,8 +83,8 @@ API 버전의 차이는 수준의 안정성과 지원의 차이를 나타낸다.
## API 그룹
[API 그룹](https://git.k8s.io/community/contributors/design-proposals/api-machinery/api-group.md)은
쿠버네티스 API를 더 쉽게 확장하게 해준다.
[API 그룹](https://git.k8s.io/design-proposals-archive/api-machinery/api-group.md)은
쿠버네티스 API를 더 쉽게 확장할 수 있도록 해 준다.
API 그룹은 REST 경로와 직렬화된 오브젝트의 `apiVersion` 필드에
명시된다.
@ -123,5 +123,5 @@ API 그룹은 REST 경로와 직렬화된 오브젝트의 `apiVersion` 필드에
## {{% heading "whatsnext" %}}
- [API 규칙](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#api-conventions)에 대해 자세히 알아보기
- [애그리게이터(aggregator)](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/aggregated-api-servers.md)에
- [애그리게이터(aggregator)](https://git.k8s.io/design-proposals-archive/api-machinery/aggregated-api-servers.md)에
대한 디자인 문서 읽기

View File

@ -28,14 +28,17 @@ API 호출 또는 요청/응답 타입을 직접 구현할 필요는 없다.
[쿠버네티스 SIG API Machinery](https://github.com/kubernetes/community/tree/master/sig-api-machinery)에서 공식적으로 관리된다.
| 언어 | 클라이언트 라이브러리 | 예제 프로그램 |
|----------|----------------|-----------------|
| dotnet | [github.com/kubernetes-client/csharp](https://github.com/kubernetes-client/csharp) | [둘러보기](https://github.com/kubernetes-client/csharp/tree/master/examples/simple)
| Go | [github.com/kubernetes/client-go/](https://github.com/kubernetes/client-go/) | [둘러보기](https://github.com/kubernetes/client-go/tree/master/examples)
| Haskell | [github.com/kubernetes-client/haskell](https://github.com/kubernetes-client/haskell) | [둘러보기](https://github.com/kubernetes-client/haskell/tree/master/kubernetes-client/example)
| Java | [github.com/kubernetes-client/java](https://github.com/kubernetes-client/java/) | [둘러보기](https://github.com/kubernetes-client/java#installation)
| JavaScript | [github.com/kubernetes-client/javascript](https://github.com/kubernetes-client/javascript) | [둘러보기](https://github.com/kubernetes-client/javascript/tree/master/examples)
| Python | [github.com/kubernetes-client/python/](https://github.com/kubernetes-client/python/) | [둘러보기](https://github.com/kubernetes-client/python/tree/master/examples)
| 언어 | 클라이언트 라이브러리 | 예제 프로그램 |
|------------|----------------|-----------------|
| C | [github.com/kubernetes-client/c](https://github.com/kubernetes-client/c/) | [둘러보기](https://github.com/kubernetes-client/c/tree/master/examples)
| dotnet | [github.com/kubernetes-client/csharp](https://github.com/kubernetes-client/csharp) | [둘러보기](https://github.com/kubernetes-client/csharp/tree/master/examples/simple)
| Go | [github.com/kubernetes/client-go/](https://github.com/kubernetes/client-go/) | [둘러보기](https://github.com/kubernetes/client-go/tree/master/examples)
| Haskell | [github.com/kubernetes-client/haskell](https://github.com/kubernetes-client/haskell) | [둘러보기](https://github.com/kubernetes-client/haskell/tree/master/kubernetes-client/example)
| Java | [github.com/kubernetes-client/java](https://github.com/kubernetes-client/java/) | [둘러보기](https://github.com/kubernetes-client/java#installation)
| JavaScript | [github.com/kubernetes-client/javascript](https://github.com/kubernetes-client/javascript) | [둘러보기](https://github.com/kubernetes-client/javascript/tree/master/examples)
| Perl | [github.com/kubernetes-client/perl/](https://github.com/kubernetes-client/perl/) | [둘러보기](https://github.com/kubernetes-client/perl/tree/master/examples)
| Python | [github.com/kubernetes-client/python/](https://github.com/kubernetes-client/python/) | [둘러보기](https://github.com/kubernetes-client/python/tree/master/examples)
| Ruby | [github.com/kubernetes-client/ruby/](https://github.com/kubernetes-client/ruby/) | [둘러보기](https://github.com/kubernetes-client/ruby/tree/master/examples)
## 커뮤니티에 의해 관리되는 클라이언트 라이브러리