Skip to content

Commit

Permalink
[ko] Update outdated files in dev-1.26-ko.1 (M70-M81)
Browse files Browse the repository at this point in the history
  • Loading branch information
mocha-123 committed Apr 2, 2023
1 parent 47c624c commit a9d321f
Show file tree
Hide file tree
Showing 12 changed files with 256 additions and 185 deletions.
9 changes: 3 additions & 6 deletions content/ko/docs/concepts/storage/dynamic-provisioning.md
Expand Up @@ -6,7 +6,7 @@
# - msau42
title: 동적 볼륨 프로비저닝
content_type: concept
weight: 40
weight: 50
---

<!-- overview -->
Expand All @@ -19,9 +19,6 @@ weight: 40
스토리지를 사전 프로비저닝 할 필요가 없다. 대신 사용자가
스토리지를 요청하면 자동으로 프로비저닝 한다.




<!-- body -->

## 배경
Expand Down Expand Up @@ -115,8 +112,8 @@ spec:
- API 서버에서 [`DefaultStorageClass` 어드미션 컨트롤러](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass)
사용하도록 설정한다.

관리자는 `storageclass.kubernetes.io/is-default-class` [어노테이션](/ko/docs/reference/labels-annotations-taints/#storageclass-kubernetes-io-is-default-class)
추가해서 특정 `StorageClass` 를 기본으로 표시할 수 있다.
관리자는 [`storageclass.kubernetes.io/is-default-class` 어노테이션](/ko/docs/reference/labels-annotations-taints/#storageclass-kubernetes-io-is-default-class)
추가하여 특정 `StorageClass` 를 기본으로 표시할 수 있다.
기본 `StorageClass` 가 클러스터에 존재하고 사용자가
`storageClassName` 를 지정하지 않은 `PersistentVolumeClaim`
작성하면, `DefaultStorageClass` 어드미션 컨트롤러가 디폴트
Expand Down
83 changes: 73 additions & 10 deletions content/ko/docs/concepts/storage/persistent-volumes.md
Expand Up @@ -297,18 +297,17 @@ spec:
* {{< glossary_tooltip text="csi" term_id="csi" >}}
* flexVolume (deprecated)
* gcePersistentDisk
* glusterfs
* rbd
* portworxVolume

스토리지 클래스의 `allowVolumeExpansion` 필드가 true로 설정된 경우에만 PVC를 확장할 수 있다.

``` yaml
```yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gluster-vol-default
provisioner: kubernetes.io/glusterfs
name: example-vol-default
provisioner: vendor-name.example/magicstorage
parameters:
resturl: "http://192.168.10.100:8080"
restuser: ""
Expand All @@ -333,7 +332,7 @@ PVC에 대해 더 큰 볼륨을 요청하려면 PVC 오브젝트를 수정하여

#### CSI 볼륨 확장

{{< feature-state for_k8s_version="v1.16" state="beta" >}}
{{< feature-state for_k8s_version="v1.24" state="stable" >}}

CSI 볼륨 확장 지원은 기본적으로 활성화되어 있지만 볼륨 확장을 지원하려면 특정 CSI 드라이버도 필요하다. 자세한 내용은 특정 CSI 드라이버 문서를 참고한다.

Expand Down Expand Up @@ -438,8 +437,6 @@ PVC 확장 실패의 사용자에 의한 복구는 쿠버네티스 1.23부터
(v1.23에서 **사용 중단**)
* [`gcePersistentDisk`](/ko/docs/concepts/storage/volumes/#gcepersistentdisk) - GCE Persistent Disk
(v1.17에서 **사용 중단**)
* [`glusterfs`](/ko/docs/concepts/storage/volumes/#glusterfs) - Glusterfs 볼륨
(v1.25에서 **사용 중단**)
* [`portworxVolume`](/ko/docs/concepts/storage/volumes/#portworxvolume) - Portworx 볼륨
(v1.25에서 **사용 중단**)
* [`vsphereVolume`](/ko/docs/concepts/storage/volumes/#vspherevolume) - vSphere VMDK 볼륨
Expand Down Expand Up @@ -616,7 +613,6 @@ PV는 `storageClassName` 속성을
* `cephfs`
* `cinder` (v1.18에서 **사용 중단됨**)
* `gcePersistentDisk`
* `glusterfs`
* `iscsi`
* `nfs`
* `rbd`
Expand Down Expand Up @@ -745,10 +741,9 @@ AND 조건으로 동작한다. 요청된 클래스와 요청된 레이블이 있

#### 기본 스토리지클래스 할당 소급 적용하기 {#retroactive-default-storageclass-assignment}

{{< feature-state for_k8s_version="v1.25" state="alpha" >}}
{{< feature-state for_k8s_version="v1.26" state="beta" >}}

새로운 PVC를 위한 `storageClassName`을 설정하지 않고 퍼시스턴트볼륨클레임을 생성할 수 있으며, 이는 클러스터에 기본 스토리지클래스가 존재하지 않을 때에도 가능하다. 이 경우, 새로운 PVC는 정의된 대로 생성되며, 해당 PVC의 `storageClassName`은 기본값이 사용 가능해질 때까지 미설정 상태로 남는다.
하지만, [`RetroactiveDefaultStorageClass` 기능 게이트](/ko/docs/reference/command-line-tools-reference/feature-gates/)를 활성화하면 쿠버네티스는 다르게 동작하여, 기존에 존재하는 PVC 중 `storageClassName`가 설정되지 않은 PVC는 새로운 기본 스토리지클래스를 사용하도록 갱신된다.

기본 스토리지클래스가 사용 가능해지면, 컨트롤플레인은 `storageClassName`가 없는 PVC를 찾는다. `storageClassName`의 값이 비어있거나 해당 키 자체가 없는 PVC라면, 컨트롤플레인은 해당 PVC의 `storageClassName`가 새로운 기본 스토리지클래스와 일치하도록 설정하여 갱신한다. `storageClassName``""`인 PVC가 있고, 기본 스토리지클래스를 설정한다면, 해당 PVC는 갱신되지 않는다.

Expand Down Expand Up @@ -953,6 +948,25 @@ kube-apiserver와 kube-controller-manager에 대해 `AnyVolumeDataSource`
어떠한 오브젝트에 대한 참조도 명시할 수 있다(단, PVC 외의 다른 코어 오브젝트는 제외).
기능 게이트가 활성화된 클러스터에서는 `dataSource`보다 `dataSourceRef`를 사용하는 것을 권장한다.

## 네임스페이스를 교차하는 데이터 소스
{{< feature-state for_k8s_version="v1.26" state="alpha" >}}

쿠버네티스는 네임스페이스를 교차하는 볼륨 데이터 소스를 지원한다.
네임스페이스를 교차하는 볼륨 데이터 소스를 사용하기 위해서는, kube-apiserver, kube-controller-manager에 대해서 `AnyVolumeDataSource``CrossNamespaceVolumeDataSource`
[기능 게이트](/ko/docs/reference/command-line-tools-reference/feature-gates/)
활성화해야 한다.
또한, csi-provisioner에 대한 `CrossNamespaceVolumeDataSource` 기능 게이트도 활성화해야 한다.

`CrossNamespaceVolumeDataSource` 기능 게이트를 활성화하면 dataSourceRef 필드에 네임스페이스를 명시할 수 있다.
{{< note >}}
볼륨 데이터 소스의 네임스페이스를 명시하면, 쿠버네티스는
참조를 받아들이기 전에 다른 네임스페이스의 레퍼런스그랜트를 확인한다.
레퍼런스그랜트는 `gateway.networking.k8s.io` 확장 API에 속한다.
자세한 정보는 게이트웨이 API 문서의 [레퍼런스그랜트](https://gateway-api.sigs.k8s.io/api-types/referencegrant/)를 참고하라.
즉 이 방법을 사용하려면 우선 게이트웨이 API에서 최소한 레퍼런스그랜트 이상을 사용하여
쿠버네티스 클러스터를 확장해야 한다는 것을 의미한다.
{{< /note >}}

## 데이터 소스 참조

`dataSourceRef` 필드는 `dataSource` 필드와 거의 동일하게 동작한다.
Expand All @@ -970,6 +984,11 @@ kube-apiserver와 kube-controller-manager에 대해 `AnyVolumeDataSource`
* `dataSourceRef` 필드는 여러 타입의 오브젝트를 포함할 수 있지만, `dataSource` 필드는
PVC와 VolumeSnapshot만 포함할 수 있다.

`CrossNamespaceVolumeDataSource` 기능이 활성화되어 있을 때, 추가적인 차이점이 존재한다:

* `dataSource` 필드는 로컬 오브젝트만을 허용하지만, `dataSourceRef` 필드는 모든 네임스페이스의 오브젝트를 허용한다.
* 네임스페이스가 명시되어 있을 때, `dataSource``dataSourceRef`는 동기화되지 않는다.

기능 게이트가 활성화된 클러스터에서는 `dataSourceRef`를 사용해야 하고, 그렇지 않은
클러스터에서는 `dataSource`를 사용해야 한다. 어떤 경우에서든 두 필드 모두를 확인해야
할 필요는 없다. 이렇게 약간의 차이만 있는 중복된 값은 이전 버전 호환성을 위해서만
Expand Down Expand Up @@ -1010,6 +1029,50 @@ PVC 생성 상태에 대한 피드백을 제공하기 위해, PVC에 대한 이
PVC를 위한 적절한 파퓰레이터가 설치되어 있다면,
볼륨 생성과 그 과정에서 발생하는 이슈에 대한 이벤트를 생성하는 것은 파퓰레이터 컨트롤러의 몫이다.

### 네임스페이스를 교차하는 볼륨 데이터 소스 사용하기
{{< feature-state for_k8s_version="v1.26" state="alpha" >}}

네임스페이스 소유자가 참조를 받아들일 수 있도록 레퍼런스그랜트를 생성한다.
`dataSourceRef` 필드를 사용하여 네임스페이스를 교차하는 볼륨 데이터 소스를 명시해서 파퓰레이트된 볼륨을 정의한다. 이 때, 원천 네임스페이스에 유효한 레퍼런스그랜트를 보유하고 있어야 한다:

```yaml
apiVersion: gateway.networking.k8s.io/v1beta1
kind: ReferenceGrant
metadata:
name: allow-ns1-pvc
namespace: default
spec:
from:
- group: ""
kind: PersistentVolumeClaim
namespace: ns1
to:
- group: snapshot.storage.k8s.io
kind: VolumeSnapshot
name: new-snapshot-demo
```

```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: foo-pvc
namespace: ns1
spec:
storageClassName: example
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
dataSourceRef:
apiGroup: snapshot.storage.k8s.io
kind: VolumeSnapshot
name: new-snapshot-demo
namespace: default
volumeMode: Filesystem
```

## 포터블 구성 작성

광범위한 클러스터에서 실행되고 퍼시스턴트 스토리지가 필요한
Expand Down
18 changes: 17 additions & 1 deletion content/ko/docs/concepts/storage/projected-volumes.md
Expand Up @@ -46,7 +46,6 @@ weight: 21 # just after persistent volumes
`mode`를 명시적으로 지정할 수 있다.

## 서비스어카운트토큰 프로젝티드 볼륨 {#serviceaccounttoken}
`TokenRequestProjection` 기능이 활성화 된 경우
파드의 지정된 경로에 [서비스어카운트토큰](/docs/reference/access-authn-authz/authentication/#service-account-tokens)
주입할 수 있다.

Expand Down Expand Up @@ -82,6 +81,23 @@ weight: 21 # just after persistent volumes
`RunAsUser`가 설정된 리눅스 파드에서는
프로젝티드파일이 컨테이너 사용자 소유권을 포함한 올바른 소유권 집합을 가진다.

파드의 모든 컨테이너의
[`PodSecurityContext`](/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context)
컨테이너
[`SecurityContext`](/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1)`runAsUser` 설정이 동일하다면,
kubelet은 `serviceAccountToken` 볼륨의 내용이 해당 사용자의 소유이며,
토큰 파일의 권한 모드는 `0600`로 설정됨을 보장한다.

{{< note >}}
생성된 후 파드에 추가되는 {{< glossary_tooltip text="임시 컨테이너" term_id="ephemeral-container" >}}는
파드 생성 시 설정된 볼륨 권한을
변경하지 *않는다*.

파드 내 그 외의 모든 컨테이너의 `runAsUser`가 동일하여
파드의 `serviceAccountToken` 볼륨 권한이 `0600`으로 설정되어 있다면, 임시
컨테이너는 토큰을 읽을 수 있도록 동일한 `runAsUser`를 사용해야 한다.
{{< /note >}}

### 윈도우

윈도우 파드에서 프로젝티드 볼륨과 파드 `SecurityContext``RunAsUsername`이 설정된 경우,
Expand Down
2 changes: 1 addition & 1 deletion content/ko/docs/concepts/storage/storage-capacity.md
Expand Up @@ -7,7 +7,7 @@
# - pohly
title: 스토리지 용량
content_type: concept
weight: 70
weight: 80
---

<!-- overview -->
Expand Down
85 changes: 1 addition & 84 deletions content/ko/docs/concepts/storage/storage-classes.md
Expand Up @@ -6,7 +6,7 @@
# - msau42
title: 스토리지 클래스
content_type: concept
weight: 30
weight: 40
---

<!-- overview -->
Expand Down Expand Up @@ -72,7 +72,6 @@ volumeBindingMode: Immediate
| FC | - | - |
| FlexVolume | - | - |
| GCEPersistentDisk | &#x2713; | [GCE PD](#gce-pd) |
| Glusterfs | &#x2713; | [Glusterfs](#glusterfs) |
| iSCSI | - | - |
| NFS | - | [NFS](#nfs) |
| RBD | &#x2713; | [Ceph RBD](#ceph-rbd) |
Expand Down Expand Up @@ -123,7 +122,6 @@ true로 설정된 경우 볼륨 확장을 지원한다.
gcePersistentDisk | 1.11
awsElasticBlockStore | 1.11
Cinder | 1.11
glusterfs | 1.11
rbd | 1.11
Azure File | 1.11
Azure Disk | 1.11
Expand Down Expand Up @@ -338,87 +336,6 @@ parameters:
[allowedTopologies](#allowed-topologies)로 대체되었다.
{{< /note >}}

### Glusterfs

```yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: slow
provisioner: kubernetes.io/glusterfs
parameters:
resturl: "http://127.0.0.1:8081"
clusterid: "630372ccdc720a92c681fb928f27b53f"
restauthenabled: "true"
restuser: "admin"
secretNamespace: "default"
secretName: "heketi-secret"
gidMin: "40000"
gidMax: "50000"
volumetype: "replicate:3"
```

* `resturl`: 필요에 따라 gluster 볼륨을 프로비전하는 Gluster REST 서비스/Heketi
서비스 url 이다. 일반적인 형식은 `IPaddress:Port` 이어야 하며 이는 GlusterFS
동적 프로비저너의 필수 파라미터이다. Heketi 서비스가 openshift/kubernetes
설정에서 라우팅이 가능한 서비스로 노출이 되는 경우 이것은 fqdn이 해석할 수 있는
Heketi 서비스 url인 `http://heketi-storage-project.cloudapps.mystorage.com`
유사한 형식을 가질 수 있다.
* `restauthenabled` : REST 서버에 대한 인증을 가능하게 하는 Gluster REST 서비스
인증 부울이다. 이 값이 `"true"` 이면, `restuser``restuserkey`
또는 `secretNamespace` + `secretName` 을 채워야 한다. 이 옵션은
사용 중단이며, `restuser`, `restuserkey`, `secretName` 또는
`secretNamespace` 중 하나를 지정하면 인증이 활성화된다.
* `restuser` : Gluster REST 서비스/Heketi 사용자로 Gluster Trusted Pool에서
볼륨을 생성할 수 있다.
* `restuserkey` : REST 서버에 대한 인증에 사용될 Gluster REST 서비스/Heketi
사용자의 암호이다. 이 파라미터는 `secretNamespace` + `secretName` 을 위해
사용 중단 되었다.
* `secretNamespace`, `secretName` : Gluster REST 서비스와 통신할 때 사용할
사용자 암호가 포함된 시크릿 인스턴스를 식별한다. 이 파라미터는
선택 사항으로 `secretNamespace``secretName` 을 모두 생략하면
빈 암호가 사용된다. 제공된 시크릿은 `"kubernetes.io/glusterfs"` 유형이어야
하며, 예를 들어 다음과 같이 생성한다.

```
kubectl create secret generic heketi-secret \
--type="kubernetes.io/glusterfs" --from-literal=key='opensesame' \
--namespace=default
```

시크릿의 예시는
[glusterfs-provisioning-secret.yaml](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/glusterfs/glusterfs-secret.yaml)에서 찾을 수 있다.

* `clusterid`: `630372ccdc720a92c681fb928f27b53f` 는 볼륨을 프로비저닝할
때 Heketi가 사용할 클러스터의 ID이다. 또한, 예시와 같이 클러스터
ID 목록이 될 수 있다. 예:
`"8452344e2becec931ece4e33c4674e4e,42982310de6c63381718ccfa6d8cf397"`. 이것은
선택적 파라미터이다.
* `gidMin`, `gidMax` : 스토리지클래스에 대한 GID 범위의 최소값과
최대값이다. 이 범위( gidMin-gidMax )의 고유한 값(GID)은 동적으로
프로비전된 볼륨에 사용된다. 이것은 선택적인 값이다. 지정하지 않으면,
볼륨은 각각 gidMin과 gidMax의 기본값인 2000-2147483647
사이의 값으로 프로비전된다.
* `volumetype` : 볼륨 유형과 파라미터는 이 선택적 값으로 구성할
수 있다. 볼륨 유형을 언급하지 않는 경우, 볼륨 유형을 결정하는 것은
프로비저너의 책임이다.

예를 들어:
* 레플리카 볼륨: `volumetype: replicate:3` 여기서 '3'은 레플리카의 수이다.
* Disperse/EC 볼륨: `volumetype: disperse:4:2` 여기서 '4'는 데이터이고 '2'는 중복 횟수이다.
* Distribute 볼륨: `volumetype: none`

사용 가능한 볼륨 유형과 관리 옵션에 대해서는
[관리 가이드](https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/)를 참조한다.

자세한 정보는
[Heketi 구성 방법](https://github.com/heketi/heketi/wiki/Setting-up-the-topology)을 참조한다.

퍼시스턴트 볼륨이 동적으로 프로비전되면 Gluster 플러그인은
`gluster-dynamic-<claimname>` 이라는 이름으로 엔드포인트와
헤드리스 서비스를 자동으로 생성한다. 퍼시스턴트 볼륨 클레임을
삭제하면 동적 엔드포인트와 서비스가 자동으로 삭제된다.

### NFS

```yaml
Expand Down
1 change: 1 addition & 0 deletions content/ko/docs/concepts/storage/storage-limits.md
Expand Up @@ -6,6 +6,7 @@
# - msau42
title: 노드 별 볼륨 한도
content_type: concept
weight: 90
---

<!-- overview -->
Expand Down
Expand Up @@ -6,6 +6,7 @@
# - xing-yang
title: 볼륨 헬스 모니터링
content_type: concept
weight: 100
---

<!-- overview -->
Expand Down
2 changes: 1 addition & 1 deletion content/ko/docs/concepts/storage/volume-pvc-datasource.md
Expand Up @@ -6,7 +6,7 @@
# - msau42
title: CSI 볼륨 복제하기
content_type: concept
weight: 60
weight: 70
---

<!-- overview -->
Expand Down
Expand Up @@ -8,7 +8,7 @@
# - yuxiangqian
title: 볼륨 스냅샷 클래스
content_type: concept
weight: 41 # just after volume snapshots
weight: 61 # just after volume snapshots
---

<!-- overview -->
Expand Down

0 comments on commit a9d321f

Please sign in to comment.