API 개요
OpenShift Container Platform API의 개요 콘텐츠
초록
1장. API 계층 이해 링크 복사링크가 클립보드에 복사되었습니다!
이 지침은 계층화된 OpenShift Container Platform 오퍼링에는 적용되지 않습니다.
베어 메탈 구성의 API 계층은 하드웨어와 직접 상호 작용하는 기능을 제외하고 가상화 구성에도 적용됩니다. 하드웨어와 직접 관련된 기능에는 하드웨어 벤더가 제공하는 것 이상으로 AOE(애플리케이션 운영 환경) 호환성 수준이 없습니다. 예를 들어 GPU(Graphics Processing Units) 기능을 사용하는 애플리케이션에는 GPU 벤더 드라이버에서 제공하는 AOE 호환성이 적용됩니다.
클라우드별 통합 지점용 클라우드 환경의 API 계층에는 호스팅 클라우드 벤더가 제공하는 API 또는 AOE 호환성 수준이 없습니다. 예를 들어 컴퓨팅, 수신 또는 스토리지의 동적 관리를 수행하는 API는 클라우드 플랫폼에서 노출하는 기본 API 기능에 따라 달라집니다. 클라우드 벤더가 사전 요구 사항 API를 수정하는 경우 Red Hat은 클라우드 인프라 벤더가 현재 제공하는 기능을 통해 API에 대한 지원을 유지하기 위해 상업적으로 합당한 노력을 기울입니다.
Red Hat은 애플리케이션 개발자가 사용하는 모든 동작이 지정되지 않은 구현별 동작 또는 특정 API 구현의 버그에 대한 종속성을 도입하지 않도록 공식 API 문서에 명시적으로 정의되어 있는지 확인하도록 요청합니다. 예를 들어, 애플리케이션이 문서화되지 않은 API를 사용하거나 정의되지 않은 동작을 사용하는 경우 Ingress 라우터의 새 릴리스가 이전 릴리스와 호환되지 않을 수 있습니다.
1.1. API 계층 링크 복사링크가 클립보드에 복사되었습니다!
상업적으로 지원되는 모든 API, 구성 요소 및 기능은 다음 지원 수준 중 하나로 연결됩니다.
API 계층 1
AOE(API 및 애플리케이션 운영 환경)는 주요 릴리스에서 안정적입니다. 주요 릴리스에서 더 이상 사용되지 않을 수 있지만 후속 주요 릴리스까지 제거되지 않습니다.
API 계층 2
API 및 AOE는 사용 중단 발표에서 최소 9 개월 또는 3 개의 마이너 릴리스에서 주요 릴리스에서 안정적입니다.
API 계층 3
이 수준은 Operator Hub를 통해 OpenShift Container Platform에 포함된 언어, 툴, 애플리케이션 및 선택적 Operator에 적용됩니다. 각 구성 요소는 API 및 AOE가 지원되는 동안 수명을 지정합니다. 최신 버전의 언어 런타임 특정 구성 요소는 가능한 한 API 및 마이너 버전에서 마이너 버전으로 호환되는 AOE를 시도합니다. 그러나 마이너 버전 호환성은 보장되지 않습니다.
Operator 및 피연산자라는 Operator Hub를 통해 지속적인 업데이트를 수신하는 구성 요소 및 개발자 툴은 API 계층 3으로 간주해야 합니다. 개발자는 신중하게 사용하고 각 마이너 릴리스에서 이러한 구성 요소가 어떻게 변경될 수 있는지 이해해야합니다. 사용자는 구성 요소가 문서화한 호환성 지침을 참조하는 것이 좋습니다.
API 계층 4
호환성이 제공되지 않습니다. API와 API는 언제든지 변경될 수 있습니다. 이러한 기능은 장기 지원이 필요한 애플리케이션에서 사용해서는 안 됩니다.
Operator는 작업을 수행하기 위해 내부적으로 CRD(사용자 정의 리소스 정의)를 사용하는 것이 일반적입니다. 이러한 오브젝트는 Operator 외부의 행위자에서 사용할 수 없으며 숨겨야 합니다. Operator 외부의 행위자가 CRD를 사용하지 않는 경우 Operator ClusterServiceVersion
(CSV)의 operators.operatorframework.io/internal-objects
주석을 해당 리소스가 내부용으로만 사용하고 CRD를 계층 4로 명시적으로 레이블을 지정할 수 있습니다.
1.2. API 계층에 API 그룹 매핑 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat에서 정의하는 각 API 계층에 대해 업스트림 커뮤니티가 향후 호환성을 유지하기 위해 최선을 다하는 특정 API 그룹에 대한 매핑 테이블을 제공합니다. 명시적 호환성 수준을 지정하지 않고 특별히 설명되지 않는 API 그룹은 기본적으로 계층 4가 할당된 v1alpha1
API를 제외하고 기본적으로 API 계층 3이 할당됩니다.
1.2.1. Kubernetes API 그룹 지원 링크 복사링크가 클립보드에 복사되었습니다!
접미사 *.k8s.io
로 종료되거나 접미사가 없는< name
> 양식이 있는 API 그룹은 Kubernetes 사용 중단 정책에 의해 관리되며, 별도로 지정하지 않는 한 API 버전 노출과 해당 지원 계층 간의 일반 매핑을 따릅니다.
API 버전 예 | API 계층 |
---|---|
| 계층 1 |
| 계층 2 |
| 계층 4 |
1.2.2. OpenShift API 그룹 지원 링크 복사링크가 클립보드에 복사되었습니다!
접미사 *.openshift.io
로 끝나는 API 그룹은 OpenShift Container Platform 사용 중단 정책에 의해 관리되며 달리 지정하지 않는 한 노출된 API 버전과 해당 호환성 수준 간의 일반 매핑을 따릅니다.
API 버전 예 | API 계층 |
---|---|
| 계층 1 |
| 계층 1, 일부 계층 1 더 이상 사용되지 않음 |
| 계층 1, 일부 계층 1 더 이상 사용되지 않음 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
| 계층 1 |
|
계층 1 |
| 계층 1 |
| 계층 2 |
1.2.3. API 그룹 모니터링 지원 링크 복사링크가 클립보드에 복사되었습니다!
접미사 monitoring.coreos.com
으로 끝나는 API 그룹에는 다음과 같은 매핑이 있습니다.
API 버전 예 | API 계층 |
---|---|
| 계층 1 |
| 계층 1 |
| 계층 1 |
1.2.4. Operator Lifecycle Manager API 그룹 지원 링크 복사링크가 클립보드에 복사되었습니다!
OLM(Operator Lifecycle Manager)은 접미사 operators.coreos.com
이 있는 API 그룹을 포함하는 API를 제공합니다. 이러한 API에는 다음과 같은 매핑이 있습니다.
API 버전 예 | API 계층 |
---|---|
| 계층 1 |
| 계층 1 |
| 계층 1 |
1.3. API 사용 중단 정책 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 여러 업스트림 커뮤니티에서 제공하는 여러 구성 요소로 구성됩니다. 구성 요소 세트, 관련 API 인터페이스 및 상관 관계 기능이 시간이 지남에 따라 진화할 것으로 예상되며 기능을 제거하기 위해 공식 사용 중단이 필요할 수 있습니다.
1.3.1. API의 일부 사용 중단 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 여러 구성 요소가 구조화된 API 세트를 통해 클러스터 컨트롤 플레인에서 관리하는 공유 상태와 상호 작용하는 분산 시스템입니다. Kubernetes 규칙에 따라 OpenShift Container Platform에서 제공하는 각 API는 그룹 식별자와 연결되며 각 API 그룹은 독립적으로 버전이 지정됩니다. 각 API 그룹은 Kubernetes, Metal3, Multus, Operator Framework, Open Cluster Management, OpenShift 자체 등을 포함한 별도의 업스트림 커뮤니티에서 관리됩니다.
각 업스트림 커뮤니티는 지정된 API 그룹 및 버전에 대한 고유한 사용 중단 정책을 정의할 수 있지만 Red Hat은 커뮤니티 특정 정책을 각 업스트림 커뮤니티의 통합 및 인식에 따라 이전에 정의된 호환성 수준 중 하나로 정규화하여 최종 사용자 사용 및 지원을 단순화합니다.
API의 사용 중단 정책 및 일정은 호환성 수준에 따라 다릅니다.
사용 중단 정책은 다음을 포함하여 API의 모든 요소를 다룹니다.
- API 오브젝트라고도 하는 REST 리소스
- REST 리소스 필드
- 버전별 한정자를 제외하고 REST 리소스에 대한 주석
- 열거된 또는 상수 값
각 그룹의 최신 API 버전 이외의 이전 API 버전은 다음과 같은 기간 동안 사용 중단 후 지원해야 합니다.
API 계층 | duration |
---|---|
계층 1 | 주요 릴리스 내에서 안정적입니다. 주요 릴리스에서 더 이상 사용되지 않을 수 있지만 후속 주요 릴리스까지 제거되지 않습니다. |
계층 2 | 사용 중단이 발표된 9개월 또는 3개월 중 더 긴 릴리스입니다. |
계층 3 | 구성 요소별 일정을 참조하십시오. |
계층 4 | 없음. 호환성은 보장되지 않습니다. |
다음 규칙은 모든 계층 1 API에 적용됩니다.
- API 요소는 그룹의 버전을 늘리는 경우에만 제거할 수 있습니다.
- API 오브젝트는 일부 버전에 존재하지 않는 전체 REST 리소스를 제외하고 정보 손실 없이 API 버전 간에 라운드트립을 수행할 수 있어야 합니다. 버전 간에 동일한 필드가 없는 경우 변환 중에 데이터가 주석 형태로 유지됩니다.
- 전체 API 오브젝트가 제거되는 경우를 제외하고 지정된 그룹의 API 버전은 최소한 안정적인 새 API 버전이 릴리스될 때까지 더 이상 사용할 수 없습니다.
1.3.2. CLI 요소 사용 중단 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트용 CLI 명령은 API와 동일한 방식으로 버전이 아닌 사용자용 구성 요소 시스템입니다. 사용자가 CLI와 상호 작용하는 두 가지 주요 방법은 CLI 요소라고 하는 명령 또는 플래그를 사용하는 것입니다.
별도로 명시하지 않거나 CLI가 더 낮은 계층 API에 종속되지 않는 한 모든 CLI 요소는 API 계층 1로 기본 설정됩니다.
element | API 계층 | |
---|---|---|
정식 출시 (GA) | 플래그 및 명령 | 계층 1 |
기술 프리뷰 | 플래그 및 명령 | 계층 3 |
개발자 프리뷰 | 플래그 및 명령 | 계층 4 |
1.3.3. 전체 구성 요소 사용 중단 링크 복사링크가 클립보드에 복사되었습니다!
전체 구성 요소를 사용 중단하기 위한 기간 및 일정은 해당 구성 요소가 노출하는 API의 가장 높은 API 계층과 연결된 기간에 직접 매핑됩니다. 예를 들어 계층 1 및 2가 있는 API를 노출하는 구성 요소는 계층 1 사용 중단 일정이 충족될 때까지 제거할 수 없습니다.
API 계층 | duration |
---|---|
계층 1 | 주요 릴리스 내에서 안정적입니다. 주요 릴리스에서 더 이상 사용되지 않을 수 있지만 후속 주요 릴리스까지 제거되지 않습니다. |
계층 2 | 사용 중단이 발표된 9개월 또는 3개월 중 더 긴 릴리스입니다. |
계층 3 | 구성 요소별 일정을 참조하십시오. |
계층 4 | 없음. 호환성은 보장되지 않습니다. |
2장. API 호환성 지침 이해 링크 복사링크가 클립보드에 복사되었습니다!
이 지침은 계층화된 OpenShift Container Platform 오퍼링에는 적용되지 않습니다.
2.1. API 호환성 지침 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 애플리케이션 개발자가 OpenShift Container Platform과의 호환성을 개선하기 위해 다음 원칙을 채택할 것을 권장합니다.
- 애플리케이션 요구 사항과 일치하는 지원 계층과 함께 API 및 구성 요소를 사용합니다.
- 가능한 경우 게시된 클라이언트 라이브러리를 사용하여 애플리케이션을 빌드합니다.
- 애플리케이션은 실행하도록 빌드된 환경의 새로운 환경에서 실행되는 경우에만 올바르게 실행되도록 보장됩니다. OpenShift Container Platform 4.14용으로 빌드된 애플리케이션은 OpenShift Container Platform 4.13에서 제대로 작동하지 않을 수 있습니다.
- 시스템 패키지 또는 기타 구성 요소에서 제공하는 구성 파일에 의존하는 애플리케이션을 설계하지 마십시오. 업스트림 커뮤니티에서 해당 파일을 보존하기 위해 명시적으로 커밋하지 않는 한 이러한 파일은 버전 간에 변경될 수 있습니다. 적절한 경우 향후 호환성을 유지하기 위해 해당 구성 파일에 대해 Red Hat에서 제공하는 인터페이스 추상화에 따라 달라집니다. 구성 파일의 직접 파일 시스템 수정이 권장되지 않으며 사용자는 듀얼 작성기 충돌을 피하기 위해 Operator 제공 API와 통합하는 것이 좋습니다.
-
지원되지 않는<FieldName
> 또는 제품 설명서에 명시적으로 언급되지 않은 주석으로 붙은 API 필드에 의존하지 마십시오. - 애플리케이션보다 호환성이 짧은 구성 요소에 의존하지 마십시오.
- etcd 서버에서 직접 스토리지 작업을 수행하지 마십시오. 모든 etcd 액세스는 api-server를 통해 또는 문서화된 백업 및 복원 절차를 통해 수행해야 합니다.
Red Hat은 애플리케이션 개발자가 RHEL(Red Hat Enterprise Linux)에서 정의한 호환성 지침을 따르는 것이 좋습니다. OpenShift Container Platform은 애플리케이션을 빌드하거나 플랫폼에서 애플리케이션을 호스팅할 때 다음 지침을 강력히 권장합니다.
- 특정 Linux 커널 또는 OpenShift Container Platform 버전에 의존하지 마십시오.
-
proc
,sys
,debug
파일 시스템 또는 기타 의사 파일 시스템에서 읽지 마십시오. -
ioctls
를 사용하여 하드웨어와 직접 상호 작용하지 마십시오. -
컨테이너 실행 환경을 제공하는 OpenShift Container Platform 호스트 에이전트와 충돌하지 않도록
cgroup
과의 직접 상호 작용을 방지합니다.
Red Hat은 릴리스 라이프사이클 동안 모든 마이너 릴리스 및 z-stream 릴리스에서 AOE(API 및 애플리케이션 운영 환경) 호환성을 유지하기 위해 상업적으로 합당한 노력을 기울이고 있습니다. 필요한 경우 Red Hat은 심각한 영향을 미치는 보안 또는 기타 중요한 문제를 해결하기 위해 이러한 호환성 목표에 예외를 둘 수 있습니다.
2.2. API 호환성 예외 링크 복사링크가 클립보드에 복사되었습니다!
다음은 OpenShift Container Platform의 호환성에 대한 예외입니다.
지원되는 Operator에서 RHEL CoreOS 파일 시스템 수정
현재 Machine Config Operator 또는 Node Tuning Operator와 같이 지원되는 Operator를 통해 표시되는 공용 인터페이스를 통해 이러한 수정이 발생하는 경우를 제외하고 호스트 운영 파일 시스템에 대한 수정이 마이너 릴리스에서 유지된다는 보장은 없습니다.
클라우드 또는 가상화 환경의 클러스터 인프라 수정
현재 제품에 노출된 공용 인터페이스를 통해 수정되거나 지원되는 구성으로 문서화된 경우를 제외하고 클러스터를 지원하는 클라우드 호스팅 환경을 수정하는 것은 보장되지 않습니다. 클러스터 인프라 공급자는 API를 통해 해당 권한을 제품에 위임하는 위치를 제외하고 클라우드 또는 가상화된 인프라를 보존해야 합니다.
업그레이드된 클러스터와 새 설치 간의 기능 기본값
현재 제품 마이너 릴리스의 새 설치는 이전 마이너 릴리스와 함께 설치되고 동등한 버전으로 업그레이드된 제품 버전과 동일한 기능 기본값을 갖습니다. 예를 들어 향후 버전의 제품은 이전 마이너 버전과 다른 기본값을 사용하여 클라우드 인프라를 프로비저닝할 수 있습니다. 또한 제품의 이전 버전에서 만든 것보다 향후 버전의 제품에서 다른 기본 보안 옵션을 사용할 수 있습니다. 이전 버전의 제품은 업그레이드를 전달하지만 이전 버전과의 호환성을 유지하기 위해 적절한 경우 기존 선택을 유지합니다.
접두사 "지원되지 않음" 또는 문서화되지 않은 주석이 있는 API 필드 사용
지원되지 않는 접두사가 있는 제품 노출 필드에서 API를 선택합니다
. 현재 이 필드의 사용이 릴리스 또는 릴리스 내에서 지원된다는 보장은 없습니다. 제품 지원은 특정 문제를 디버깅할 때 이 필드에 값을 지정하도록 요청할 수 있지만 그 사용은 해당 상호 작용 외부에서 지원되지 않습니다. 명시적으로 문서화되지 않은 오브젝트에 대한 주석을 사용하면 마이너 릴리스에서 지원이 보장되지 않습니다.
제품 설치 토폴로지당 API 가용성
OpenShift 배포는 지원되는 설치 토폴로지를 계속 개선할 것이며 한 설치 토폴로지의 모든 API가 다른 설치 토폴로지에 포함되지는 않습니다. 예를 들어 특정 토폴로지는 제품 설치 토폴로지와 충돌하거나 해당 토폴로지와 관련이 없는 경우 특정 API에 대한 읽기/쓰기 액세스를 제한할 수 있습니다. 지정된 토폴로지에 존재하는 API는 위에 정의된 호환성 계층에 따라 지원됩니다.
2.3. API 호환성 일반적인 용어 링크 복사링크가 클립보드에 복사되었습니다!
2.3.1. API(애플리케이션 프로그래밍 인터페이스) 링크 복사링크가 클립보드에 복사되었습니다!
API는 다른 소프트웨어와 상호 작용할 수 있는 소프트웨어 프로그램에 의해 구현되는 공용 인터페이스입니다. OpenShift Container Platform에서 API는 중앙 집중식 API 서버에서 제공되며 모든 시스템 상호 작용을 위한 허브로 사용됩니다.
2.3.2. 애플리케이션 운영 환경(AOE) 링크 복사링크가 클립보드에 복사되었습니다!
AOE는 최종 사용자 애플리케이션 프로그램을 실행하는 통합 환경입니다. AOE는 호스트 운영 체제(OS)에서 격리를 제공하는 컨테이너화된 환경입니다. 최소한 AOE를 사용하면 애플리케이션이 호스트 OS 라이브러리 및 바이너리와 분리된 방식으로 실행할 수 있지만 호스트의 다른 모든 컨테이너와 동일한 OS 커널을 계속 공유할 수 있습니다. AOE는 런타임에 적용되며 애플리케이션과 운영 환경 간의 인터페이스를 설명합니다. 플랫폼, 운영 체제 및 환경 간의 교차점과 운영 체제, 환경 간 교차점과 하향식 API, DNS, 리소스 회계, 장치 액세스, 플랫폼 워크로드 ID, 컨테이너 간 격리, 컨테이너 간 격리를 포함한 사용자 애플리케이션이 포함됩니다.
AOE에는 CNI(Container Network Interface) 플러그인 선택 또는 승인 후크와 같은 제품에 대한 확장과 같이 설치에 따라 다를 수 있는 구성 요소는 포함되지 않습니다. 컨테이너 환경 아래 수준에서 클러스터와 통합되는 구성 요소에는 버전 간 추가 변형이 발생할 수 있습니다.
2.3.3. 가상화된 환경에서의 호환성 링크 복사링크가 클립보드에 복사되었습니다!
가상 환경은 베어 메탈 환경에서 실행되는 권한이 없는 애플리케이션이 해당 가상 환경에서 수정되지 않은 상태로 실행되도록 베어 메탈 환경을 에뮬레이션합니다. 가상 환경에서는 물리적 리소스에 대한 추상화된 뷰를 단순화하여 일부 차이점이 있을 수 있습니다.
2.3.4. 클라우드 환경의 호환성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 클라우드 공급자의 특정 통합을 통해 호스팅 클라우드 환경과의 통합 지점을 제공하도록 선택할 수 있습니다. 이러한 통합 지점의 호환성은 네이티브 클라우드 벤더가 제공하는 보장과 OpenShift Container Platform 호환성 창과 교차점에 따라 다릅니다. OpenShift Container Platform이 기본 설치의 일부로 기본적으로 클라우드 환경과의 통합을 제공하는 경우 Red Hat은 안정적인 사용 중단 정책을 포함하는 향후 적절한 호환성을 제공하기 위해 안정적인 클라우드 API 엔드포인트를 대상으로 합니다. 클라우드 공급자와 OpenShift Container Platform 간의 통합 영역의 예로는 동적 볼륨 프로비저닝, 서비스 로드 밸런서 통합, Pod 워크로드 ID, 컴퓨팅의 동적 관리, 초기 설치의 일부로 프로비저닝된 인프라가 포함되지만 이에 국한되지는 않습니다.
2.3.5. 메이저, 마이너 및 z-stream 릴리스 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat 주요 릴리스는 제품 개발 단계에서 중요한 단계입니다. 마이너 릴리스는 주요 릴리스 범위 내에서 더 자주 표시되며 향후 애플리케이션 호환성에 영향을 미칠 수 있는 사용 중단 경계를 나타냅니다. z-stream 릴리스는 관련 마이너 릴리스에 대한 지속적인 수정 스트림을 제공하는 마이너 릴리스의 업데이트입니다. 이 정책이 예기치 않은 보안 영향에 응답하기 위해 명시적으로 재정의되는 경우를 제외하고 API 및 AOE 호환성은 z-stream 릴리스에서 손상되지 않습니다.
예를 들어 4.13.2 릴리스에는 다음과 같습니다.
- 4는 주요 릴리스 버전입니다.
- 13은 마이너 릴리스 버전입니다.
- 2는 z-stream 릴리스 버전입니다.
2.3.6. 연장된 사용자 지원 (EUS) 링크 복사링크가 클립보드에 복사되었습니다!
중요한 버그 수정을 위한 확장 지원 기간이 있는 OpenShift Container Platform 주요 릴리스의 마이너 릴리스입니다. 사용자는 EUS 릴리스 간에 마이너 버전을 점진적으로 채택하여 EUS 릴리스 간에 마이그레이션할 수 있습니다. 사용 중단 정책은 EUS 릴리스가 아닌 마이너 릴리스에서 정의됩니다. 결과적으로 EUS 사용자는 각 마이너 릴리스를 통해 순차적으로 업그레이드하면서 향후 EUS로 마이그레이션할 때 사용 중단에 응답해야 할 수 있습니다.
2.3.7. 개발자 프리뷰 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat에서 공식적으로 지원하지는 않지만 초기 단계 기술을 탐색하기 위한 메커니즘을 제공하기 위한 선택적 제품 기능입니다. 기본적으로 개발자 프리뷰 기능은 옵트인되며 언제든지 제거될 수 있습니다. 개발자 프리뷰 기능을 활성화하면 기능 범위에 따라 클러스터가 지원되지 않을 수 있습니다.
2.3.8. 기술 프리뷰 링크 복사링크가 클립보드에 복사되었습니다!
향후 제품 혁신에 조기에 액세스하여 기능을 테스트하고 개발 프로세스 중에 피드백을 제공할 수 있는 선택적 제품 기능입니다. 이 기능은 완전히 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 프로덕션 용도로는 사용되지 않습니다. 기술 프리뷰 기능을 사용하려면 명시적으로 옵트인해야 합니다. 기술 프리뷰 기능 지원 범위에 대해 자세히 알아보십시오.
3장. kubelet 로그 수준 상세 정보 편집 및 로그 수집 링크 복사링크가 클립보드에 복사되었습니다!
노드의 일부 문제를 해결하려면 추적할 문제에 따라 kubelet의 로그 수준 상세 수준을 설정합니다.
3.1. kubelet을 일회성 시나리오로 수정 링크 복사링크가 클립보드에 복사되었습니다!
machine-config(spec":{"paused":false}})
변경으로 인해 노드를 재부팅하지 않고 노드를 재부팅하지 않고 kubelet을 수정하려면 서비스에 영향을 주지 않고 kubelet을 수정할 수 있도록 하려면 다음 절차를 따르십시오.
프로세스
디버그 모드에서 노드에 연결합니다.
oc debug node/<node>
$ oc debug node/<node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chroot /host
$ chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 노드에 SSH를 연결하고 root가 될 수 있습니다.
액세스가 설정된 후 기본 로그 수준을 확인합니다.
systemctl cat kubelet
$ systemctl cat kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
/etc/systemd/system/kubelet.service.d/20-logging.conf
# /etc/systemd/system/kubelet.service.d/20-logging.conf [Service] Environment="KUBELET_LOG_LEVEL=2"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새로운
/etc/systemd/system/kubelet.service.d/30-logging.conf
파일에 필요한 새 상세 정보 표시를 정의합니다. 이 파일은/etc/systemd/system/kubelet.service.d/20-logging.conf
를 덮어씁니다. 이 예에서는 상세 정보 표시가2
에서8
로 변경됩니다.echo -e "[Service]\nEnvironment=\"KUBELET_LOG_LEVEL=8\"" > /etc/systemd/system/kubelet.service.d/30-logging.conf
$ echo -e "[Service]\nEnvironment=\"KUBELET_LOG_LEVEL=8\"" > /etc/systemd/system/kubelet.service.d/30-logging.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd를 다시 로드하고 서비스를 다시 시작합니다.
systemctl daemon-reload
$ systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart kubelet
$ systemctl restart kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로그를 수집한 다음 로그 수준 증가를 되돌립니다.
rm -f /etc/systemd/system/kubelet.service.d/30-logging.conf
$ rm -f /etc/systemd/system/kubelet.service.d/30-logging.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl daemon-reload
$ systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart kubelet
$ systemctl restart kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 영구 kubelet 로그 수준 구성 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
영구 kubelet 로그 수준 구성에 다음
MachineConfig
오브젝트를 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 일반적으로
0-4
를 디버그 수준 로그로 적용하고 추적 수준 로그로5-8
을 적용하는 것이 좋습니다.
3.3. 로그 세부 정보 표시 설명 링크 복사링크가 클립보드에 복사되었습니다!
로그 세부 정보 표시 | 설명 |
---|---|
| Operator에 항상 표시됩니다. |
| 상세 수준을 원하지 않는 경우 합리적인 기본 로그 수준입니다. |
| 서비스에 대한 유용한 안정적인 상태 정보 및 시스템 변경과 관련이 있을 수 있는 중요한 로그 메시지입니다. 이는 권장되는 기본 로그 수준입니다. |
| 변경 사항에 대한 확장된 정보 |
| 디버그 수준 상세 정보 표시. |
| 요청된 리소스를 표시합니다. |
| HTTP 요청 헤더를 표시합니다. |
| HTTP 요청 콘텐츠를 표시합니다. |
3.4. kubelet 로그 수집 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
kubelet의 로그 수준 세부 정보 표시가 올바르게 구성된 후 다음 명령을 실행하여 로그를 수집할 수 있습니다.
oc adm node-logs --role master -u kubelet
$ oc adm node-logs --role master -u kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm node-logs --role worker -u kubelet
$ oc adm node-logs --role worker -u kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 노드 내부에서 다음 명령을 실행합니다.
journalctl -b -f -u kubelet.service
$ journalctl -b -f -u kubelet.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 마스터 컨테이너 로그를 수집하려면 다음 명령을 실행합니다.
sudo tail -f /var/log/containers/*
$ sudo tail -f /var/log/containers/*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 노드의 로그를 직접 수집하려면 다음 명령을 실행합니다.
- for n in $(oc get node --no-headers | awk '{print $1}'); do oc adm node-logs $n | gzip > $n.log.gz; done
- for n in $(oc get node --no-headers | awk '{print $1}'); do oc adm node-logs $n | gzip > $n.log.gz; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. API 인덱스 링크 복사링크가 클립보드에 복사되었습니다!
API | API 그룹 |
---|---|
policy.networking.k8s.io/v1alpha1 | |
k8s.ovn.org/v1 | |
monitoring.openshift.io/v1 | |
monitoring.coreos.com/v1 | |
monitoring.coreos.com/v1beta1 | |
monitoring.openshift.io/v1 | |
apiserver.openshift.io/v1 | |
config.openshift.io/v1 | |
apiregistration.k8s.io/v1 | |
quota.openshift.io/v1 | |
config.openshift.io/v1 | |
operator.openshift.io/v1 | |
metal3.io/v1alpha1 | |
policy.networking.k8s.io/v1alpha1 | |
v1 | |
metal3.io/v1alpha1 | |
template.openshift.io/v1 | |
build.openshift.io/v1 | |
config.openshift.io/v1 | |
build.openshift.io/v1 | |
build.openshift.io/v1 | |
build.openshift.io/v1 | |
operators.coreos.com/v1alpha1 | |
certificates.k8s.io/v1 | |
operator.openshift.io/v1 | |
cloud.network.openshift.io/v1 | |
autoscaling.openshift.io/v1 | |
operator.openshift.io/v1 | |
config.openshift.io/v1 | |
quota.openshift.io/v1 | |
authorization.openshift.io/v1 | |
rbac.authorization.k8s.io/v1 | |
authorization.openshift.io/v1 | |
rbac.authorization.k8s.io/v1 | |
operators.coreos.com/v1alpha1 | |
config.openshift.io/v1 | |
v1 | |
imageregistry.operator.openshift.io/v1 | |
operator.openshift.io/v1 | |
samples.operator.openshift.io/v1 | |
v1 | |
config.openshift.io/v1 | |
operator.openshift.io/v1 | |
console.openshift.io/v1 | |
console.openshift.io/v1 | |
console.openshift.io/v1 | |
console.openshift.io/v1 | |
console.openshift.io/v1 | |
console.openshift.io/v1 | |
console.openshift.io/v1 | |
console.openshift.io/v1 | |
machineconfiguration.openshift.io/v1 | |
machineconfiguration.openshift.io/v1 | |
apps/v1 | |
machine.openshift.io/v1 | |
cloudcredential.openshift.io/v1 | |
batch/v1 | |
storage.k8s.io/v1 | |
storage.k8s.io/v1 | |
operator.openshift.io/v1 | |
storage.k8s.io/v1 | |
apiextensions.k8s.io/v1 | |
apps/v1 | |
metal3.io/v1alpha1 | |
apps/v1 | |
apps.openshift.io/v1 | |
apps.openshift.io/v1 | |
apps.openshift.io/v1 | |
apps.openshift.io/v1 | |
config.openshift.io/v1 | |
operator.openshift.io/v1 | |
ingress.operator.openshift.io/v1 | |
k8s.ovn.org/v1 | |
k8s.ovn.org/v1 | |
k8s.ovn.org/v1 | |
network.operator.openshift.io/v1 | |
k8s.ovn.org/v1 | |
v1 | |
discovery.k8s.io/v1 | |
operator.openshift.io/v1 | |
v1 | |
events.k8s.io/v1 | |
policy/v1 | |
config.openshift.io/v1 | |
metal3.io/v1alpha1 | |
flowcontrol.apiserver.k8s.io/v1 | |
user.openshift.io/v1 | |
metal3.io/v1alpha1 | |
helm.openshift.io/v1beta1 | |
autoscaling/v2 | |
metal3.io/v1alpha1 | |
metal3.io/v1alpha1 | |
user.openshift.io/v1 | |
config.openshift.io/v1 | |
image.openshift.io/v1 | |
config.openshift.io/v1 | |
operator.openshift.io/v1alpha1 | |
config.openshift.io/v1 | |
imageregistry.operator.openshift.io/v1 | |
image.openshift.io/v1 | |
image.openshift.io/v1 | |
image.openshift.io/v1 | |
image.openshift.io/v1 | |
image.openshift.io/v1 | |
image.openshift.io/v1 | |
image.openshift.io/v1 | |
image.openshift.io/v1 | |
config.openshift.io/v1 | |
config.openshift.io/v1 | |
config.openshift.io/v1 | |
networking.k8s.io/v1 | |
networking.k8s.io/v1 | |
operator.openshift.io/v1 | |
operator.openshift.io/v1 | |
operators.coreos.com/v1alpha1 | |
ipam.cluster.x-k8s.io/v1beta1 | |
ipam.cluster.x-k8s.io/v1beta1 | |
whereabouts.cni.cncf.io/v1alpha1 | |
batch/v1 | |
operator.openshift.io/v1 | |
operator.openshift.io/v1 | |
machineconfiguration.openshift.io/v1 | |
operator.openshift.io/v1 | |
operator.openshift.io/v1 | |
coordination.k8s.io/v1 | |
v1 | |
authorization.openshift.io/v1 | |
authorization.k8s.io/v1 | |
authorization.openshift.io/v1 | |
machine.openshift.io/v1beta1 | |
autoscaling.openshift.io/v1beta1 | |
machineconfiguration.openshift.io/v1 | |
machineconfiguration.openshift.io/v1 | |
operator.openshift.io/v1 | |
machine.openshift.io/v1beta1 | |
machine.openshift.io/v1beta1 | |
infrastructure.cluster.x-k8s.io/v1beta1 | |
infrastructure.cluster.x-k8s.io/v1beta1 | |
k8s.cni.cncf.io/v1beta1 | |
admissionregistration.k8s.io/v1 | |
v1 | |
config.openshift.io/v1 | |
operator.openshift.io/v1 | |
k8s.cni.cncf.io/v1 | |
networking.k8s.io/v1 | |
v1 | |
config.openshift.io/v1 | |
metrics.k8s.io/v1beta1 | |
config.openshift.io/v1 | |
oauth.openshift.io/v1 | |
oauth.openshift.io/v1 | |
oauth.openshift.io/v1 | |
oauth.openshift.io/v1 | |
operators.coreos.com/v1 | |
operator.openshift.io/v1 | |
operator.openshift.io/v1 | |
operators.coreos.com/v1 | |
operators.coreos.com/v2 | |
operators.coreos.com/v1 | |
config.openshift.io/v1 | |
network.operator.openshift.io/v1 | |
whereabouts.cni.cncf.io/v1alpha1 | |
packages.operators.coreos.com/v1 | |
performance.openshift.io/v2 | |
v1 | |
v1 | |
v1 | |
policy/v1 | |
metrics.k8s.io/v1beta1 | |
monitoring.coreos.com/v1 | |
controlplane.operator.openshift.io/v1alpha1 | |
security.openshift.io/v1 | |
security.openshift.io/v1 | |
security.openshift.io/v1 | |
v1 | |
metal3.io/v1alpha1 | |
scheduling.k8s.io/v1 | |
flowcontrol.apiserver.k8s.io/v1 | |
monitoring.coreos.com/v1 | |
tuned.openshift.io/v1 | |
config.openshift.io/v1 | |
project.openshift.io/v1 | |
helm.openshift.io/v1beta1 | |
project.openshift.io/v1 | |
monitoring.coreos.com/v1 | |
monitoring.coreos.com/v1 | |
metal3.io/v1alpha1 | |
config.openshift.io/v1 | |
security.openshift.io/v1 | |
apps/v1 | |
v1 | |
authorization.openshift.io/v1 | |
v1 | |
authorization.openshift.io/v1 | |
rbac.authorization.k8s.io/v1 | |
authorization.openshift.io/v1 | |
rbac.authorization.k8s.io/v1 | |
authorization.openshift.io/v1 | |
route.openshift.io/v1 | |
node.k8s.io/v1 | |
autoscaling/v1 | |
config.openshift.io/v1 | |
v1 | |
image.openshift.io/v1 | |
security.openshift.io/v1 | |
authorization.k8s.io/v1 | |
authentication.k8s.io/v1 | |
authorization.k8s.io/v1 | |
authorization.openshift.io/v1 | |
v1 | |
v1 | |
operator.openshift.io/v1 | |
monitoring.coreos.com/v1 | |
apps/v1 | |
operator.openshift.io/v1 | |
storage.k8s.io/v1 | |
migration.k8s.io/v1alpha1 | |
migration.k8s.io/v1alpha1 | |
authorization.k8s.io/v1 | |
authorization.openshift.io/v1 | |
authorization.openshift.io/v1 | |
operators.coreos.com/v1alpha1 | |
template.openshift.io/v1 | |
template.openshift.io/v1 | |
monitoring.coreos.com/v1 | |
authentication.k8s.io/v1 | |
authentication.k8s.io/v1 | |
tuned.openshift.io/v1 | |
user.openshift.io/v1 | |
user.openshift.io/v1 | |
oauth.openshift.io/v1 | |
admissionregistration.k8s.io/v1 | |
admissionregistration.k8s.io/v1 | |
admissionregistration.k8s.io/v1 | |
storage.k8s.io/v1 | |
snapshot.storage.k8s.io/v1 | |
snapshot.storage.k8s.io/v1 | |
snapshot.storage.k8s.io/v1 |
Legal Notice
링크 복사링크가 클립보드에 복사되었습니다!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.