2장. 노드 [v1]
- 설명
- 노드는 Kubernetes의 작업자 노드입니다. 각 노드에는 캐시에 고유 식별자(예: etcd)가 있습니다.
- 유형
-
object
2.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| NodeSpec은 노드가 생성된 특성을 설명합니다. |
|
| NodeStatus는 노드의 현재 상태에 대한 정보입니다. |
2.1.1. .spec
- 설명
- NodeSpec은 노드가 생성된 특성을 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음 |
|
| 더 이상 사용되지 않습니다. 일부 kubelets가 이 필드를 설정하지는 않습니다. 1.13 이후의 필드 제거. https://issues.k8s.io/61966을 참조하십시오. |
|
| PodCIDR는 노드에 할당된 Pod IP 범위를 나타냅니다. |
|
| podCIDRs는 해당 노드의 Pod에서 사용하기 위해 노드에 할당된 IP 범위를 나타냅니다. 이 필드가 지정된 경우 0번째 항목이 podCIDR 필드와 일치해야 합니다. 각 IPv4 및 IPv6에 대해 최대 1개의 값을 포함할 수 있습니다. |
|
| 클라우드 공급자가 할당한 노드의 ID: <ProviderName>://<ProviderSpecificNodeID> |
|
| 지정된 경우 노드의 테인트입니다. |
|
| 이 테인트가 연결된 노드에는 테인트를 허용하지 않는 Pod에 "효과"가 있습니다. |
|
| 예약 불가는 새 Pod의 노드 스케줄링 가능성을 제어합니다. 기본적으로 노드는 예약할 수 있습니다. 자세한 내용은 https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration |
2.1.2. .spec.configSource
- 설명
- NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음 |
2.1.3. .spec.configSource.configMap
- 설명
- ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음
- 유형
-
object
- 필수 항목
-
네임스페이스
-
name
-
kubeletConfigKey
-
속성 | 유형 | 설명 |
---|---|---|
|
| KubeletConfigKey는 참조된 ConfigMap의 어떤 키가 KubeletConfiguration 구조에 해당하는지 선언합니다. 이 필드는 모든 경우에 필요합니다. |
|
| name은 참조된 ConfigMap의 metadata.name입니다. 이 필드는 모든 경우에 필요합니다. |
|
| namespace는 참조된 ConfigMap의 metadata.namespace입니다. 이 필드는 모든 경우에 필요합니다. |
|
| resourceVersion은 참조된 ConfigMap의 metadata.ResourceVersion입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
|
| UID는 참조된 ConfigMap의 metadata.UID입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
2.1.4. .spec.taints
- 설명
- 지정된 경우 노드의 테인트입니다.
- 유형
-
array
2.1.5. .spec.taints[]
- 설명
- 이 테인트가 연결된 노드에는 테인트를 허용하지 않는 Pod에 "효과"가 있습니다.
- 유형
-
object
- 필수 항목
-
key
-
effect
-
속성 | 유형 | 설명 |
---|---|---|
|
| 필수 항목입니다. 테인트를 허용하지 않는 pod에 테인트의 영향을 미칩니다. 유효한 영향은 NoSchedule, PreferNoSchedule 및 NoExecute입니다.
가능한 enum 값: - |
|
| 필수 항목입니다. 노드에 적용할 taint 키입니다. |
| TimeAdded는 테인트가 추가된 시간을 나타냅니다. NoExecute 테인트에만 작성됩니다. | |
|
| taint 키에 해당하는 taint 값입니다. |
2.1.6. .status
- 설명
- NodeStatus는 노드의 현재 상태에 대한 정보입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 노드에 연결할 수 있는 주소 목록입니다. 사용 가능한 경우 클라우드 공급자에서 쿼리합니다. 자세한 정보: https://kubernetes.io/docs/concepts/nodes/node/#addresses 참고: 이 필드는 병합할 수 있지만 병합 키는 충분히 고유하지 않으므로 병합 시 데이터 손상이 발생할 수 있습니다. 호출자는 대신 전체 교체 패치를 사용해야 합니다. 예를 들면 https://pr.k8s.io/79391 를 참조하십시오. |
|
| NodeAddress에는 노드 주소에 대한 정보가 포함되어 있습니다. |
| 예약에 사용할 수 있는 노드의 리소스를 나타냅니다. 기본값은 capacity입니다. | |
| capacity는 노드의 총 리소스를 나타냅니다. 자세한 내용은 https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity | |
|
| conditions는 현재 관찰된 노드 조건의 배열입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/nodes/node/#condition |
|
| NodeCondition에는 노드에 대한 상태 정보가 포함되어 있습니다. |
|
| NodeConfigStatus는 Node.Spec.ConfigSource에서 할당한 구성의 상태를 설명합니다. |
|
| NodeDaemonEndpoints는 노드에서 실행되는 데몬에 의해 열린 포트를 나열합니다. |
|
| 이 노드의 컨테이너 이미지 목록 |
|
| 컨테이너 이미지 설명 |
|
| NodeSystemInfo는 노드를 고유하게 식별하는 ids/uuids 세트입니다. |
|
| NodePhase는 노드의 최근 관찰된 라이프사이클 단계입니다. 자세한 정보: https://kubernetes.io/docs/concepts/nodes/node/#phase 필드는 채워지지 않으며 현재는 더 이상 사용되지 않습니다.
가능한 enum 값: - |
|
| 노드에 연결된 볼륨 목록입니다. |
|
| AttachedVolume은 노드에 연결된 볼륨을 설명합니다. |
|
| 노드에서 사용 중인 연결 가능한 볼륨 목록(마운트됨)입니다. |
2.1.7. .status.addresses
- 설명
- 노드에 연결할 수 있는 주소 목록입니다. 사용 가능한 경우 클라우드 공급자에서 쿼리합니다. 자세한 정보: https://kubernetes.io/docs/concepts/nodes/node/#addresses 참고: 이 필드는 병합할 수 있지만 병합 키는 충분히 고유하지 않으므로 병합 시 데이터 손상이 발생할 수 있습니다. 호출자는 대신 전체 교체 패치를 사용해야 합니다. 예를 들면 https://pr.k8s.io/79391 를 참조하십시오.
- 유형
-
array
2.1.8. .status.addresses[]
- 설명
- NodeAddress에는 노드 주소에 대한 정보가 포함되어 있습니다.
- 유형
-
object
- 필수 항목
-
type
-
address
-
속성 | 유형 | 설명 |
---|---|---|
|
| 노드 주소입니다. |
|
| 노드 주소 유형, 호스트 이름, ExternalIP 또는 InternalIP 중 하나 |
2.1.9. .status.conditions
- 설명
- conditions는 현재 관찰된 노드 조건의 배열입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/nodes/node/#condition
- 유형
-
array
2.1.10. .status.conditions[]
- 설명
- NodeCondition에는 노드에 대한 상태 정보가 포함되어 있습니다.
- 유형
-
object
- 필수 항목
-
type
-
status
-
속성 | 유형 | 설명 |
---|---|---|
| 지정된 조건에 대해 마지막으로 업데이트를 받은 경우입니다. | |
| 상태가 다른 상태에서 다른 상태로 전환되는 마지막 시간입니다. | |
|
| 마지막 전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. |
|
| 조건의 마지막 전환 이유 |
|
| 조건의 상태, True, False, 알 수 없음. |
|
| 노드 조건 유형입니다. |
2.1.11. .status.config
- 설명
- NodeConfigStatus는 Node.Spec.ConfigSource에서 할당한 구성의 상태를 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음 |
|
| NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음 |
|
| Spec.ConfigSource를 Active config로 조정하는 데 문제가 있습니다. 예를 들어 로컬 Assigned 레코드에 체크포인트 Spec.ConfigSource를 시도하여 Spec.ConfigSource와 연결된 페이로드를 검사하거나 할당한 구성을 로드하거나 검증하려고 시도하는 등의 오류가 발생할 수 있습니다. 구성을 동기화하는 동안 다른 지점에서 오류가 발생할 수 있습니다. 이전 오류(예: 다운로드 또는 체크포인트 오류)는 LastKnownGood로 롤백되지 않으며 Kubelet 재시도 시 해결할 수 있습니다. 이후 오류(예: Checked config를 로드하거나 검증)하면 LastKnownGood로 롤백됩니다. 후자의 경우 Spec.ConfigSource에서 할당된 구성을 수정하여 오류를 해결할 수 있습니다. Kubelet 로그에서 오류 메시지를 검색하여 디버깅에 대한 추가 정보를 찾을 수 있습니다. 오류는 사람이 읽을 수 있는 오류 상태에 대한 설명입니다. 머신은 Error가 비어 있는지 여부를 확인할 수 있지만 Kubelet 버전 간에 오류 텍스트의 안정성에 의존해서는 안 됩니다. |
|
| NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음 |
2.1.12. .status.config.active
- 설명
- NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음 |
2.1.13. .status.config.active.configMap
- 설명
- ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음
- 유형
-
object
- 필수 항목
-
네임스페이스
-
name
-
kubeletConfigKey
-
속성 | 유형 | 설명 |
---|---|---|
|
| KubeletConfigKey는 참조된 ConfigMap의 어떤 키가 KubeletConfiguration 구조에 해당하는지 선언합니다. 이 필드는 모든 경우에 필요합니다. |
|
| name은 참조된 ConfigMap의 metadata.name입니다. 이 필드는 모든 경우에 필요합니다. |
|
| namespace는 참조된 ConfigMap의 metadata.namespace입니다. 이 필드는 모든 경우에 필요합니다. |
|
| resourceVersion은 참조된 ConfigMap의 metadata.ResourceVersion입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
|
| UID는 참조된 ConfigMap의 metadata.UID입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
2.1.14. .status.config.assigned
- 설명
- NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음 |
2.1.15. .status.config.assigned.configMap
- 설명
- ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음
- 유형
-
object
- 필수 항목
-
네임스페이스
-
name
-
kubeletConfigKey
-
속성 | 유형 | 설명 |
---|---|---|
|
| KubeletConfigKey는 참조된 ConfigMap의 어떤 키가 KubeletConfiguration 구조에 해당하는지 선언합니다. 이 필드는 모든 경우에 필요합니다. |
|
| name은 참조된 ConfigMap의 metadata.name입니다. 이 필드는 모든 경우에 필요합니다. |
|
| namespace는 참조된 ConfigMap의 metadata.namespace입니다. 이 필드는 모든 경우에 필요합니다. |
|
| resourceVersion은 참조된 ConfigMap의 metadata.ResourceVersion입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
|
| UID는 참조된 ConfigMap의 metadata.UID입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
2.1.16. .status.config.lastKnownGood
- 설명
- NodeConfigSource는 노드 구성의 소스를 지정합니다. 정확히 하나의 하위 필드(Metadata 제외)는 음수가 아니어야 합니다. 이 API는 1.22 이후 더 이상 사용되지 않음
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음 |
2.1.17. .status.config.lastKnownGood.configMap
- 설명
- ConfigMapNodeConfigSource에는 ConfigMap을 노드의 구성 소스로 참조하는 정보가 포함되어 있습니다. 이 API는 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration이후 더 이상 사용되지 않음
- 유형
-
object
- 필수 항목
-
네임스페이스
-
name
-
kubeletConfigKey
-
속성 | 유형 | 설명 |
---|---|---|
|
| KubeletConfigKey는 참조된 ConfigMap의 어떤 키가 KubeletConfiguration 구조에 해당하는지 선언합니다. 이 필드는 모든 경우에 필요합니다. |
|
| name은 참조된 ConfigMap의 metadata.name입니다. 이 필드는 모든 경우에 필요합니다. |
|
| namespace는 참조된 ConfigMap의 metadata.namespace입니다. 이 필드는 모든 경우에 필요합니다. |
|
| resourceVersion은 참조된 ConfigMap의 metadata.ResourceVersion입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
|
| UID는 참조된 ConfigMap의 metadata.UID입니다. 이 필드는 Node.Spec에서 허용되지 않으며 Node.Status에서 필요합니다. |
2.1.18. .status.daemonEndpoints
- 설명
- NodeDaemonEndpoints는 노드에서 실행되는 데몬에 의해 열린 포트를 나열합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| DaemonEndpoint에는 단일 데몬 끝점에 대한 정보가 포함되어 있습니다. |
2.1.19. .status.daemonEndpoints.kubeletEndpoint
- 설명
- DaemonEndpoint에는 단일 데몬 끝점에 대한 정보가 포함되어 있습니다.
- 유형
-
object
- 필수 항목
-
포트
-
속성 | 유형 | 설명 |
---|---|---|
|
| 지정된 끝점의 포트 번호입니다. |
2.1.20. .status.images
- 설명
- 이 노드의 컨테이너 이미지 목록
- 유형
-
array
2.1.21. .status.images[]
- 설명
- 컨테이너 이미지 설명
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 이 이미지를 알고 있는 이름(예: ["kubernetes.example/hyperkube:v1.0.7", "cloud-vendor.example/cloud-vendor/hyperkube:v1.0.7"]] |
|
| 이미지의 크기(바이트)입니다. |
2.1.22. .status.nodeInfo
- 설명
- NodeSystemInfo는 노드를 고유하게 식별하는 ids/uuids 세트입니다.
- 유형
-
object
- 필수 항목
-
machineID
-
systemUUID
-
bootID
-
kernelVersion
-
osImage
-
containerRuntimeVersion
-
kubeletVersion
-
kubeProxyVersion
-
operatingSystem
-
아키텍처
-
속성 | 유형 | 설명 |
---|---|---|
|
| 노드에서 보고한 아키텍처 |
|
| 노드에서 보고한 부팅 ID입니다. |
|
| containerruntime Version 런타임 원격 API(예: containerd://1.4.2)를 통해 노드에서 보고한 버전입니다. |
|
| 'uname -r'에서 노드에서 보고한 커널 버전(예: 3.16.0-0.bpo.4-amd64). |
|
| 노드에서 보고한 kubeProxy 버전입니다. |
|
| 노드에서 보고한 kubelet 버전. |
|
| 노드에서 보고한 MachineID입니다. 클러스터의 고유 머신 ID의 경우 이 필드가 우선합니다. man(5) machine-id에서 자세히 알아보기: http://man7.org/linux/man-pages/man5/machine-id.5.html |
|
| 노드에서 보고한 운영 체제 |
|
| /etc/os-release에서 보고한 OS 이미지(예: Debian GNU/Linux 7(wheezy)). |
|
| 노드에서 보고한 SystemUUID. 고유한 머신 식별 머신 ID를 사용하는 것이 좋습니다. 이 필드는 Red Hat 호스트 https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid에 따라 다릅니다. |
2.1.23. .status.volumesAttached
- 설명
- 노드에 연결된 볼륨 목록입니다.
- 유형
-
array
2.1.24. .status.volumesAttached[]
- 설명
- AttachedVolume은 노드에 연결된 볼륨을 설명합니다.
- 유형
-
object
- 필수 항목
-
name
-
devicePath
-
속성 | 유형 | 설명 |
---|---|---|
|
| DevicePath는 볼륨을 사용할 수 있어야 하는 장치 경로를 나타냅니다. |
|
| 연결된 볼륨의 이름 |