Menu Close

1.6. 버그 수정

api-server-auth

  • 이전에는 openshift-service-ca 네임스페이스에 openshift.io/run-level로 레이블이 지정되었습니다. 1. 이로 인해 이 네임스페이스의 Pod가 추가 권한으로 실행됩니다. 이 레이블이 제거되었으며, 이제 이 네임스페이스의 Pod가 적절한 권한으로 실행됩니다. (BZ#1806915)
  • 이전에는 openshift-service-ca-operator 네임스페이스에 openshift.io/run-level로 레이블이 지정되었습니다. 1. 이로 인해 이 네임스페이스의 Pod가 추가 권한으로 실행됩니다. 새로 설치하는 경우 이 레이블은 제거되며, 이 네임스페이스의 Pod가 적절한 권한으로 실행됩니다. 업그레이드된 클러스터의 경우 이 레이블을 수동으로 제거하고 영향을 받는 Pod를 다시 시작할 수 있습니다. (BZ#1806917)
  • 이전 버전에서는 openshift-oauth-apiserver 네임스페이스의 OAuth API 서버 pod를 스크랩하는 구성이 누락되었으며 Prometheus에서 OAuth API 서버 pod의 지표를 쿼리할 수 없었습니다. 누락된 구성이 추가되어 Prometheus에서 OAuth API 서버 지표를 사용할 수 있습니다. (BZ#1887428)
  • 이전 버전에서는 Cluster Authentication Operator 코드에서 누락된 조건으로 인해 로그가 발생하지 않은 배포 업데이트에 대한 메세지가 쇄도했습니다. Operator 상태를 업데이트할 지 여부를 결정하는 논리가 업데이트되었으며 Cluster Authentication Operator 로그에서 발생하지 않은 배포 업데이트에 대한 메시지를 수신하지 않습니다. (BZ#1891758)
  • 이전 버전에서는 Cluster Authentication Operator가 cluster 라는 구성 리소스만 감시했습니다. 이로 인해 Operator는 이름이 default인 인그레스 설정 변경 사항을 무시했습니다. 이로 인해 Ingress가 사용자 정의 노드 선택기로 설정된 경우 스케줄링 가능한 작업자 노드가 없다고 잘못 가정했습니다. Cluster Authentication Operator는 이름에 관계없이 모든 리소스를 감시하고 Operator에서 Ingress 설정 변경 사항을 모니터링하고 작업자 노드 가용성을 조정합니다. (BZ#1893386)

베어 메탈 하드웨어 프로비저닝

  • 이전 버전에서는 일부 시스템에서 설치 프로그램이 준비 상태가 되기 전에 Ironic과 통신하여 문제가 발생했습니다. 이번 릴리스에서는 이러한 문제가 발생하지 않습니다. (BZ#1902653)
  • 이전 버전에서는 Dell 시스템에서 가상 미디어를 사용할 때 배포를 시작하기 전에 가상 미디어가 이미 연결된 경우 실패했습니다. 이제 이러한 오류가 발생하면 Ironic이 다시 시도합니다. (BZ#1910739)
  • 이전 버전에서는 마스터 노드는 프로비저닝 인터페이스의 IPv6 링크 로컬 주소를 손실하고 이로 인해 프로비저닝이 IPv6로 작동하지 않았습니다. 이 문제가 발생하지 않도록 addr_gen_mode에 해결방법이 추가되었습니다. (BZ#1909682)
  • 이전 버전에서는 cluster-baremetal-operator에서 잘못된 로깅 라이브러리를 사용했습니다. 이 문제로 인해 명령줄 인수가 다른 Operator와 일치하지 않고 일부 Kubernetes 라이브러리 로그가 기록되지 않았습니다. 이 문제는 로깅 라이브러리를 전환하여 해결되었습니다. (BZ#1906143)
  • 인터페이스에서 IPv6를 사용하는 경우 일정 시간 경과 후 Network Manager가 IPv6 링크 로컬 주소를 제거합니다. 이 문제로 인해 IPv6 링크 로컬 주소가 제거된 후 노드에서 PXE 부팅 오류가 발생했습니다. IPv6 addr_gen_mode 인터페이스를 전환하여 링크 로컬 주소를 다시 추가하는 해결 방법이 추가되었습니다. (BZ#1901040)
  • 이전 버전에서 Supermicro 노드는 디스크로 성공적으로 배포된 후 재부팅하면 PXE로 부팅되었습니다. 이 문제는 BootSourceOverrideTarget을 설정할 때 항상 BootSourceOverrideEnabled를 설정하여 해결되었습니다. 이제 Supermicro 노드는 배포 후 디스크로 영구적으로 부팅됩니다. (BZ#1918558)
  • baremetal IPI와 함께 제공되는 서비스 에이전트 이미지는 UEFI 보안 부팅이 활성화된 시스템에서 실행할 수 있습니다. 네트워크 부팅은 보안 부팅과 호환되지 않으므로 가상 미디어를 사용해야 합니다. (BZ#1893648)
  • baremetal IPI에서 노드 자동 검색이 더 이상 활성화되지않습니다. 이는 올바르게 처리되지 않아 베어 메탈 호스트 등록이 중복되었습니다. (BZ#1898517)
  • 이전 버전에서는 syslinux-nonlinux 패키지가 베어 메탈 프로비저닝 이미지에 포함되지 않았습니다. 그 결과 BIOS 부팅 모드를 사용하는 머신에 가상 미디어를 설치하지 못했습니다. 이제 패키지가 이미지에 포함됩니다. (BZ#1862608)
  • 이전에는 특정 Dell 펌웨어 버전에서 Redfish PowerState를 잘못 보고했습니다. Dell iDRAC 펌웨어를 버전 4.22.00.53으로 업데이트하면 문제가 해결됩니다. (BZ#1873305)
  • 이전에는 BIOS 구성 값을 가져와서 설정할 수 있는 인터페이스 목록에 Redfish가 없었습니다. 따라서 BIOS 설정에서 Redfish를 사용할 수 없었습니다. 이제 Redfish가 목록에 포함되어 BIOS 구성에서 사용할 수 있습니다. (BZ#1877105)
  • 이전에는 BIOS 구성 설정에 사용되는 Redfish 인터페이스가 제대로 구현되지 않았습니다. 따라서 Dell iDRACs에서 BIOS 구성 값을 설정할 수 없었습니다. 구현 오류가 수정되었습니다. 이제 Redfish 인터페이스에서 BIOS 구성을 설정할 수 있습니다.(BZ#1877924)
  • 이전 버전에서는 Supermicro가 IPMI를 통해 부팅 장치 설정을 처리하는 방식 차이로 인해 이미지가 디스크에 기록된 후 IPMI와 UEFI를 사용하는 Supermicro 노드가 실패했습니다. Supermicro 노드는 이제 적절한 IPMI 코드를 전달하여 디스크에서 부팅되도록 합니다. 결과적으로 Supermicro 노드는 배포 후 디스크에서 올바르게 부팅됩니다. (BZ#1885308)
  • 잘못된 루트 장치 팁이 제공되면 설치 관리자 프로비저닝 인프라에 베어 메탈 설치가 더 이상 자동으로 이미지 쓰기를 건너뛰지 않습니다 (BZ#1886327)
  • 이전 버전에서는 Supermicro 노드에 대한 불완전한 부팅 모드 정보로 인해 Redfish를 사용하여 배포가 실패했습니다. 이제 해당 부팅 모드 정보가 포함됩니다. 결과적으로 Redfish를 사용하여 Supermicro 노드를 배포할 수 있습니다. (BZ#1888072)
  • 베어 메탈 설치 관리자 프로비저닝 인프라에 내장된 Ironic API 서비스는 이제 8개의 작업자 대신 4개의 작업자를 사용합니다. 이로 인해 RAM 사용량이 줄어듭니다. (BZ#1894146)

빌드

  • 이전 버전에서는 Dockerfile 빌드에서 /etc/pki/ca-trust 디렉토리에 대한 권한을 변경하거나 그 안에 파일을 만들 수 없었습니다. 이 문제는 버전 4.6의 BZ#1826183을 수정하여 발생했으며, 이러한 수정에는 빌드 용 HTTPS 프록시 지원을 추가하고 항상 마운트된 /etc/pki/ca-trust를 사용하여 자체 CA를 포함한 빌드 및 시스템의 신뢰 저장소를 수정한 빌드가 런타임에 제대로 작동할 수 없게 되었습니다 현재 릴리스에서는 버그 1826183을 되돌려서 이 문제를 해결합니다. 이제 자체 CA가 포함된 빌더 이미지가 다시 작동합니다. (BZ#1891759)
  • 이전 버전에서는 OpenShift Container Platform 버전 4.5를 버전 4.6으로 업그레이드한 후 빌드에서 소스 코드를 가져오는 데 사용된 Git 설정에 프록시 정보를 추가하지 않았기 때문에 개인 저장소에서 git clone을 실행하는 데 실패했습니다. 이로 인해 클러스터가 글로벌 프록시를 사용하고 개인 Git 저장소에서 소스를 가져온 경우 소스 코드를 가져올 수 없었습니다. 이제 클러스터가 글로벌 프록시를 사용하는 경우 올바르게 설정되어 git clone 명령은 클러스터가 글로벌 프록시를 사용하는 경우 개인 Git 저장소에서 소스 코드를 가져올 수 있습니다. (BZ#1896446)
  • 이전 버전에서는 노드 풀 시크릿 기능이 작동하지 않았습니다. forcePull: true가 Source 및 Docker 전략 빌드에 설정된 경우 노드 풀 시크릿 (pull secret)이 사용되지 않았습니다. 이로 인해 클러스터 전체 풀 시크릿이 필요한 이미지를 가져오지 못했습니다. 이제 노드 풀 시크릿은 항상 사용자 제공 풀 시크릿과 병합됩니다. 결과적으로 forcePull: true가 설정된 경우 빌드에서 이미지를 가져올 수 있으며 소스 레지스트리에는 클러스터 전체 풀 시크릿이 필요합니다. (BZ#1883803)
  • 이전 버전에서는 Git SCP 형식의 SSH 위치를 수용하지 않는 Golang URL의 분석으로 인해 SCP 형식의 SSH 위치가 지정되어있는 경우 OpenShift Container Platform 빌드가 git clone에서 실패했습니다. 결과적으로 이러한 소스 URL이 지정되면 OpenShift Container Platform 빌드 및 S2I(Source-to-Image)가 실패했습니다. 이번 릴리스부터 빌드 및 S2I는 Golang URL의 분석을 무시하고 ssh:// 접두사를 제거하여 Git SCP 형식의 SSH 위치를 수용합니다. (BZ#1884270)
  • 이전 버전에서는 auth 키가 base64로 인코딩되지 않은 잘못된 빌드 풀 시크릿으로 인해 발생한 빌드 오류가 빌드 스택을 통해 전파되지 않았습니다. 결과적으로 이러한 오류의 근본 원인을 확인하기 어려웠습니다. 현재 릴리스에서는 이 문제가 해결되어 이러한 유형의 빌드 오류가 빌드 스택을 통해 전파됩니다. 이제 사용자는 잘못된 빌드 풀 시크릿 키의 근본 원인을 쉽게 확인할 수 있습니다. (BZ#1918879)

클라우드 컴퓨팅

  • 이전 버전에서는 머신 API에서 인증 정보 보안이 잘못된 경우 사용자에게 피드백을 제공하지 않아 클라우드 공급자 인증 정보에 문제가 있을 때 진단하기가 어려웠습니다. 이제 머신 세트를 만들거나 업데이트할 때 사용자가 인증 정보에 문제가 있는 경우(예: 인증 정보 시크릿이 존재하지 않거나 잘못된 형식에 있는 경우) 사용자에게 경고를 표시합니다. (BZ#1805639)
  • 이전 버전에서는 베어 메탈 작동기에서 머신 컨트롤러의 의도된 작동이 아닌 Machine 개체를 삭제하여 기본 호스트를 삭제했습니다. 이번 업데이트에서는 호스트 검색에 실패할 때 머신에서InsufficientResourcesMachineError 오류 원인을 설정하므로 호스트가 없는 머신을 먼저 축소할 수 있습니다. 호스트의 프로비저닝이 해제되면 머신이 Failed 단계로 이동합니다. 이제 머신 상태 점검에서 실패한 머신을 삭제하고 Machine 개체가 더 이상 자동으로 삭제되지 않습니다. (BZ#1868104)
  • 이전 버전에서는 머신이 Failed 상태가 되면 클라우드 공급자의 상태가 더 이상 조정되지 않았습니다. 따라서 머신 상태는 VM을 제거할 경우 제거 후 클라우드 VM 상태를 Running으로 보고했습니다. 이제 머신 상태가 Failed인 경우 클라우드 VM의 관찰 상태를 Unknown으로 더 정확하게 반영합니다. (BZ#1875598)
  • 이전 버전에서는 여러 머신 API 사용자 정의 리소스 정의에 해당 참조 문서에 대한 템플릿 스키마 설명에 손상된 링크가 포함되어 있었습니다. 링크가 올바른 업스트림 위치에 업데이트되어 더 이상 손상되지 않습니다. (BZ#1876469)
  • 이전 버전에서는 이전 버전의 CRD 정의가 사용 중이기 때문에 oc explain Provisioning 명령에 CRD(사용자 정의 리소스 정의) 설명을 반환하지 않았습니다. CRD 버전이 업데이트되어 Provisioning CRD에 대한 oc explain이 이제 예상되는 정보를 반환합니다. (BZ#1880787)
  • 이전 버전에서는 사용자가 최소 권장 크기보다 작은 디스크 크기를 가진 시스템을 생성하거나 업데이트할 경우 디스크 크기가 너무 작으면 시스템은 경고없이 부팅에 실패했습니다. 디스크 크기는 초기 이미지 크기보다 커야 합니다. 이제 디스크 크기가 작고 이로 인해 머신 또는 머신 세트가 시작되지 않을 수 있음을 알리는 경고 메세지가 표시됩니다. (BZ#1882723)
  • 이전 버전에서는 머신 상태가 조정 과정에서 유지되지 않았으므로 Machine 개체 instance-state 주석 및 providerStatus.instanceState에 다른 값이 표시되는 경우가 있었습니다. 이제 머신 상태가 조정된 시스템에서 복제된 instance-state 주석이 providerStatus.instanceState 값과 일치합니다. (BZ#1886848)
  • 이전 버전에서는 연결이 끊긴 환경에서 Microsoft Azure에서 실행되는 머신 세트가 MachineSet 리소스 개체에서 publicIP 옵션이 true로 설정된 경우 확장되지 않았습니다. 이제 머신이 실행 실패하지 않도록 하려면 이 잘못된 publicIP 구성으로 연결이 끊긴 환경에서 머신 세트를 생성할 수 없습니다. (BZ#1889620)
  • 이전 버전에서는 머신을 생성할 때 특정 오류만 발생하면 mapi_instance_create_failed 실패 메트릭이 업데이트되었습니다. 이제 머신 생성에서 발생하는 모든 오류가 mapi_instance_create_failed 메트릭에 적절하게 누적됩니다. (BZ#1890456)
  • 이전 버전에서는 클러스터 Autoscaler가 특정 상황에서 노드 확장 결정에 템플릿 노드를 사용했습니다. nodeAffinity 조건을 원하는 대로 확장할 수 없어 보류 중인 Pod를 예약할 수 없었습니다. 이번 업데이트를 통해 클러스터 Autoscaler가 노드 선호도 검사를 확장하고 통과할 수 있도록 템플릿 노드에 많은 레이블이 포함되어 있습니다. (BZ#1891551)
  • 이전 버전에서는 머신 세트의 기본 삭제 우선 순위 random에서 빌드 중인 노드 보다 Ready 상태의 노드를 우선 순위로 지정하지 않았습니다. 결과적으로 특히 많은 수의 머신을 스케일링할 때 머신 세트를 확장한 다음 즉시 축소하면 Ready 상태의 모든 노드가 삭제될 수 있었습니다. 이로 인해 클러스터를 사용할 수 없게 될 수도 있었습니다. 이제 더 낮은 우선 순위는 아직 Ready되지 않은 시스템에 할당됩니다. 따라서 대규모 머신 확장 후 축소가 실행되는 워크로드를 실행하는 머신을 삭제하기 전에 빌드 중인 머신이 삭제됩니다. (BZ#1903733)

Cluster Version Operator

  • 이전 버전에서는 설치 및 업그레이드 프로세스의 메시지는 완료되기 전이라도 현재 프로세스가 100% 완료되었다고 표시되었습니다. 이 잘못된 메시지는 반올림 오류로 인해 발생했습니다. 이제 백분율이 더 이상 반올림되지 않으며 메시지는 완료된 하위 프로세스 수와 정확한 백분율 값을 모두 표시합니다. (BZ#1768255)
  • 이전 버전에서는 CVO(Cluster Version Operator)가 채널 멤버십 및 에라타 URI와 같은 Cincinnati 메타데이터를 병합할 때 pullspecs을 정확한 available-updatecurrent-target 값과 비교했습니다. 결과적으로 유효한 대체 pullspecs을 사용한 미러링된 릴리스 이미지에서 설치하거나 업데이트한 경우 Cincinnati 메타데이터를 수신하지 못했습니다. 이제 CVO는 다이제스트별 릴리스를 비교하고 이미지를 호스팅하는 레지스트리에 관계없이 채널 멤버십과 같은 Cincinnati 메타데이터를 올바르게 연결합니다. (BZ#1879976)
  • 이전 버전에서는 metrics-serving goroutine의 경합 조건으로 인해 CVO가 종료될 때 중단되는 경우가 있었습니다. 결과적으로 관리 개체 조정 및 모니터링과 같은 CVO 동작이 작동하지 않고 업데이트 및 설치가 중단될 수 있었습니다. 이제 CVO는 몇 분 후에 시간 초과하여 정지된 메트릭의 goroutine을 제거하고 의도한 대로 종료합니다. (BZ#1891143)
  • 이전 버전에서는 일부 CVO 로그 오류 메시지가 올바르게 감지된 변경 유형의 변수를 렌더링하지 않았습니다. 이제 변수가 올바르게 렌더링되고 오류 메시지가 의도한 대로 표시됩니다. (BZ#1921277)

CNF 플랫폼 검증

  • 이전 버전에서는 플랫폼 검증을 위해 엔드 투 엔드 테스트를 수행하면 머신 구성에 설정 사양이 포함되지 않은 경우 SCTP 검증 단계에서 오류가 발생했습니다. 이 버그 수정을 통해 설정 사양을 찾을 수 없는 경우 SCTP 테스트를 건너뜁니다. (BZ#1889275)
  • 이전 버전에서는 Performance Addon Operator에서 두 개 이상의 NUMA 노드가 있는 호스트에서 hugepages 테스트를 실행하고 성능 프로필에서 노드에 분산된 Huge Page를 요청하면 테스트에 실패했습니다. 이번 버그 수정을 통해 hugepages 테스트에서 NUMA 노드의 Huge Page의 수를 결정하는 방법이 수정되었습니다. (BZ#1889633)

config-operator

  • 이전 버전에서는 OpenShift Container Platform 4.1 이후 업그레이드된 클러스터에서 업그레이드하는 동안 더 이상 사용되지 않는 status.platformStatus 필드가 설정되지 않았습니다. 이로 인해 업그레이드가 실패할 수 있었습니다. 이번 수정에서는 Cluster Config Operator가 필드를 설정하도록 변경되었습니다. 결과적으로 이 필드가 변경되지 않는 경우 업그레이드가 실패하지 않습니다. (BZ#1890038)

콘솔 Kubevirt 플러그인

  • 이전 버전에서는 스토리지 클래스는 DataVolume 소스에 대한 영구 볼륨 클레임에서 VM 디스크 목록에 전달하지 않았습니다. 이제 스토리지 클래스가 웹 콘솔의 VM 디스크 목록에 표시됩니다. (BZ#1853352)
  • 이전 버전에서는 가져온 SR-IOV 네트워크가 다른 네트워크 인터페이스 유형으로 설정될 수 있었습니다. 이번 수정으로 가져온 SR-IOV 네트워크는 이제 SR-IOV 네트워크 인터페이스 유형으로만 설정됩니다. (BZ#1862918)
  • 이전 버전에서는 VM 이름이 클러스터에서 재사용된 경우 이벤트 화면에 표시된 VM 이벤트가 올바르게 필터링되지 않았으며 두 VM에서 함께 혼합된 이벤트가 포함되었습니다. 이제 이벤트가 올바르게 필터링되고 이벤트 화면에 현재 VM에 속하는 이벤트만 표시됩니다. (BZ#1878701)
  • 이전에는 VM Import 마법사에서 생성한 V2VVMWareOvirtProvider 개체가 제대로 정리되지 않았습니다. 이제 V2VVMWareOvirtProvider 개체가 예상대로 제거됩니다. (BZ#1881347)
  • 이전에는 VM이 연결되어 있지 않은 VMI(가상 머신 인터페이스)에 사용 데이터가 표시되지 않았습니다. 이제 VMI에 사용 가능한 사용 데이터가 표시됩니다. (BZ#1884654)
  • 이전 버전에서는 PVC가 복제되면 해당 VM 상태가 pending으로 보고되었지만 추가 정보가 표시되지 않았습니다. 이제 PVC가 복제되면 진행률 표시줄과 Pod 또는 PVC에 대한 링크가 포함된 추가 정보와 함께 VM 상태가 importing으로 보고됩니다. (BZ#1885138)
  • 이전 버전에서는 VM 가져오기 상태에 잘못된 VM 가져오기 공급자가 표시되었습니다. 이제 VM 가져오기 상태에 올바른 VM 가져오기 공급자가 표시됩니다. (BZ#1886977)
  • 이전 버전에서는 기본 Pod 네트워크 인터페이스 유형이 잘못된 값으로 설정되었습니다. 이제 기본 Pod 네트워크 인터페이스 유형이 masquerade로 설정됩니다. (BZ#1887797)

콘솔 스토리지 플러그인

  • 이전 버전에서는 LSO(Local Storage Operator)가 설치되면 노드의 디스크가 표시되지 않았으며 해당 노드의 디스크 검색을 시작할 수 없었습니다. 이제 LSO가 설치되면 Disk 탭이 활성화되고 검색이 실행되지 않은 경우 Discover Disks 옵션을 사용할 수 있습니다. (BZ#1889724)
  • 이번 업데이트를 통해 Disk Mode 옵션 이름이 Volume Mode로 변경되었습니다. (BZ#1920367)

웹 콘솔 (개발자 화면)

  • 이전 버전에서는 사용자 권한이 부족하여 다른 프로젝트에서 이미지를 가져오기 위한 액세스 권한이 거부되었습니다. 이번 버그 수정을 통해 모든 사용자 인터페이스에서 역할 바인딩 확인을 제거하고 사용자의 명령줄 사용에 도움이 되는 oc 명령 경고가 표시됩니다. 이번 버그 수정을 통해 사용자는 다른 네임스페이스에서 이미지 생성이 차단되지 않으므로 다른 프로젝트에서 이미지를 배포할 수 있습니다. (BZ#1894020)
  • 콘솔은 사양에서 resourcesservice account 필드를 사용하는 KafkaSource 개체의 이전 버전을 사용하고 있었습니다. KafkaSource 개체의 최신 v1beta1 버전에서는 사용자가 v1beta1 버전으로 KafkaSource 개체를 만들 수 없기 때문에 이러한 필드가 제거되었습니다. 이 문제는 현재 해결되었으며 사용자는 v1beta1 버전으로 KafkaSource 개체를 생성할 수 있습니다. (BZ#1892653)
  • 이전에는 .git 접미사가 있는 Git 리포지토리에서 소스 코드를 사용하여 애플리케이션을 생성한 다음 소스 코드 편집 링크를 클릭하면 page not found 오류가 표시되었습니다. 이번 수정을 통해 리포지토리 URL에서 .git 접미사가 제거되어 SSH URL을 HTTPS URL로 변환할 수 있습니다. 생성된 링크가 올바른 리포지터리 페이지로 연결됩니다. (BZ#1896296)
  • 이전 버전에서는 기본 SinkBinding리소스가 Container SourceKameletBinding 리소스의 경우 생성되는 실제 소스와 함께 Topology 뷰에 표시되어 사용자를 혼란스럽게 했습니다. 이 문제가 해결되었습니다. 이벤트 소스에 생성된 실제 리소스만 Topology 뷰에 표시되고 기본 SinkBinding 리소스는 (생성되는 경우) 사이드 바에 표시됩니다. (BZ#1906685)
  • 이전 버전에서는 Eventing 사용자 지정 리소스를 생성하지 않고 Serverless Operator를 설치하면 채널 카드가 표시되었습니다. 카드를 클릭하면 혼동되는 경고 메시지가 표시되었습니다. 이 문제가 해결되었습니다. 적절한 경고 메시지가 있는 채널 카드가 이제 채널 사용자 정의 리소스 정의가 있는 경우에만 표시됩니다. (BZ#1909092)
  • 이전 버전에서는 웹 터미널 연결을 종료하면 해당 세션의 모든 터미널 출력이 사라졌습니다. 이 문제가 해결되었습니다. 세션이 종료된 후에도 터미널 출력이 유지됩니다. (BZ#1909067)
  • 기술 프리뷰 배지는 OpenShift Container Platform 4.6에 GA 릴리스가 있어도 Eventing 사용자 인터페이스에 표시되었습니다. 이제 기술 프리뷰 배지가 제거되고 변경 사항이 OpenShift Container Platform 4.6.9 버전으로 백포트되었습니다. (BZ#1894810)
  • 이전 버전에서는 배포를 콘솔 플로우를 사용하여 편집한 경우 배포 볼륨 마운트가 보존되지 않았습니다. 수정된 배포 YAML이 Pod 템플릿 사양의 볼륨 마운트를 덮어쓰거나 제거했습니다. 이 문제가 해결되었습니다. 콘솔을 편집하여 배포를 편집하는 경우에도 볼륨 마운트가 보존됩니다. (BZ#1867965)
  • 하나는 Knative 서비스에 가입하고 다른 하나는 In Memory Channel에 가입하는 여러 트리거의 경우 Topology 뷰에 Knative 리소스가 표시되지 않았습니다. 이 문제가 해결되어 Knative 데이터 모델이 적절한 데이터를 반환하고 Knative 리소스가 Topology 뷰에 표시됩니다. (BZ#1906683)
  • 이전 버전에서는 연결이 끊긴 환경에서 코드를 가져오는 동안 잘못된 설정으로 Developer Catalog에 Helm 차트가 표시되지 않았습니다. 이 문제는 프록시 환경 변수가 고려되도록 수정되어 Developer Catalog에 Helm 차트가 표시되도록 함으로써 해결되었습니다. (BZ#1918748)
  • Pipeline을 실행하는 동안 TaskRun 리소스의 로그 탭에 출력 명령 후에 undefined 문자열이 표시되었습니다. 이는 일부 내부 문자열 작업이 로그에 undefined을 출력하는 일부 에지 케이스로 인해 발생했습니다. 이 문제는 현재 해결되었으며 pipeline 로그 출력은 로그 스트림에서 빈 줄을 삭제하지 않고 더 이상 undefined 문자열을 출력하지 않습니다. (BZ#1915898)
  • 이전 버전에서는 Add 흐름의 Port 목록이 공개된 포트에 대해서만 옵션을 지정할 수 있었으며 사용자 정의 포트를 지정할 수 없었습니다. 이제 목록이 typeahead 선택 메뉴로 교체되었으며 애플리케이션을 생성할 때 사용자 지정 포트를 지정할 수 있습니다. (BZ#1881881)
  • 이전 버전에서는 조건부 작업이 실패하면 완료된 pipeline 실행에 실패한 각 조건 작업에 대해 영구적인 보류 상태의 작업이 표시되었습니다. 이 문제는 실패한 조건부 작업을 비활성화하고 건너뛰는 아이콘을 해당 작업에 추가하여 해결되었습니다. 이 경우 pipeline 실행 상태를 더 잘 파악할 수 있습니다. (BZ#1880389)
  • 이전 버전에서는 Pod의 확장 또는 축소 버튼을 단일 Pod 리소스에 사용할 수 있고 사용자가 스케일링 버튼을 누르면 페이지가 충돌했습니다. 이 문제는 단일 pod 리소스의 스케일 확장 또는 축소 버튼을 표시하지 않음으로 해결되었습니다. (BZ#1909678)
  • 이전 버전에서는 helm 릴리스를 인스턴스화하기 위해 차트를 다운로드할 때 차트 URL에 연결할 수 없었습니다. 이 문제는 Helm 차트 리포지토리에서 참조되는 원격 리포지토리의 index.yaml 파일을 가져온 후 그대로 사용되었기 때문입니다. 이러한 인덱스 파일 중 일부에는 상대 차트 URL이 포함되어 있습니다. 이 문제는 현재 차트 URL을 절대 URL로 변환하여 수정되었으며 이를 통해 차트 URL에 연결할 수 있습니다. (BZ#1912907)
  • Serverless 0.10에서 지원되는 최신 버전이 trigger, subscription, channel, IMC에 대해 업데이트되었습니다. 각각에 해당하는 정적 모델에는 API beta 버전이 표시되었습니다. 이제 이벤트 리소스의 API 버전이 v1로 업데이트되고 UI에서 지원되는 최신 버전이 표시됩니다. (BZ#1890104)
  • 이전에는 사용자가 Monitoring Dashboard 탭에서 워크로드 간에 전환할 때 (예: 특정 배포에서 All workloads 등과 같이) 대시보드에 흰색 캔버스가 표시되고 차트는 표시되지 않았습니다. 이 문제가 해결되어 사용자가 워크로드 간에 전환할 때 대시 보드에 차트가 표시됩니다. (BZ#1911129)
  • 이전에는 심각도 수준이 있는 모니터링 경고 (예:criticalwarning)를 info 수준 경고로 취급했습니다. 그 결과 이러한 경고에 대한 Topology 뷰의 워크로드에 Monitoring Alert 아이콘이 표시되지 않았습니다. 이 문제는 해결되어 critical과 같은 경고는 warning 수준 경고로 처리되고 Monitoring Alert 아이콘이 표시됩니다. (BZ#1925200)
  • 이전 버전에서는 Helm 설치의 YAML 보기에는 YAML 코드만 표시되었습니다. 이제 Schema 뷰어가 YAML 편집기에 추가되어 스키마 및 해당 설명을 표시합니다. (BZ#1886861)
  • 이전에는 외부 개인 이미지 컨테이너 레지스트리에 액세스하기 위해 Image Pull Secret이 추가된 후에도 모든 Pod가 실패하고 ErrImagePullImagePullBackOff 오류가 발생했습니다. 외부 이미지 레지스트리에 대한 권한이 없어 이미지 다운로드에 실패하고 클러스터가 제공된 시크릿없이 외부 URL에서 컨테이너 이미지를 직접 로드하려고 했기 때문입니다. 결과적으로 서비스 계정 또는 배포가 수동으로 업데이트될 때까지 배포가 지연되었습니다. 이제 문제가 해결되었으며 새로운 배포는 내부 개인 컨테이너 레지스트리에서 pod를 시작하고 서비스 계정 또는 배포를 위한 추가 변경 없이 외부 개인 컨테이너 레지스트리에서 컨테이너 이미지를 가져올 수 있습니다. (BZ#1924955)
  • 샘플 애플리케이션을 생성하는 동안 Developer 모드에서는 서로 종속된 여러 리소스를 생성하고 특정 순서로 완료해야 합니다. 이전 버전에서는 승인 플러그인에서 이러한 리소스 중 하나를 확인할 수 없어 Developer 모드에서 샘플 애플리케이션이 생성되지 않는 경우가 있었습니다. 이 문제가 해결되었습니다. 코드에서 필요한 순서에 리소스를 생성하므로 샘플 애플리케이션을 더 안정적으로 생성합니다. (BZ#1933665)
  • 이전에는 API 서버에서 리소스 할당량 리소스를 업데이트하는 동안 충돌로 인해 리소스를 생성하지 못하고 409 충돌 응답 상태 코드를 반환했습니다. 이 문제가 해결되었습니다. 이제 409 상태 코드가 표시되면 OpenShift 웹 콘솔에서 요청을 최대 3번 재시도합니다. 409 상태 코드를 계속 수신하는 경우 콘솔에 오류 메시지가 표시됩니다. (BZ#1928228)
  • 이전에는 사용자가 토폴로지 보기로 이동하면 openshift 네임스페이스에 템플릿이 없는 경우 오류가 발생했습니다. 이 오류가 발생하면 빈 페이지가 표시됩니다. 이 문제는 openshift 네임스페이스에 존재하지 않는 템플릿과 관련하여 에지 케이스를 처리하여 해결되었습니다. 이제 사용자가 토폴로지 보기로 이동하여 예상대로 로드할 수 있습니다. (BZ#1952293)
  • OpenShift Pipelines는 GA와 달리 웹 콘솔의 OpenShift Pipelines 워크플로에 기술 프리뷰 배지가 표시되었습니다. 이제 기술 프리뷰 배지가 제거되었습니다. (BZ#1945153)
  • 이전에는 프라이빗 리포지토리의 Git 가져오기 흐름에서 생성된 파이프라인을 실행하지 못했습니다. 이는 pipeline ServiceAccount 오브젝트가 프라이빗 Git 리포지토리에 대해 Git 가져오기 흐름에서 생성한 시크릿을 사용하지 않았기 때문에 발생했습니다. 이번 업데이트를 통해 pipeline ServiceAccount 오브젝트의 주석에 시크릿 이름을 추가하고 제공된 시크릿에 파이프라인별 주석을 추가할 수 있습니다. 결과적으로 프라이빗 Git 리포지토리의 파이프라인이 성공적으로 실행됩니다. (BZ#1970485)
  • 이전에는 Start Pipeline modal에서 빈 문자열을 유효한 항목으로 인식하지 못했으므로 값을 입력해야 했습니다. 이는 OpenShift Pipelines Operator가 빈 문자열을 유효한 매개변수 기본값으로 인식하는 경우에도 발생했습니다. 이번 업데이트를 통해 빈 문자열을 입력할 수 있는 옵션이 있습니다. (BZ#1966275)
  • 이전에는 메타데이터와 함께 Knative 서비스 사양에 주석을 전달했습니다. 그 결과 토폴로지에서 Knative 서비스의 관련 개정을 위해 데코레이터가 표시되었습니다. 현재 릴리스에서는 주석을 Knative 서비스 메타데이터에만 전달하여 이 문제를 해결합니다. 이제 데코레이터는 토폴로지의 Knative 서비스에만 표시되고 관련 수정은 표시되지 않습니다. (BZ#1954962)
  • 이전에는 개발자 관점에서 Knative 서비스를 개인 서비스로 생성할 수 없었습니다. 이 문제는 'networking.knative.dev/visibility': 'cluster-local' 레이블을 업데이트하여 해결되었습니다. (BZ#1970796)

DNS

  • 이전 버전에서는 일부 노드의 /etc/hosts 파일에 잘못된 항목이 포함되어 있기 때문에 클러스터에서 일시적인 DNS 확인 오류가 발생할 수 있었습니다. 이번 릴리스에서는 잘못된 항목이 있는 /etc/hosts 파일로 인해 DNS 확인이실패하지 않습니다. (BZ#1882485)

etcd

  • 이전 버전에서는 etcd 준비 상태 프로브에서 lsofgrep 명령을 사용했기 때문에 프로세스가 중단될 수 있었습니다. etcd 준비 상태 프로브는 이제 TCP 포트 프로브를 사용하므로 비용이 적게 들고 손상된 프로세스를 생성하지 않습니다. (BZ#1844727)
  • 이전 버전에서는 디스크의 인증서가 유효하지 않은 컨트롤 플레인 노드에서 IP 주소가 변경되었을 때 etcd가 피어와 연결하지 못하는 이유에 대한 etcd 오류 메시지가 불명확했습니다. 이제 컨트롤 플레인 노드의 IP 주소 변경이 감지되고 이벤트가 보고되며 EtcdCertSignerControllerDegraded로 표시됩니다. (BZ#1882176)
  • 이전 버전에서는 etcd 클러스터의 멤버가 3개 미만인 경우 정적 pod 개정이 발생하여 일시적인 쿼럼 손실이 발생할 수 있었습니다. 이제 모든 컨트롤 플레인 노드를 사용할 수 없는 경우 정적 pod 개정을 방지할 수 있고 이러한 일시적인 쿼럼 손실을 피할 수 있습니다. (BZ#1892288)
  • 이전 버전에서는 etcd 백업에 백업이 수행된 컨트롤 플레인 노드에 고유한 복구 YAML 파일이 포함되어 있었기 때문에 한 컨트롤 플레인 노드에서 가져온 백업을 다른 컨트롤 플레인 노드에서 복원할 수 없었습니다. 이제 복구 YAML 파일이 더 일반적이므로 모든 컨트롤 플레인 노드에서 etcd 백업을 복원할 수 있습니다. (BZ#1895509)
  • 이전에는 etcd 백업 스크립트에서 마지막 변경된 타임스탬프를 사용하여 최신 수정 사항을 확인했습니다. 이로 인해 잘못된 정적 Pod 리소스가 etcd 백업에 저장되었습니다. 이제 etcd 백업 스크립트에서 매니페스트 파일을 사용하여 최신 버전을 확인하고 올바른 정적 pod 리소스가 etcd 백업에 저장됩니다. (BZ#1898954)
  • 이전 버전에서는 IPv4 CIDR이 install-config 시스템 네트워크 CIDR 어레이의 첫 번째 요소가 아닌 경우 IPv6 듀얼 스택 모드를 사용할 때 부트스트랩 렌더링 로직이 사용 가능한 시스템 네트워크 CIDR을 감지하지 못했습니다. 구문 분석 논리가 모든 시스템 네트워크 CIDR을 통해 반목되도록 수정되어 이제 듀얼 스택 모드의 시스템 네트워크 CIDR 간에 IPv4 주소가 올바르게 로드됩니다. (BZ#1907872)
  • 이전 버전에서는 openshift-etcd 네임스페이스가 삭제된 경우 etcd-endpoints 구성 맵이 다시 생성되지 않았으며 클러스터가 복구되지 않았습니다. 이제 etcd-endpoints 구성 맵이 누락된 경우 클러스터를 복구할 수 있습니다. (BZ#1916853)

이미지 레지스트리

  • 마지막 Kubernetes 업데이트는 API에 시간 초과를 적용했습니다. 이 시간 초과로 34초 후에 대기 중인 요청이 삭제됩니다. 대규모 리포지토리, 특히 여러 태그가 있는 리포지토리를 가져올 때 시간 초과에 도달하여 이전 버전과 마찬가지로 가져오기를 성공적으로 수행할 수 없습니다. oc 클라이언트에 다른 시간 초과를 설정하는 플래그가 있지만 예제가 없으므로 클라이언트가 API 제한을 바이패스하는 방법을 이해하기가 어려웠습니다. oc 도움말에 플래그 사용 예가 표시되어 클라이언트가 이 옵션을 쉽게 검색할 수 있습니다. (BZ#1878022)
  • 이전 버전에서는 두 가지 버전의 동일한 로깅 패키지를 사용하여 Operator 로그가 부분적으로 손실되었습니다. 이번 수정에서는 로깅 패키지 버전이 동일하게 되었습니다. 즉, Operator에서 사용하는 업그레이드된 로깅 패키지는 client-go에서 사용하는 것과 일치합니다. 이제 로그가 손실되지 않습니다. (BZ#1883502)
  • 이전 버전에서는 프루너(pruner)에서 이미지 스트림을 사용하여 레지스트리 이름을 검색하려고 했지만 이미지 스트림이 없으면 프루너가 레지스트리 이름을 검색하지 못했습니다. 이번 수정 작업을 통해 Image Registry Operator에서 프루너에 레지스트리 이름을 제공합니다. 이제 프루너에서 레지스트리 이름을 감지하기 위해 이미지 스트림 존재 여부에 의존하지 않습니다. (BZ#1887010)
  • 이전 버전에서는 Operator Pod에 메모리 요청 기능이 없었으며 노드에서 메모리 부족이 발생하는 경우 다른 BestEffort 컨테이너 보다 먼저 메모리가 부족하여 Operator가 종료될 수 있었습니다. 이번 수정으로 메모리 요청 기능이 추가되었습니다. 이제 노드에 다른 BestEffort 컨테이너가 있는 경우 메모리가 부족하면 Operator가 종료되지 않습니다. (BZ#1888118)
  • 이전 버전에서는 프루너(pruner)에서 이미지 스트림을 사용하여 레지스트리 이름을 검색하려고 했지만 이미지 스트림이 없으면 프루너가 레지스트리 이름을 검색하지 못했습니다. 이번 수정을 통해 레지스트리가 설정된 경우 Image Registry Operator에서 레지스트리 이름을 지정하거나 레지스트리가 설치되지 않은 경우 레지스트리 프루너 기능을 비활성화합니다. (BZ#1888494)
  • 이전 버전에서는 Operator 상태를 정의할 때 사용할 수있는 Operand 배포 상태에 대한 분석이 없었습니다. 일부 시나리오에서는 Image Registry Operator가 두 가지 모순되는 정보를 자체적으로 제공했습니다. 사용자는 사용 불가능(not Available)하며 동시에 성능 저하가 없음 (not Degraded)을 통보했습니다. 이 두 가지 상태는 배포에서 이미지 레지스트리를 가져오고 실행하려고 하는 것을 중지한 후에도 계속 제공되고 있었습니다. 이 시나리오에서는 Operator가 Degraded 플래그를 설정해야 합니다. 이미지 레지스트리 배포를 고려하여 애플리케이션을 실행하려고 할 때 Operand 배포가 진행 기한에 도달하면 Operator가 자체적으로 Degraded 로 설정합니다. 이제 배포에 실패하고 진행 기한에 도달한 후 Operator가 자체적으로 Degraded 로 설정합니다. Operator 배포가 진행 중인 동안 Operator는 여전히 Progressing으로 보고합니다. (BZ#1889921)
  • 이전 버전에서는 명시적인 명령이 제공되었기 때문에 Image Registry Operator에서 해당 엔트리 포인트를 사용하지 않았습니다. 따라서 Operator에서 클러스터 전체 trusted-ca를 사용하지 않았으며 사용자 정의 trusted-ca 없이 작동하지 않는 스토리지 공급자에 연결할 수 없었습니다. 이 수정을 통해 Pod 사양에서 명시적인 명령이 제거되었습니다. 이제 trusted-ca를 적용하는 컨테이너에서 이미지 엔트리 포인트를 사용합니다. (BZ#1892799)
  • 이전 버전에서는 프루너의 기본 로그 수준이 2였습니다. 오류가 발생했을 때 프루너가 스택 추적을 덤프했습니다. 이번 수정으로 기본 로그 수준이 1 로 변경되었습니다. 이제 스택 추적 없이 오류 메시지가 출력됩니다. (BZ#1894677)
  • 이전 버전에서는 configs.imageregistry.operator.openshift.io 상태 필드가 Operator 동기화 중에 업데이트되지 않았습니다. 이로 인해 상태 필드에 최신 적용된 swift 구성이 표시되지 않았습니다. 이번 수정을 통해 동기화 프로세스는 configs.imageregistry.operator.openshift.io 상태를 사양 값으로 업데이트합니다. 사양 및 상태 필드는 적용된 정을 나타내는 상태 필드와 동기화합니다. BZ#1907202)
  • 이전 버전에서는 HTTP/2 프로토콜에 대한 재시도 부족으로 인해 재시도 가능한 오류가 발생했으며, 이로 인해 미러링에 오류 메시지가 표시되고 미러 작업이 취소되었습니다. 이번 수정으로 오류 메시지가 HTTP/2 프로토콜 관련 오류에 해당할 때 재시도가 추가되었습니다. 이러한 오류가 발생할 경우 여러 번 시도 후 미러 작업이 취소됩니다. (BZ#1907421)
  • 이전 버전에서는 node-ca 데몬 세트의 명시적 사용자 및 그룹 ID가 존재하지 않아 node-ca Pod에서 사용 중인 사용자 및 그룹의 해석이 혼동되었습니다. 이번 수정을 통해 runAsUserrunAsGroup 구성으로 설정된 node-ca 데몬 세트를 명시적으로 제공합니다. 이제 node-ca DaemonSet YAML 파일을 검사할 때 사용자와 그룹에 대한 정의가 명확하게 제공됩니다. (BZ#1914407)

ImageStreams

  • 이전 버전에는 사용 중인 이미지 목록을 수집할 때 StatefulSet, JobCronjob 개체에서 사용한 이미지를 고려하지 않았습니다. 그 결과 잘못된 이미지가 정리될 수 있었습니다. 이제 이미지 목록이 생성될 때 이미지 프루너에서 이러한 개체에서 사용하는 이미지를 고려합니다. 이러한 개체에서 사용하는 이미지는 더 이상 정리되지 않습니다. (BZ#1880068)
  • 이전에는 새로 생성된 이미지 스트림을 publicDockerImageRepository 값으로 장식되지 않았습니다. 감시자는 새 개체의 publicDockerImageRepository 값을 수신하지 않았습니다. 이제 이미지 스트림이 올바른 값으로 장식됩니다. 결과적으로 감시자는 publicDockerImageRepository 값이 있는 이미지 스트림을 가져옵니다. (BZ#1912590)

Insights Operator

  • 이전 버전에서는 오류가 잘못 처리되었기 때문에 Operator가 모니터링한 파일이 변경된 경우 Operator가 프로세스를 모호한 방법으로 종료했습니다. Operator에 대한 오류 처리가 향상되었습니다. 이제 Operator가 계속 실행되고 모니터링된 파일이 변경될 때 종료 프로세스 신호가 더 이상 전송되지 않습니다. (BZ#1884221)
  • 이전에는 Operator에서 보고서를 보관하는 동안 리소스의 네임스페이스를 사용하지 않았습니다. 그 결과 다른 네임스페이스에 동일한 이름이 있는 리소스를 덮어씁니다. 이제 Operator에서 데이터를 저장하는 동안 네임스페이스와 함께 보고서 경로를 사용합니다. 결과적으로 각 네임스페이스에 대해 모든 보고서가 수집됩니다. (BZ#1886462)

설치 프로그램

  • 이전 버전에서는 virtual-media를 사용할 때 작업 간에 노드를 재부팅했기 때문에 fast-track 모드가 예상대로 작동하지 않았습니다. 이제 이 문제가 해결되었습니다. (BZ#1893546)
  • 이전 버전에는 듀얼 스택 배포를 사용하는 경우 작업자 노드 호스트 이름이 배포 전에 검사한 이름과 일치하지 않아 노드에 수동 승인이 필요했습니다. 이제 이 문제가 해결되었습니다. (BZ#1895909)
  • 컨트롤 플레인과 배포 중인 호스트 간에 최대 1 시간까지 작은 클럭 스큐가 있는 경우에도 베어 메탈 프로비저닝은 실패하지 않습니다. (BZ#1906448)
  • vCenter 호스트 이름에 대문자가 포함된 경우 VMware vSphere의 OpenShift Container Platform 설치 프로그램은 클러스터가 완료될 때까지 오랜 시간을 기다린 후 결국 실패했습니다. 이제 설치 프로그램에서 설치 프로세스 초기에 vCenter 호스트 이름에 대문자가 포함되어 있지 않아 대기 시간이 길어지는 것을 방지합니다. (BZ#1874248)
  • 이전 버전에서는 OpenShift Container Platform 설치 프로그램의 내부 Terraform 백엔드에서 AWS(Amazon Web Services)와 같은 Terraform 코어에서 Terraform 공급자로의 대규모 입력을 지원하지 않았습니다. bootstrap.ign 파일이 AWS 공급자에 문자열로 전달되면 입력 제한이 초과되어 부트스트랩 Ignition S3 버킷을 생성할 때 설치 프로그램이 실패할 수 있었습니다. 이번 버그 수정을 통해 Terraform 백엔드는 bootstrap.ign을 디스크의 경로로 전달하도록 변경되어 AWS 공급자가 입력 크기 제한을 우회하여 대용량 파일을 읽을 수 있습니다. 이제 설치 프로그램은 입력 제한보다 큰 부트스트랩 Ignition 파일을 생성하는 Calico 설치를 실행할 때 설치 프로그램이 제대로 실행됩니다. (BZ#1877116)
  • 이전 버전에서는 RHOSP(Red Hat OpenStack Platform)의 사전 설치 프로그램 검증이 플레이버 메타데이터에서 수행되었습니다. 이로 인해 baremetal로 감지된 플레이버에 설치되지 않도록 할 수 있으므로 설치를 완료하는 데 필요한 용량을 마련할 수 있습니다. 이는 일반적으로 RHOSP 관리자가 베어 메탈 플레이버에서 적절한 메타데이터를 설정하지 않기 때문입니다. 이제 잘못된 오류가 보고되지 않도록 baremetal로 감지된 플레이버에서 검증을 건너뜁니다. (BZ#1878900)
  • 이전에는 설치 프로그램에서 GCP 및 Azure에 설치된 클러스터의 Manual 인증 정보 모드를 허용하지 않았습니다. 이로 인해 수동 인증 정보를 사용하여 클러스터를 GCP 또는 Azure에 설치할 수 없었습니다. 이제 설치 프로그램에서 GCP 및 Azure에 제공된 수동 인증 정보를 확인할 수 있습니다. (BZ#1884691)
  • 이전 버전에서는 Azure에 설치된 클러스터를 제거하기 전에 설치 프로그램에서 리소스 그룹이 존재하는지 확인할 수 없었습니다. 이로 인해 설치 프로그램에 오류가 발생하고 이는 지속적으로 반복되었습니다. 이제 설치 프로그램에서 클러스터를 제거하기 전에 리소스 그룹이 존재하는지 확인하여 클러스터를 성공적으로 삭제할 수 있습니다. (BZ#1888378)
  • 이전 버전에서는 설치 프로그램에서 공유 리소스가 있는 클러스터를 생성할 때 AWS 계정에 UnTagResources 권한이 있는지 확인하지 않았습니다. 이로 인해 클러스터를 삭제할 때 설치 프로그램에서 기존 네트워크에 추가된 태그를 삭제할 수 있는 권한이 없었습니다. 이 버그 수정을 통해 공유 네트워크 리소스로 클러스터를 생성할 때 UnTagResources에 대한 권한 검사를 추가하여 설치 프로세스를 완료하기 전에 계정에 적절한 권한이 있는지 확인합니다. (BZ#1888464)
  • openshift-install destroy cluster 명령이 제대로 작동하려면 처음 작성한 설치 프로그램이 클러스터 개체를 제거해야 합니다. 경우에 따라서는 호스팅 영역 개체가 이미 제거되어 설치 프로그램이 중단되기도 합니다. 이제 설치 프로그램에서 개체가 이미 제거된 경우 개체 제거를 생략하고 클러스터를 성공적으로 삭제할 수 있습니다. (BZ#1890228)
  • 이전 버전에서는 RHOSP(Red Hat OpenStack Platform)의 컨트롤 플레인 포트에 추가 사용자 정의 보안 그룹이 지정되지 않았습니다. 이로 인해 추가 사용자 정의 보안 그룹 규칙이 컨트롤 플레인 노드에 제대로 적용되지 않았습니다. 이제 추가 사용자 정의 보안 그룹이 컨트롤 플레인 포트에 할당되어 보안 그룹 규칙을 컨트롤 플레인 노드에 올바르게 적용할 수 있습니다. (BZ#1899853)
  • 이전 버전에서는 다른 보안 그룹을 소스로하는 기본 AWS 보안 그룹의 규칙으로 인해 설치 프로그램에서 클러스터를 제거할 때 다른 보안 그룹을 삭제할 수 없었습니다. 이로 인해 클러스터 제거 프로세스가 완료되지 않고 AWS 리소스가 남아 있게 되었습니다. 이제 기본 보안 그룹의 규칙이 삭제되어 다른 보안 그룹의 삭제 차단이 해제됩니다. 그러면 모든 AWS 리소스가 클러스터에서 삭제될 수 있습니다. (BZ#1903277)
  • RHOSP(Red Hat OpenStack Platform) 검증에서 누락된 가드가 빈 서브넷 ID가 있는 서브넷 목록을 검색하고 RHOSP 이외의 클라우드에서 예기치 않은 값을 반환할 수 있었습니다. 예기치 않은 오류 코드가 검증에 실패하고 OpenShift Container Platform이 RHOSP 이외의 클라우드에 설치되지 않았습니다. 이 버그 수정을 통해 빈 서브넷 ID에 대해 누락된 가드가 추가되어 올바른 검증이 가능하게 되었습니다. (BZ#1906517)
  • 이전에는 VMware vSphere의 사용자 프로비저닝 인프라 설치에 대한 참조 로드 밸런서가 간단한 TCP 검사를 위해 구성되었으며 상태 검사에서는 api 서버의 상태를 고려하지 않았습니다. 이 구성으로 인해 API 서버가 재시작될 때마다 API 요청이 실패하는 경우가 있었습니다. 이제 상태 검사에서 /readyz 엔드포인트에 대한 API 서버 상태를 확인하고 참조 API 로드 밸런서에서 API 서버가 다시 시작되는 동안 요청을 정상적으로 처리합니다. (BZ#1836017)
  • 이전에는 설치 프로그램을 사용하는 동안 CTRL+C를 누르면 프로그램이 항상 중단되지 않았으며 예상대로 종료되지는 않았습니다. 이제 설치 프로그램을 사용하는 동안 CTRL+C를 누르면 프로그램은 항상 중단되고 종료됩니다. BZ#1855351)
  • 이전 버전에서는 서비스 사용자가 만료된 경우와 같이 잘못된 인증 정보를 사용하여 Azure에서 클러스터를 삭제 시도하고 디버그 로그를 표시하지 않은 경우, 클러스터가 삭제되지 않은 경우 클러스터가 삭제되는 것으로 표시되었습니다. 클러스터를 삭제하지 않고 로컬에 저장된 클러스터 메타데이터가 삭제되어 openshift-install destroy cluster 명령을 다시 실행해도 클러스터를 삭제할 수 없었습니다. 이제 잘못된 Azure 인증 정보를 사용하는 경우 클러스터를 삭제하려고 하면 설치 프로그램이 오류와 함께 종료되고 인증 정보를 업데이트한 후 다시 시도할 수 있습니다. (BZ#1866925)
  • 이전 버전에서는 설치 프로그램 프로비저닝 인프라 베어 메탈 설치 방법의 install-config.yaml 파일에서 clusterProvisioningIP 이름 대신 provisioningHostIP 이름을 잘못 사용했기 때문에 문서와 YAML 파일에 사용되는 실제 필드 이름 사이에 차이가 발생했습니다. 이제 provisioningHostIP 필드가 더 이상 사용되지 않으므로 clusterProvisioningIP가 우선적으로 사용되어 필드 이름 사이에 차이가 없습니다. (BZ#1868748)
  • 이전에는 설치 프로그램에서 Ignition 구성 파일에서 만료된 인증서를 확인하지 않았습니다. 만료된 인증서로 인해 설명없이 설치에 실패했습니다. 이제 설치 프로그램에서 만료된 인증서를 확인하고 인증서가 만료된 경우 경고를 출력합니다. (BZ#1870728)

kube-apiserver

  • 이전 버전에서는 v1beta1에서 preserveUnknownFields필드가 true로 설정되었으며 oc explain에서 CRD 필드를 설명하지 않은 경우 오류가 발생하지 않았습니다. 검증 조건이 추가되어 preserveUnknownFields 필드가 false 로 설정되지 않은 v1beta CRD의 상태가 spec.preserveUnknownFields 오류가 표시됩니다. 잘못된 값: true: must must be false. (BZ#1848358)
  • 이전 버전에서는 IBM Cloud 클러스터의 OpenShift Container Platform에서 LocalStorageCapacityIsolation 기능 게이트가 기본적으로 비활성화되었습니다. 비활성화되어 있는 경우 임시 스토리지 요구 또는 제한을 설정하면 Pod가 예약 대상에서 제외됩니다. 이번 수정으로 인해 LocalStorageCapacityIsolation 기능 게이트가 비활성화되어 있는 경우 임시 스토리지 요구 사항 또는 제한이 무시되고 Pod를 예상대로 예약할 수 있습니다. (BZ#1886294)

Red Hat OpenShift Logging

이번 릴리스에서는 Cluster LoggingRed Hat OpenShift Logging 버전 5.0이 됩니다. 자세한 내용은 Red Hat OpenShift Logging 5.0 릴리스 노트를 참조하십시오.

Machine Config Operator

  • 이전 버전에서는 RHOSP(Red Hat OpenStack Platform)에 배포하고 호스트 이름과 HTTP 프록시를 사용할 때 설치 프로세스가 컨테이너 이미지를 가져오지 못하고 unable to pull image 오류 메시지를 보고하는 경우가 있었습니다. 이번 버그 수정을 통해 환경 변수에서 프록시가 설정되는 방법을 수정하고 노드가 원격 레지스트리에서 컨테이너 이미지를 가져올 수 있습니다. (BZ#1873556)
  • 이전 버전에서는 업그레이드하는 동안 이전 릴리스의 MCC(Machine Config Controller)가 최신 MCO(Machine Config Operator)의 구성 변경 사항에 대응할 수 있었습니다. 그 후 MMC는 업그레이드 프로세스 중에 불필요한 재부팅을 초래하는 다른 변경 사항을 도입했습니다. 이번 버그 수정을 통해 최신 MCO의 구성 변경에 MCC가 반응하지 않고 불필요한 재부팅이 발생하지 않습니다. (BZ#1879099)
  • 이전 버전에서는 CoreDNS 분산 쿼리 전송 플러그인이 구성된 모든 DNS 서버에 임의로 쿼리를 실행했습니다. CoreDNS가 작동하지 않는 DNS 서버를 쿼리하기 때문에 이름을 확인하지 못했습니다. 이번 버그 수정을 통해 응답하는 첫 번째 DNS 서버로 쿼리를 전송하도록 순차적 정책을 사용하는 전송 플러그인이 설정되었습니다. (BZ#1882209)
  • 이전 버전에서 Machine Config Operator는 multi-user.target.wants 디렉토리에서만 활성화된 systemd 대상 장치만 읽었습니다. 결과적으로 multi-user.target.wats 디렉터리를 대상으로 하지 않는 모든 장치가 해당 디렉터리를 대상으로 하도록 변경되었습니다. 이번 수정에서는 systemd-preset 파일을 사용하여 MCO에 사전 설정된 파일을 생성하도록 MCO가 변경되었습니다. 따라서 모든 systemd 서비스가 정상적으로 활성화 및 비활성화됩니다. (BZ#1885365)
  • 이전 버전에서는 클러스터를 OVN-Kubernetes 기본 CNI(Container Network Interface)로 마이그레이션할 때 사전 구성된 Linux 본딩 인터페이스의 본딩 옵션은 무시되었습니다. 결과적으로 본딩은 지정된 모드 대신 라운드 로빈을 사용하여 구성되며 본딩이 작동하지 않을 수 있었습니다. ovs-configuration.service(configure-ovs.sh)가 Linux 본딩의 이전 모든 본딩 옵션을 ovs-if-phys0 Network Manager 연결에 복사하도록 수정되었습니다. 따라서 모든 본딩이 원래 구성된 대로 작동합니다. (BZ#1899350)
  • OpenShift Container Platform 4.6에서는 BFQ(Budget Fair Queueing) Linux I/O 스케줄러를 사용하도록 변경되었습니다. 그 결과 etcd에서 fsync I/O 대기 시간이 증가했습니다. 이번 수정에서는 I/O 스케줄러를 사용하지 않도록 구성된 NVMe 장치를 제외하고 mq-deadline 스케줄러를 사용하도록 I/O 스케줄러를 수정했습니다. RHCOS(Red Hat Enterprise Linux CoreOS) 업데이트의 경우 BFQ 스케줄러는 계속 사용됩니다. 결과적으로 대기 시간이 허용 가능한 수준으로 단축되었습니다. (BZ#1899600)

웹 콘솔(관리자 화면)

  • 이전 버전에서는 종속성에 대한 문제로 인해 OpenShift Container Platform 웹 콘솔에서 YAML 편집기를 영구적으로 마운트 해제하고 다시 마운트했습니다. 그 결과 YAML 편집기가 몇 초마다 YAML 파일의 상단으로 이동했습니다. 이번 수정으로 종속성에 대한 기본 매개변수 값이 제거되었습니다. 그 결과 YAML 편집기가 예상대로 작동합니다. (BZ#1903164)
  • 이전 버전에서는 OpenShift Container Platform 웹 콘솔의 Operator 설명의 링크가 샌드박스 iframe으로 렌더링되어 해당 iframe 내에서 javascript를 비활성화했습니다. 결과적으로 링크를 클릭하면 샌드 박스 제한이 새 탭에서 상속되므로 JavaScript가 링크된 페이지를 실행하지 못했습니다. 링크는 샌드 박스 외부에서 새 탭을 열 수 있도록 allow-popups-to-escape-sandbox 매개변수를 Operator 설명 iframe 샌드 박스 속성에 추가하여 해결되었습니다. 결과적으로 Operator 설명에서 링크는 정상적으로 열리고 실행됩니다. (BZ#1905416)
  • 이전 버전에서는 OpenShift Container Platform 웹 콘솔의 스케일 pod 기능에서 scale 하위 리소스를 사용하지 않았으며, 배포 구성 및 배포에 patch 동사가 없는 사용자 정의 역할은 웹 콘솔의 pod를 스케일링할 수 없었습니다. 스케일 pod 기능이 scale 하위 소스를 사용하도록 코드가 변경되었습니다. 결과적으로 사용자가 patch 동사를 추가하지 않고 웹 콘솔에서 pod를 확장할 수 있습니다. (BZ#1911307)
  • 이전 버전에서는 OpenShift Container Platform 웹 콘솔에서 사용자 지정 리소스를 만드는 경우 fieldDependency 설명이 동일한 이름의 컨트롤 필드를 사용하는 스키마 속성에 적용되어 getJSONSchemaPropertySortWeight 도우미 기능이 무한 반복되었습니다. 그 결과 DynamicForm 구성 요소에서 예외가 발생하여 웹 브라우저가 충돌할 수 있었습니다. 이번 수정에서는 getJSONSchemaPropertySortWeight 기능을 수정하여 현재 경로를 추적하고 전체 경로를 사용하여 필드 이름 대신 종속성 관계를 결정합니다. 따라서 DynamicForm 구성 요소가 더 이상 위의 조건에서 예외를 발행시키지 않습니다. (BZ#1913969)
  • 이전 버전에서는 SamplesTBRInaccessibleOnBoot 경고 설명에 "bootstrapped"라는 단어가 잘못 입력되었습니다. 이제 경고 설명이 올바르게 되어 있습니다. (BZ#1914723)
  • 이전 버전에서는 CPU 및 메모리 specDescriptor 필드에 있는 YAML 편집기에 빈 문자열이 추가되었습니다. 이제 이러한 필드에서 더 이상 YAML 편집기에 빈 문자열이 추가되지 않습니다. (BZ#1797766)
  • 이전 버전에서는 SubscriptionCSV 개체가 Operator 설치 중에 Installed Operators 페이지에 표시되었습니다. 이제 일치하는 CSV 개체가 이미 존재하는 경우 Subscription Operator가 Installed Operators 페이지에 표시되지 않도록 이러한 복제가 수정되었습니다. (BZ#1854567)
  • 이전 버전에서는 빌드가 1시간 전에 시작된 경우 Build details 페이지에 빈 리소스 사용 차트가 표시되었지만 기본값은 마지막 시간만 표시되도록 설정되었습니다. 이제 Build details 페이지의 사용 차트에서 빌드가 실행된 시점의 데이터가 표시됩니다. (BZ#1856351)
  • 이전에는 OpenAPI 정의가 초기 페이지 로드에서만 업데이트되었습니다. 이제 OpenAPI 정의는 API에서 모델이 인출될 때마다 5 분 간격으로 업데이트됩니다. OpenAPI 정의는 페이지 새로 고침없이 최신 상태로 유지됩니다. (BZ#1856354)
  • 이번 릴리스에서는 클러스터 모니터링 문서의 손상된 링크가 수정되었습니다. (BZ#1856803)
  • 이전 버전에서는 Red Hat Marketplace URL에서 utm_source 매개변수가 누락되었습니다. 이번 릴리스에서는 utm_source 매개변수가 Red Hat Marketplace URL에 추가되었습니다. (BZ#1874901)
  • 이전 버전에서는 Escape 키를 사용하여 프로젝트 선택 드롭 다운 메뉴를 종료할 수 없었습니다. 이제 Escape 키의 처리기가 업데이트되어 사용자가 프로젝트 선택 드롭 다운 메뉴를 종료할 수 있습니다. (BZ#1874968)
  • 이전 버전에서는 스케줄링 상태에 사용된 글꼴 색상은 접근성을 준수하지 않았습니다. 글꼴 및 글꼴 색상이 업데이트되어 사용하기 쉬워졌습니다. 스케줄링 비활성화된 노드는 노란색 경고 아이콘(느낌표 아이콘)으로 표시됩니다. (BZ#1875516)
  • 이전 버전에서는 일부 API 호출의 패치 경로가 올바르지 않았습니다. 이로 인해 사양 설명자 필드가 리소스 속성을 업데이트하지 못했습니다. 이번 릴리스에서는 설명자에서 패치 경로를 빌드하기 위한 논리가 업데이트되었습니다. (BZ#1876701)
  • 이전 버전에서는 Unschedulable 상태 필드가 True 설정되어 있는 경우에만 표시되었습니다. 이번 릴리스에서는 상태 정보를 보다 명확하게 표시하기 위해 새로운 UX 디자인이 구현되었습니다. (BZ#1878301)
  • 이전 버전에서는 자동 승인 전략을 사용하는 서브스크립션이 동일한 네임스페이스의 다른 서브스크립션에 수동 승인 전략이 있는 경우 수동 승인 전략이 있는 것처럼 작동했습니다. 이번 릴리스에서는 수동 승인 전략을 사용하는 서브스크립션에 대한 네임스페이스의 모든 서브스크립션이 수동으로 작동하는지에 대한 정보를 사용자에게 알리는 업데이트가 추가되었습니다. (BZ#1882653)
  • 이전 버전에서는 수동 설치 계획이 여러 Operator에 영향을 미칠 수 있었습니다. 그러나 UI는 실제로 영향을 미치는 경우에도 이를 명시적으로 표시하지 않고 승인을 요구하는 UI가 표시되었습니다. 이로 인해 사용자가 여러 Operator에 대한 설치 계획을 승인할 수 있었지만 UI에서 이를 명시적으로 표시하지 않았습니다. 이번 릴리스에서는 수동 승인 계획의 영향을 받는 모든 Operator가 나열되며 어떤 Operator가 설치되는지 명확히 표시됩니다. (BZ#1882660)
  • 이전 버전에서는 네임스페이스 생성 모달에서 중복 네임스페이스를 생성하면 거부 오류가 발생했습니다. 이번 릴리스에서는 프로젝트를 생성할 때 오류 처리기가 추가되어 중복 프로젝트를 생성해도 거부 오류가 발생하지 않습니다. (BZ#1883563)
  • 이전 버전에서는 Prometheus swagger 정의에는 분석할 수 없는 $ref 속성이 포함되어 있어 Prometheus 피연산자 작성 양식에서 런타임 오류가 발생했습니다. 이제 definitionFor 도움말 함수에서 반환된 스키마에 definitions 속성이 추가되므로 $ref가 해결된 런타임 오류가 발생하지 않습니다.(BZ#1884613)
  • 이전 버전에서는 설치 상태 페이지가 표시되기 전에 사용자가 필요한 리소스가 백그라운드에 로드될 때까지 기다려야 했습니다. 이제 설치 상태 페이지가 업데이트되어 사용자가 Operator 설치를 시작하면 즉시 표시됩니다. (BZ#1884664)
  • 이전 버전에서는 iOS가 자체 서명된 인증서로 보안 Websocket을 통해 연결하는 기능을 지원하지 않기 때문에 콘솔에 흰색 화면이 표시되었습니다. 이제 자체 서명된 인증서가 있는 Websocket이 제대로 실행되지 않으면 https 로 대체되므로 콘솔이 올바르게 로드됩니다. (BZ#1885343)
  • 이전 버전에서는 웹 콘솔에서 사용자가 새 역할 바인딩을 생성할 때 시스템 역할이 존재하지 않았습니다. 이제 시스템 역할이 역할 이름 드롭다운에 표시되어 사용자가 새 역할 바인딩을 생성할 때 시스템 역할을 선택할 수 있습니다. (BZ#1886154)
  • 이전 버전에서는 터미널의 모든 pod가 Linux Pod이고 Windows Pod를 고려하지 않았기 때문에 sh 명령을 기본값으로 설정한 Windows Pod에서 터미널이 작동하지 않았습니다. 이제 터미널에서 Pod 유형을 감지하고 필요에 따라 명령을 변경합니다. (BZ#1886524)
  • 이전 버전에서는 새 프로비저닝 프로그램 이름에 kubernetes.io/ 접두사가 포함되어 있지 않기 때문에 사용자가 웹 console의 aws-ebs-csi-driver(gp2-csi)를 통해 PVC를 생성할 때 RWX 및 RWO 액세스 모드를 선택할 수 있었습니다. 이제 AccessMode 매핑에 추가 프로비저닝 기능이 추가되어 웹 콘솔에서 aws-ebs-csi-driver(gp2-csi)를 통해 PVC를 생성할 때 RWX 및 RWO 액세스 모드를 사용할 수 없습니다. (BZ#1887380)
  • 이전 버전에서는 활성 네임스페이스를 유지보수하는 논리가 현재 활성 네임스페이스를 삭제하는 것을 고려하지 않았기 때문에 UI에서 최근에 삭제된 네임스페이스가 현재 활성 네임스페이스로 설정된 상태로 유지될 수 있었습니다. 이제 현재 브라우저 세션에서 사용자가 현재 활성 네임스페이스를 삭제할 때 "All namespaces"로 설정되도록 활성 네임스페이스 논리가 업데이트되었습니다. 이제 사용자가 현재 활성화된 네임스페이스를 삭제하면 해당 브라우저 세션의 활성 네임스페이스가 "All Namespaces"로 자동 업데이트됩니다. (BZ#1887465)
  • 이전 버전에서는 v0.1.1의 콘솔 공급 업체의 'runc' 모듈에 잠재적인 보안 문제가 포함되어 있었기 때문에 'runc' 종속성을 잠재적인 취약점이 있는 것으로 frog xray 플래그 표시되어 있었습니다. 이제 'runc' 모듈이 수정 사항이 포함된 v1.0.0-rc8 버전에 고정되어 있으므로 'runc' 종속성이 더 이상 잠재적인 취약점이 있는것으로 플래그 표시되지 않습니다. (BZ#1887864)
  • 이전에는 CSV 및 PackageManifests 가 최신 버전 대신 제공되는 모든 API 버전을 나열했기 때문에 CSV 및 PackageManifest 페이지에 중복된 API가 표시될 수 있었습니다. 이제 API를 검색하는 논리가 업데이트되어 제공되는 각 API의 최신 버전만 표시됩니다. (BZ#1888150)
  • 이전 버전에서는 Install Operand Form 설명이 'SynchMarkdownView' 구성 요소가 누락되어 있었기 때문에 마크다운으로 포맷되지 않았습니다. 이제 Install Operand Form이 마크 다운으로 포맷되어 Install Operand Form 설명이 올바르게 포맷되어 있습니다.(BZ#1888036).
  • 이전 버전에서는 fieldDependency specDescriptor 형제(ibling)요소 이외의 종속성으로 설계되거나 테스트되지 않았습니다. 따라서 형제(ibling)요소 이외의 종속성은 예상대로 작동하도록 보장되지 않았습니다. 이번 업데이트에서는 형제(ibling)요소 이외의 종속성이 예상대로 작동하도록 논리가 수정되었습니다. (BZ#1890180)
  • 이전에는 로컬 ensureKind 함수가 null data 인수를 제대로 처리하지 못한 경우 예외가 발생했습니다. 이번 업데이트에서는 data 인수를 사용하여 null의 병합을 추가하여 예외가 발생하지 않으며, 이로 인해 null data 인수를 정상적으로 처리할 수 있습니다. (BZ#1892198)
  • 이전 버전에서는 콘솔에서 TLS 시크릿을 편집할 수 없었습니다. 이번 업데이트에서는 콘솔에서 TLS 시크릿을 업데이트할 수 있도록 type 필드가 추가되었습니다. (BZ#1893351)
  • 이번 업데이트에서는 웹 콘솔에 잘못된 파일 시스템 용량 및 사용 데이터가 표시되는 문제가 해결되었습니다. (BZ#1893601)
  • 이전 버전에서는 웹 콘솔에서 OLM(Operator Lifecycle Manager) Operator에 대한 메트릭을 수집하기 위해 잘못된 서비스 계정인 Prometheus Operator에 대한 권한을 잘못 부여했습니다. 이제 콘솔에서 prometheus-k8s 서비스 계정에 대한 권한을 올바르게 부여하여 메트릭을 수집할 수 있습니다. (BZ#1893724)
  • 이전 버전에서는 콘솔 pod의 TopologyKeykubernetes.io/hostname으로 설정되어 업데이트 및 영역 중단 시 가용성 문제가 발생했습니다. 이번 업데이트에서는 TopologyKeytopology.kubernetes.io/zone로 설정하여 업데이트 및 영역 중단 시 가용성이 향상되었습니다. (BZ#1894216)
  • 이전 버전에서는 네임스페이스에 status 블록이 누락된 OperatorGroup으로 인해 OperatorHub에서 새 Operator를 설치할 때 웹 콘솔에서 런타임 오류가 발생할 수 있었습니다. 이러한 문제가 해결되었습니다. (BZ#1895372)
  • 이전 버전에서는 CRD 모델이 없는 경우 콘솔에서 Provided API 목록에서 CRD(Custom Resource Definitions)를 필터링했습니다. 결과적으로 Details 탭에 처음 설치 시 Provided API 카드가 표시되지 않아 Operator에서 API를 제공하지 않았습니다. 이번 업데이트에서는 API 카드에서 필터가 제거되고 CRD 모델이 존재하지 않을 경우 이를 표시합니다. 결과적으로 Provided API 카드와 해당 탭이 항상 일치하며 모델을 사용할 수 없는 경우 UI는 더 이상 빈 상태를 표시하지 않습니다. (BZ#1897354)
  • 경우에 따라 lodash startCase 함수가 피연산자 양식 설명자 필드에 적용되었습니다. 그 결과 필드 레이블은 설명자의 displayName 속성을 덮어쓰는 Start Case로 포맷되었습니다. 이번 업데이트에서는 설명자의 displayName이 제공되지 않은 경우에만 startCase를 적용하며 이는 피연산자 양식에 displayName을 올바르게 표시합니다. (BZ#1898532)
  • 이전 버전에서는 react-jsonschema-form은 null로 명시적으로 설정한 배열 유형 스키마를 제대로 처리하지 않았습니다. DynamicForm 구성 요소에 전달된 양식 데이터에 null로 설정된 배열 유형 속성 정보가 포함된 경우 런타임 예외가 발생했습니다. 이번 업데이트에서는 배열 필드에 null 검사를 추가하여 이 시나리오에서 예외가 더 이상 발생하지 않습니다. (BZ#1901531)

모니터링

  • 이전 버전에서는 prometheus-adapter는 OpenAPI 사양을 구현하지 않았습니다. 그 결과, API 서버는 Prometheus 어댑터가 클러스터에 배포되는 동안 OpenAPI가 존재하지 않는 것을 나타내는 메시지를 60초 마다 기록했습니다. 또한 로그 오류로 인해 KubeAPIErrorsHigh 경고가 표시될 수 있었습니다. 이번 수정에서는 OpenAPI 사양이 prometheus-adapter에 도입되어 OpenShift Container Platform 내의 다른 주요 API 리소스를 준수합니다. (BZ#1819053)
  • 이전 버전에서는 SCC(Security Context Constraints)를 승격하는 특정 시나리오로 인해 Prometheus 상태 저장 배포가 실패했습니다. 이제 모니터링을 위한 상태 저장 세트 배포에 nonroot SCC가 사용됩니다. 이번 수정에서는 Alertmanager, Prometheus 및 Thanos Ruler의 모든 모니터링 상태 저장 세트 배포에 대해 Kubernetes 보안 컨텍스트 설정을 다음과 같이 구성해야 합니다.

    securityContext:
      fsGroup: 65534 1
      runAsNonRoot: true
      runAsUser: 65534 2
    1
    파일 시스템 그룹 ID는 nobody 사용자, ID 65534로 설정됩니다. kubelet은 pod를 시작할 때 그룹 ID를 재귀적으로 설정합니다. pod의 볼륨 권한 및 권한 변경 정책 구성에 대한 자세한 내용은 Kubernetes 설명서 를 참조하십시오.
    2
    모든 상태 저장 모니터링 배포는 nobody 사용자, ID 65534로 실행됩니다.

    (BZ#1868976)

  • 이전 버전에서는 하이퍼바이저가 다른 가상 프로세서를 서비스하는 동안 가상 CPU가 실제 CPU를 대기하는 시간인 CPU 스틸 타임으로 인해 보고된 CPU 사용량에 영향을 미쳤습니다. 결과적으로 CPU 사용량이 노드의 CPU 수 보다 많은 것으로 보고될 수 있었습니다. 이제 CPU 사용을 보고하는 메트릭에서 CPU 스틸 타임을 고려하지 않으므로 보고된 CPU 사용량이 실제 CPU 사용량을 정확하게 반영합니다. (BZ#1878766)
  • 이전 버전에서는 승격된 권한이 없는 인증된 요청이 사용자 정의 프로젝트에서 Prometheus의 /api/v1/query/api/v1/query_range에 액세스할 수 있었습니다. 따라서 일반 서비스 계정의 토큰에 액세스할 수 있는 사용자는 모니터링된 대상에서 메트릭을 읽을 수 있었습니다. 이제 /metrics 엔드포인트에만 요청을 허용하도록 kube-rbac-proxy가 구성됩니다. /metrics 엔드포인트의 클러스터 전체 권한이 없는 인증 요청은 api/v1/query/api/v1/query_range 엔드포인트에 대한 쿼리에 응답하여 HTTP 404 상태 코드를 수신합니다. (BZ#1913386)

네트워킹

  • 기본 게이트웨이를 감지하는 ovn-kube의 코드는 다중 경로 환경이 고려되지 않았습니다. 결과적으로 Kubernetes 노드는 기본 게이트웨이를 찾을 수 없어 실행에 실패했습니다. 다중 경로가 존재하는 경우 첫 번째 사용 가능한 게이트웨이를 고려하도록 논리가 변경되었습니다. OVN-Kubernetes는 이제 다중 경로 및 다중 기본 게이트웨이를 사용하는 환경에서 작동합니다. (BZ#1914250)
  • 듀얼 스택 모드에서 클러스터를 배포할 때 OVN-Kubernetes는 신뢰할 수 없는 소스를 사용했습니다.

    OVN-Kubernetes 마스터 노드는 초기 동기화를 수행하여 OVN 및 Kubernetes 시스템의 데이터베이스 동기화를 유지합니다. 이 문제로 인해 OVN-Kubernetes 시동 시 경쟁 상태가 발생하여 일부 Kubernetes 서비스에 연결할 수 없게 되었습니다. 부트스트랩 논리는 이러한 서비스가 고립된 것으로 간주하여 이를 삭제했습니다.

    이번 버그 수정을 통해 Kubernetes가 신뢰할 수 있는 소스로 사용됩니다. 이제 OVN-Kubernetes가 올바르게 시작되고 시작시 OVN과 Kubernetes 모두 동기화됩니다. (BZ#1915295)

  • CNO(Cluster Network Operator) 설정 개체에서 additionalNetworks 스탠자를 지정하여 추가 네트워크를 생성할 때 CNO는 생성된 NetworkAttachmentDefinition 객체의 라이프사이클을 관리합니다. 그러나 additionalNetworks 스탠자에서 추가 네트워크를 제외하도록 CNO 구성이 업데이트된 경우 해당 개체는 삭제되지 않았습니다. 이번 릴리스에서 CNO는 이제 추가 네트워크와 관련된 모든 개체를 삭제합니다. (BZ#1755586)
  • OVN-Kubernetes 클러스터 네트워크 공급자의 경우 송신 IP 주소가 구성되고 송신 IP 주소를 호스팅하는 노드 중 하나에 연결할 수 없으므로 연결할 수 없는 노드에 할당된 모든 송신 IP 주소가 다른 노드에 다시 할당되지 않았습니다. 이번 릴리스에서는 송신 IP 주소를 호스팅하는 노드에 연결할 수 없는 것으로 표시되면 송신 IP 주소가 다른 노드에 할당됩니다. (BZ#1877273)
  • OVN-Kubernetes 클러스터 네트워크 공급자의 경우 br-ex 브릿지의 경로 우선 순위는 클러스터를 설치한 후 추가된 보조 네트워크 인터페이스의 기본 경로로 대체될 수 있습니다. 보조 장치의 기본 경로에서 노드의 br-ex 브릿지를 대체하면 클러스터 네트워크가 더 이상 작동하지 않습니다. 이번 릴리스에서 br-ex 브릿지의 기본 경로는 대체할 수 없습니다. (BZ#1880259)
  • OVN-Kubernetes 클러스터 네트워크 공급자를 사용하는 클러스터의 경우 RHEL (Red Hat Enterprise Linux) 7 작업자 노드를 클러스터에 추가할 때 새 작업자 노드는 클러스터 네트워크에 연결할 수 없습니다. 이번 릴리스에서는 RHEL 작업자 노드를 성공적으로 추가할 수 있습니다. (BZ#1882667)
  • OVN-Kubernetes 클러스터 네트워크 공급자를 사용하는 클러스터의 경우 VLAN 또는 연결된 네트워크 장치를 노드의 기본 게이트웨이로 사용할 수 없었습니다. 이번 릴리스에서는 OVN-Kubernetes는 이러한 네트워크 장치에서 작동합니다. (BZ#1884628)
  • Kuryr 클러스터 네트워크 공급자를 사용하는 클러스터의 경우 호스트 네트워크에서 사용하는 Pod에 불필요한 Neutron 포트가 생성되었습니다. 이번 릴리스에서는 호스트 네트워크 pod에 대해 Neutron 포트가 더 이상 생성되지 않습니다. (BZ#1886871)
  • OVN-Kubernetes 클러스터 네트워크 공급자를 사용하는 클러스터의 경우 br-ex 브리지는 veth<N>과 같은 다른 인터페이스의 연결을 지원하지 않고 브리지에 추가된 인터페이스 기능이 올바르게 작동하지 않았습니다. 이번 릴리스에서는 새 인터페이스를 br-ex 인터페이스에 연결할 수 있으며 기능이 올바르게 작동합니다. (BZ#1887456)
  • OVN-쿠버네티스 클러스터 네트워크 공급자를 사용하는 클러스터의 경우 ExternalIP 주소가 구성된 경우 해당 IP 주소를 사용하도록 구성되지 않은 모든 노드가 externalIP로 전송되는 트래픽을 올바르게 라우팅하지 않았습니다. 이제 클러스터의 모든 노드가 ExternalIP에 필요한 경로를 사용하여 구성됩니다. (BZ#1890270)
  • OpenShift SDN 클러스터 네트워크 공급자를 사용하는 클러스터의 경우 네임스페이스와 네트워크 네임스페이스가 삭제된 순서가 중요합니다. 네임스페이스 개체와 연결된 NetNamespace 개체가 먼저 삭제된 경우 해당 네트워크 네임스페이스를 다시 생성할 수 없었습니다. 이번 릴리스에서는 네임스페이스와 관련 네트워크 네임스페이스를 순서에 상관없이 삭제할 수 있습니다. (BZ#1892376)
  • OpenShift SDN 클러스터 네트워크 공급자를 사용하는 클러스터의 경우 이전 버전에서는 네트워크 공급자가 unable to allocate netid 1라는 메시지를 기록했습니다. 이 메시지는 10 미만의 NETID에는 무해하기 때문에 이번 릴리스에서 OpenShift SDN은 10 미만의 NETID에 대한 메시지를 더 이상 내보내지 않습니다. (BZ#1897073)
  • 클러스터가 OVN-쿠버네티스 클러스터 네트워크 공급자를 사용하는 경우 모든 인바운드 ICMPv6는 노드와 OVN 모두에 잘못 전송되었습니다. 이번 릴리스에서는 ICMPv6 Neighbor Advertisements 및 Route Advertisement만 호스트와 OVN으로 전송됩니다. 이로 인해 클러스터에서 노드로 전송되는 ping에 대해 더 이상 중복 응답이 발생하지 않습니다. (BZ#1897641)
  • 이전에는 다수의 노드가 있는 클러스터에서 과도한 멀티 캐스트 DNS(mDNS) 트래픽이 생성되었습니다. 결과적으로 네트워크 전환에 오버플로우가 발생할 수 있었습니다. 이번 릴리스에서는 mDNS 쿼리가 초당 1 회로 제한됩니다.
  • 이전 버전에서는 IPv6, Whereabouts CNI 플러그인 및 지정 제외된 서브넷 범위를 사용하는 추가 네트워크 연결을 생성할 경우 제외된 서브넷 범위가 무시되었습니다. 이번 버그 수정을 통해 서브넷 범위를 제외할 수 있도록 플러그인이 수정되었습니다. (BZ#1900835)
  • 이전 버전에서는 특정 상황에서 Multus의 오류 상태로 인해 Pod가 종료되지 않았습니다. Multus 로그에 문제가 발생할 경우 failed to destroy network for pod sandbox라는 메시지가 포함됩니다. 이 버그 수정을 통해 Multus 는 삭제된 캐시 파일을 허용하고 Pod가 종료될 수 있습니다. (BZ#1900835)
  • 이전 버전에서는 네트워크 정책을 사용하여 OpenShift SDN 네트워크 공급자를 사용하는 경우 네트워크 정책을 사용하지 않는 네임스페이스에도 Pod에서 네트워크 연결 문제가 발생할 가능성이 있었습니다. 이번 버그 수정을 통해 네트워크 정책을 구현하는 기본 OVS(Open vSwitch) 플로우가 유효합니다. (BZ#1914284)
  • 이전 버전에서는 OVN-Kubernetes 네트워크 공급자를 사용하여 여러 pod를 외부 게이트웨이로 사용할 때 pod를 축소하면 네임스페이스의 다른 pod가 트래픽을 나머지 외부 게이트웨이로 라우팅하지 못했습니다. 대신 트래픽이 노드의 기본 게이트웨이로 라우팅되었습니다. 이번 버그 수정을 통해 pod에서 나머지 외부 게이트웨이로 트래픽을 계속 라우팅할 수 있습니다. (BZ#1917605)

노드

  • Pod 또는 컨테이너 생성 요청에 시간이 너무 오래 걸리는 경우 로드 중인 클러스터가 시간 초과될 수 있습니다. CRI-O가 해당 리소스를 만드는 작업을 계속하고 있는데도 kubelet이 해당 리소스를 다시 요청 시도하여 name is reserved로 인해 요청이 실패합니다. CRI-O가 원래 요청을 완료한 후 요청이 시간 초과된 것을 확인한 후 실패한 pod/컨테이너를 정리하여 프로세스를 다시 시작합니다. 그 결과 pod 및 컨테이너 생성은 중지될 수 있으며, kubelet는 여러 name is reserved 오류를 보고합니다. 이로 인해 이미 오버로드된 노드가 추가로 오버로드됩니다. 이번 수정으로 인해 CRI-O가 수정되어 시스템 로드로 인해 시간 초과된 pod 또는 컨테이너 생성의 진행 상황을 저장할 수 있습니다. CRI-O는 kubelet의 새 요청을 보류하므로 name is reserved 오류가 줄어듭니다. 이로 인해 클러스터가 로드되지 않으면 CRI-O가 kubelet이 느려지고 클러스터의 로드가 줄어듭니다. 노드의 전체 로드가 감소되고 Kubelet 및 CRI-O가 보다 신속하게 조정됩니다. (BZ#1785399)
  • 이전 버전에서는 볼륨의 딥 디렉터리로 인해 SELinux를 다시 레이블링하는 시간이 길어졌습니다. 결과적으로 컨테이너 생성 요청이 시간 초과될 수 있으며 kubelet에서 해당 리소스를 다시 요청 시도하여 error reserving ctr name 또는 Kubelet may be retrying requests that are timing out in CRI-O due to system load 오류가 발생했습니다. 이번 수정으로 인해 CRI-O가 수정되어 시스템 로드로 인해 시간 초과된 pod 또는 컨테이너 생성의 진행 상황을 저장할 수 있습니다. 따라서 컨테이너 요청은 적절한 방식으로 수행됩니다. (BZ#1806000)
  • 이전 버전에서는 CRI-O에서 호스트 포트 매핑을 관리하기 위해 IPv4 iptables만 사용했습니다. 결과적으로 다음을 수행합니다. 호스트 포트는 IPv6에서 작동하지 않습니다. 이번 수정으로 IPv6 호스트 포트를 지원하도록 CRI-O가 수정되었습니다. 따라서 호스트 포트가 IPv6에서 예상대로 작동합니다. (BZ#1872128)
  • 이전 버전에서는 HTTP/2 전송에 시간 제한 논리를 제공하는 연결에 올바른 옵션이 지정되지 않았습니다. 이로 인해 VMWare 네트워크 인터페이스 (및 다른 시나리오)가 몇 초 동안 응답하지 않고 연결이 자동으로 중단되었습니다. 그 결과 연결에 차질에 생겨 노드가 중단되지 않음, 기존 연결을 사용한 API 호출 및 실패 등과 같은 다른 관련 오류가 발생했습니다. 이번 수정으로 적절한 시간 초과가 추가되었습니다. 결과적으로 시스템 내의 HTTP/2 연결이 더 안정적이며 부작용이 완화됩니다. (BZ#1873114)
  • 이전 버전에서는 Topology Manager 엔드 투 엔드 테스트 (openshift-tests run-test)는 각 작업자 노드에서 MCD (Machine Config Daemon)를 실행해야 했습니다. 이는 Red Hat Enterprise Linux CoreOS (Red Hat Enterprise Linux CoreOS) 노드에 배포된 노드의 경우에 해당하며 RHEL (Red Hat Enterprise Linux CoreOS)에 배포된 노드의 경우에는 해당하지 않습니다. 결과적으로 RHEL에 배포된 클러스터에서 실행되는 경우 Topology Manager의 엔드 투 엔드 테스트는 false-negative 오류로 실패했습니다. 이번 수정으로 MCD를 감지하지 않는 노드를 건너뛰도록 테스트를 수정했습니다. 결과적으로 false-negative 오류가 더 이상 보고되지 않습니다. (BZ#1887509)
  • 이전 버전에서는 상태가 누락될 때 Kubelet에서 변환이 제대로 처리되지 않았습니다. 이로 인해 일부 종료된 Pod는 다시 시작되지 않았습니다. 이번 수정으로 필요에 따라 컨테이너를 다시 시작할 수 있도록 failed 컨테이너 상태가 추가되었습니다. 결과적으로 kubelet Pod 처리로 인해 잘못된 상태 전환이 발생하지 않습니다. (BZ#1888041)
  • 이전 버전에서는 cAdvisor에서 머신 메트릭이 Kubernetes 1.19 이상의 경우 누락되었습니다. 이번 수정을 통해 CAdvisor 시스템 메트릭을 올바르게 수집할 수 있도록 코드가 변경되었습니다. 그 결과 시스템 메트릭이 표시되게 되었습니다. (BZ#1913096)
  • 이전 버전에서는 HPA (Horizontal Pod Autoscaler)는 init 컨테이너가 있는 Pod와 같이 불완전한 메트릭이 있는 Pod를 무시했습니다. 따라서 init 컨테이너가 있는 모든 Pod는 확장되지 않았습니다. 이번 수정을 통해 Prometheus 어댑터에서 init 컨테이너에 대한 전체 메트릭을 전송하게 되었습니다. 결과적으로 HPA는 init 컨테이너를 사용하여 Pod를 확장할 수 있습니다. (BZ#1867477)
  • 이전 버전에서는 Vertical Pod Autoscaler(VPA)에 배포 구성을 모니터링할 수 없었습니다. 결과적으로 VPA는 배포 구성 워크로드를 확장할 수 없었습니다. 이번 수정으로 VPA에 적절한 권한이 추가되어 배포 구성을 모니터링할 수 있습니다. 결과적으로 VPA는 배포 구성 워크로드를 확장할 수 있습니다. (BZ#1885213)

Node Tuning Operator

  • 잘못된 Tuned 프로파일이 생성되면 openshift-tuned supervisor 프로세스에서 향후 프로파일 업데이트를 무시하고 업데이트된 프로파일을 적용하지 못할 수 있습니다. 이 버그 수정을 통해 Tuned 프로파일 애플리케이션의 성공 또는 실패에 대한 상태 정보가 유지됩니다. 이제 openshift-tuned에서 새 유효한 프로파일을 수신할 때 프로파일 애플리케이션 오류를 복구할 수 있습니다. (BZ#1919970)

oauth-proxy

  • 이전 버전에서는 인증 검사 실패에 대한 기존 로깅이 있었습니다. oauth-proxy 뒤의 서비스에 대한 요청으로 프록시 로그에 행이 기록되어 로그 플러드가 발생할 수 있었습니다. 이번 수정에서는 프록시에서 불필요한 로그 행이 삭제되었습니다. 이제 프록시에서 더 이상 로그 스팸이 발생하지 않습니다. (BZ#1879878)
  • 이전 버전에서는 oauth-proxy 명령으로 잘못된 옵션 조합이 지정되면 잘못된 옵션 처리에 의해 nil 역참조가 발생했습니다. 이로 인해 사용 메시지 마지막에 세그먼트 스택 추적이 출력되었습니다. 이제 옵션 처리가 개선되고 잘못된 옵션 조합이 지정되면 nil 역참조가 발생하지 않습니다. 잘못된 옵션이 지정되면 스택 추적 없이 사용 메세지가 출력됩니다. (BZ#1884565)

oc

  • 이전 버전에서는 로깅 라이브러리 변경으로 인해 로그 레벨이 2라는 낮은 수준에서 goroutine 스택 추적이 출력되어 더 많은 디버깅이 어려웠습니다. goroutine 스택 추적에 대한 로그 레벨이 증가했으며 이제 로그 레벨 6 이상에서만 출력됩니다. (BZ#1867518)
  • 이전 버전에서는 동일한 사용자 이름을 사용하여 OpenShift CLI(oc)에서 여러 클러스터에 로그인할 때 마다 각 클러스터에 로그인해야 했습니다. 사용자 이름이 동일한 경우에도 컨텍스트 이름이 올바르게 업데이트되었습니다. 이제 로그인하고 컨텍스트를 전환한 후 다시 로그인할 필요가 없습니다. (BZ#1868384)
  • 이전 버전에서는 oc adm release mirror를 사용하여 릴리스가 디스크에 미러링된 경우 매니페스트 파일 이름에 아키텍처 확장(예: -x86_64)이 포함되지 않았습니다. 이로 인해 태그 이름 충돌하지 않는 경우에도 여러 아키텍처를 동일한 저장소에 미러링할 수 없었습니다. 이제 파일 이름에 적절한 아키텍처 확장이 포함되어 태그 이름 충돌을 방지할 수 있습니다. (BZ#1878972)
  • 이전 버전에서는 이미지 검증 개체가 올바르게 설정되지 않아 이미지를 검증할 때 OpenShift CLI (oc)가 nil 포인터 예외로 실패할 수 있었습니다. 이제 이미지 검증 개체가 올바르게 설정되어 이미지를 검증할 때 OpenShift CLI(oc)가 더 이상 nil 포인터 예외와 함께 실패하지 않습니다. (BZ#1885170)
  • 이전 버전에서는 oc adm verify-image-signature를 사용하여 이미지 서명을 검증할 때 잘못된 사용자 이름이 사용되었으며 이미지 서명 확인에 실패했습니다. 이제 이미지 서명 및 이미지 서명 확인이 예상대로 작동하는 경우 적절한 사용자 이름이 사용됩니다. (BZ#1890671)
  • 이전 버전에서는 빌드 프로세스 중에 버전 정보를 제공하는 메타데이터가 생성되지 않았으며 OpenShift CLI(oc)의 Windows 바이너리에 존재하지 않았습니다. 이제 적절한 Windows 버전 정보가 생성되고 Windows 바이너리에서 사용할 수 있습니다. (BZ#1891555)
  • 이전 버전에서는 경로 상태에 대한 Nil 검사가 누락되면 경로를 설명할 때 OpenShift CLI (oc)가 충돌할 수 있었습니다. 이제 nil 검사가 추가되어 경로를 설명하는 작업이 올바르게 작동합니다. (BZ#1893645)
  • 이전 버전에서는 OpenShift CLI (oc)에 클라이언트 쓰로틀링(Throttling)에 대한 낮은 제한이 설정되어 API 검색에 대한 요청은 클라이언트 코드로 제한되었습니다. 클라이언트 쓰로틀링 제한이 증가했으며 클라이언트 측 쓰로틀링표시 횟수가 줄어들었습니다. (BZ#1899575)
  • 이전 버전에서는 oc debug 명령의 변경 시 init 컨테이너에 대한 지원이 손실되어 init 컨테이너를 디버그할 수 없었습니다. init 컨테이너에 대한 지원이 oc debug 명령에 추가되어 init 컨테이너를 디버그할 수 있습니다. (BZ#1909289)

OLM

  • Marketplace Operator는 일반 클러스터 업그레이드 중에 발생한 marketplace-operator Pod가 정상적으로 종료될 때마다 제공되는 서비스가 성능이 저하되었다고 보고하기 위해 작성되었습니다. 이로 인해 Pod가 정상적인 업그레이드 중에 성능이 저하된 것으로 보고되어 혼란을 유발했습니다. Marketplace Operator는 정상적으로 종료될 때 Telemeter 클라이언트가 degraded 플래그를 지정하지 않으면 더 이상 성능이 저하된 것으로 표시하지 않습니다. (BZ#1838352)
  • 이전 버전에서는 Operator 업그레이드 중에 OLM(Operator Lifecycle Manager)이 업그레이드를 완료하기 전에 기존 CSV(클러스터 서비스 버전)를 삭제했습니다. 이로 인해 새 CSV가 "Pending" 상태로 유지되었습니다. 이번 버그 수정을 통해 서비스 계정의 소유권을 확인하도록 OLM을 업데이트하여 새 CSV에 대한 새 서비스 계정이 생성됩니다. 결과적으로 새로운 CSV가 "Succeeded" 상태가 될 때까지 기존 CSV가 더 이상 삭제되지 않습니다. (BZ#1857877)
  • 이전 버전에서는 OLM(Operator Lifecycle Manager)에서 존재하지 않는 채널을 지정한 Subscription 개체를 허용했습니다. 서브스크립션이 정상적인 것으로 표시되고 관련 오류 메시지가 표시되지 않기 때문에 사용자에게 혼란을 초래했습니다. 이번 버그 수정을 통해 OLM을 업데이트하여 이 시나리오에서 Subscription 개체가 실패하게 되었습니다. 클러스터 관리자는 다음과 같은 종속성 확인 오류 정보에 대한 default 네임스페이스의 이벤트를 확인할 수 있습니다.

    $ oc get event -n default

    출력 예

    LAST SEEN   TYPE      REASON             OBJECT                    MESSAGE
    6m22s       Warning   ResolutionFailed   namespace/my-namespace    constraints not satisfiable: my-operator is mandatory, my-operator has a dependency without any candidates to satisfy it

    (BZ#1873030)

  • 이전 버전에서는 OLM(Operator Lifecycle Manager)에서 승인 Webhook 구성을 지원했지만 API 서버를 배포할 때 사용되는 CA 인증서 생성 코드를 재사용했습니다. 이 코드에서 사용하는 마운트 디렉터리는 다음 위치에 인증서 정보를 배치했습니다.

    • /apiserver.local.config/certificates/apiserver.crt
    • /apiserver.local.config/certificates/apiserver.key

    그러나 Kubebuilder 또는 Operator SDK를 사용하여 빌드된 승인 Webhook는 다음 위치에 CA 인증서를 마운트할 것으로 예상합니다.

    • /tmp/k8s-webhook-server/serving-certs/tls.cert
    • /tmp/k8s-webhook-server/serving-certs/tls.key

    이로 인해 웹 후크가 실행되지 않았습니다. 이번 버그 수정을 통해 Kubebuilder 또는 Operator SDK로 빌드된 Webhook가 예상되는 기본 위치에 Webhook CA 인증서를 마운트하도록 OLM이 업데이트되었습니다. 결과적으로 Kubebuilder 또는 Operator SDK로 빌드된 Webhook를 OLM에서 배포할 수 있습니다. (BZ#1879248)

  • API 서비스, 변환 Webhook 또는 승인 Webhook를 사용하여 Operator를 배포하는 경우 OLM(Operator Lifecycle Manager)은 기존 리소스에서 CA를 검색하여 CA 해시 주석을 계산해야 합니다. 이 주석은 OLM이 배포가 올바르게 설치되었는지 확인하기 위해 사용하는 배포 해시에 영향을 미칩니다. OLM은 현재 변환 Webhook에서 CA를 검색하지 않으므로 잘못된 배포 해시가 생성되어 OLM이 클러스터 서비스 버전(CSV)을 다시 설치하려고 시도합니다.

    CSV가 변환 Webhook를 정의하지만 API 서비스 또는 승인 Webhook를 포함하지 않는 경우 CSV는 "Pending", "ReadyToInstall", "Install" 단계를 무제한으로 순환합니다. 이번 버그 수정에서는 기존 변환 Webhook를 사용하여 CA의 값을 검색하고 배포 해시 값을 올바르게 계산하도록 OLM을 업데이트되었습니다. 결과적으로 OLM은 API 서비스 또는 승인 Webhook 없이 변환 Webhook를 정의하는 CSV를 설치할 수 있습니다. (BZ#1885398)

  • 이전 버전에서는 opm 명령의 semver-skippatch 모드에서는 이전에 시험판 버전을 무시하고 최신 패치 버전이 있는 번들만 허용했습니다. 동일한 패치 버전이 있지만 시험판 버전이 있는 번들은 대체 버전으로 허용되지 않았습니다. 이번 버그 수정을 통해 semver-skippatch 검사를 패치 버전만 아니라 전체 버전으로 하도록 opm 명령이 업데이트되었습니다. 결과적으로 이후의 시험판 버전이 semver-skippatch 모드에 대해 활성화되었습니다. (BZ#1889721)
  • 이전에는 Marketplace Operator에서 클러스터 업그레이드 중에 기존 서비스를 정리하지 않았으며, OLM(Operator Lifecycle Manager)이 서비스를 검증하지 않고 오래된 서비스를 승인했습니다. 이로 인해 이전 서비스에서 오래된 콘텐츠가 포함된 카탈로그 소스 pod로 트래픽을 전송했습니다. 이번 버그 수정에서는 OLM을 업데이트하여 서비스에 사양 해시 정보를 추가하고 해시 정보를 비교하여 서비스가 올바른 사양을 가지고 있는지 확인합니다. OLM은 서비스가 오래된 경우 해당 서비스를 삭제하고 다시 생성합니다. 그 결과 서비스 사양에서 트래픽을 올바른 카탈로그 소스 pod로 전달합니다. (BZ#1891995)
  • Operator를 연결 해제된 레지스트리로 미러링한 후 누락된 관련 번들 이미지로 인해 Operator 설치가 실패할 수 있었습니다. 이 문제는 번들 이미지가 index.db 데이터베이스에 존재하지 않기 때문에 발생했습니다. 이번 버그 수정에서는 opm 명령을 업데이트하여 번들 이미지가 데이터베이스의 related_images 테이블에 있는지 확인합니다. (BZ#1895367)
  • 이전 버전에서는 Operator 작성자는 1에서 65535 범위 외부에 설정된 컨테이너 포트가 있는 Webhook를 정의하는 CSV(클러스터 서비스 버전)를 만들 수 있었습니다. 따라서 검증 실패로 인해 ValidatingWebhookConfiguration 또는 MutatingWebhookConfiguration 개체가 생성되지 않았습니다. 즉, 성공적으로 설치될 수 없는 CSV가 생성될 수 있었습니다. CSV에 대한 CRD(사용자 정의 리소스 정의) 검증에 이제 webhookDescription ContainerPort 필드에 대한 최소 값 및 최대 값이 포함됩니다. 이제 컨테이너 포트가 정의되지 않은 경우 기본값은 443로 설정됩니다. 이제 CSV가 생성되기 전에 잘못된 컨테이너 포트가 있는 CSV의 검증이 실패합니다. (BZ#1891898)
  • opm index prune 작업 후에 채널 항목에서 참조되지 않은 Operator 이미지 번들이 남아 있습니다. 이로 인해 예기치 않은 인덱스 이미지가 미러링됩니다. 이제 이미지 번들은 인덱스가 정리될 때 제거되고 Operator 카탈로그가 나중에 미러링될 때 예기치 않은 이미지가 포함되지 않습니다. (BZ#1904297)
  • 이전 버전에서는 Operator 업데이트로 인해 새 서비스 계정이 생성되기 전에 Operator pod가 배포될 수 있었습니다. 기존 서비스 계정을 사용하여 pod를 배포할 수 있으며 사용 권한이 불충분한 경우 시작 실패할 가능성이 있었습니다. CSV(클러스터 서비스 버전)가 Pending 상태에서 Installing 상태로 전환하기 전에 새 서비스 계정이 있는지 확인하기 위해 검사가 추가되었습니다. 새로운 서비스 계정이 없는 경우 CSV는 Pending 상태로 유지되어 배포가 업데이트되지 않습니다. (BZ#1905299)
  • 이전 버전에서는 OLM(Operator Lifecycle Manager)에서 CSV( ClusterServiceVersion) 개체를 여러 대상 네임스페이스에 복사할 때 복사된 CSV의 .status.lastUpdateTime 필드가 현재 시간으로 설정되었습니다. 현재 시간이 원래 CSV의 마지막 업데이트 시간보다 이후의 시간인 경우 복사된 CSV가 원본과 일치하지 않도록 동기화 경쟁 조건이 트리거되었습니다. 이는 클러스터에 네임스페이스가 있을 경우 이러한 상황이 발생할 가능성이 더 높았습니다. 이제 원래 .status.lastUpdateTime 타임스탬프가 복사된 CSV에 유지되고 동기화 경쟁 조건은 .status.lastUpdateTime 값의 차이로 인해 트리거되지 않습니다. (BZ#1905599)
  • 이전 버전에서는 CSV(ClusterServiceVersion) 개체의 StrategyDetailsDeployment 개체로 정의된 Pod 템플릿에 CSV에 정의된 값과 일치하지 않는 Pod 주석이 포함될 수 있었습니다. CSV의 주석이 CSV의 일부로 배포된 Pod에 존재할 것으로 예상되므로 OLM(Operator Lifecycle Manager)이 Operator 설치에 실패했습니다. 이제 StrategyDetailsDeployment 개체로 정의된 Pod 템플릿 주석을 CSV로 정의된 사항으로 덮어쓸 수 있게 되었습니다. OLM은 더 이상 주석이 Pod 템플릿에 정의된 것과 충돌하는 CSV를 배포하지 않습니다. (BZ#1907381)
  • OperatorHub API를 통해 openshift-marketplace 네임 스페이스의 기본 카탈로그 소스가 비활성화되면 해당 기본값과 동일한 이름으로 사용자 정의 카탈로그 소스를 생성할 수 있습니다. 이전 버전에서는 Marketplace Operator가 marketplace를 다시 시작할 때 기본 카탈로그 소스와 동일한 이름의 사용자 지정 카탈로그 소스를 삭제했습니다. Marketplace Operator가 생성한 기본 카탈로그 소스에 주석이 추가되었습니다. 이제 Operator가 marketplace를 다시 시작할 때 주석이 포함된 카탈로그 소스만 삭제합니다. 기본 카탈로그 소스와 동일한 이름으로 생성된 사용자 정의 카탈로그 소스는 삭제되지 않습니다. (BZ#1908431)
  • 이전 버전에서는 oc adm catalog mirror 명령이 네임스페이스 없이 Operator 인덱스 이미지에 대한 적절한 매핑을 생성하지 못했습니다. 또한 --filter-by-os 옵션은 전체 매니페스트 목록을 필터링했습니다. 이로 인해 카탈로그의 필터링된 이미지에 대한 참조가 발생했습니다. 이제 네임스페이스 없는 인덱스 이미지가 올바르게 매핑되고 --index-filter-by-os 옵션이 추가되어 가져와 압축 풀기한 인덱스 이미지만 필터링됩니다. oc adm catalog mirror 명령은 네임스페이스 없이 인덱스 이미지에 대한 유효한 매핑을 생성하고 --index-filter-by-os 옵션은 필터링된 이미지에 대한 유효한 참조를 생성합니다. (BZ#1908565)
  • 이전 버전에서는 Operator가 CSV(클러스터 서비스 버전) 교체 체인에 skipRange를 지정하여 OLM(Operator Lifecycle Manager)이 자체적으로 Operator 업데이트를 할 수 있었습니다. 이 무한 루프 때문에 CPU 사용률이 증가할 수 있었습니다. 이제 잘못된 skipRange로 인해 Operator가 루프에 고정되지 않도록 CSV 대체 체인이 업데이트되었습니다. (BZ#1916021)
  • 이전 버전에서는 CSV(클러스터 서비스 버전) 조정 루프의 csv.status.LastUpdateTime 시간 비교에서 false 결과를 반환했습니다. 이로 인해 OLM(Operator Lifecycle Manager) Operator가 CSV 객체를 지속적으로 업데이트하고 다른 조정 이벤트를 트리거했습니다. 이제 시간 비교가 개선되어 상태 변경이 없는 경우 CSV가 더 이상 업데이트되지 않습니다. (BZ#1917537)
  • 폴링 간격이 기본 15분 재동기화 기간보다 15배 더 긴 카탈로그 업데이트 pod는 Catalog Operator에 의해 지속적으로 조정됩니다. 이 작업은 다음 폴링 시간에 도달할 때까지 계속되어 CPU 로드가 증가하게 됩니다. 이제 조정 논리가 개선되어 지속적인 조정 및 관련 CPU 부하 증가가 발생하지 않습니다. (BZ#1920526)
  • 이전 버전에서는 Operator 서브스크립션을 생성하려고 시도하는 동안 일치하는 Operator를 찾을 수 없는 경우 해결 실패 이벤트에 나열된 제한에 내부적으로 사용되는 용어가 포함되어 있었습니다. 서브스크립션 제한 문자열은 사용자 관점에서 해결 실패 이유를 설명하지 않았습니다. 제한 문자열은 이제 더 알기 쉬워졌습니다. (BZ#1921954)

openshift-apiserver

  • 이전 버전에서는deploymentconfigs/<name>/instantiate하위 리소스를 대상으로 하는 요청이 no kind "DeploymentConfig" is registered for version apps.openshift.io/로 실패했습니다. 이제 DeploymentConfig에 대한 올바른 버전이 설정되어 이러한 요청이 더 이상 실패하지 않습니다. (BZ#1867380)

Operator SDK

  • 이전 버전에서는 모든 operator-sdk 하위 명령이 PROJECT가 디렉토리인 경우에도 PROJECT 파일을 읽으려 했습니다. 그 결과 PROJECT 파일이 필요하지 않은 하위 명령이 실패했습니다. 이제 PROJECT 파일이 필요하지 않은 하위 명령이 읽기를 시도하지 않고 잘못된 PROJECT 파일이 있는 경우에도 정상적으로 실행됩니다. (BZ#1873007)
  • 이전 버전에서는 operator-sdk cleanup 명령을 실행해도 operator-sdk run bundle 명령을 사용하여 배포된 Operator를 정리하지 않았습니다. 대신 오류 메시지가 표시되었으며 Operator가 정리되지 않았습니다. 이제 operator-sdk cleanup 명령이 업데이트되어 run bundle에서 배포된 Operator는 cleanup 명령을 사용하여 정리할 수 있습니다. (BZ#1883422)

Performance Addon Operator

  • 이전 버전에서는 must-gather 논리에서 잘못된 대기 시간으로 인해 로그 수집이 빨리 종료되었습니다. 이 문제로 인해 타이밍에 따라 로그 수집 작업이 중간에 중단되었습니다. 이로 인해 로그가 부분적으로 수집되었습니다. 이제 must-gather 논리에 올바른 대기 시간을 추가하여 해결되었습니다. (BZ#1906355)
  • 이전 버전에서는 must-gather 가 모든 노드에서 바인딩되지 않은 양의 kubelet 로그를 수집했습니다. 이 문제로 인해 과도한 양의 데이터가 전송 및 수집되었으며 사용자에게 명확한 이점이 없었습니다.

    이 문제는 수집된 양을 8시간 동안에 바인딩하고 작업자 노드에서만 kubelet 로그를 제한적으로 수집하고 컨트롤 플레인 노드에서 kubelet 로그를 수집하지 않음으로써 해결되었습니다. (BZ#1918691)

  • 이전 버전에는 머신 구성 풀이 성능이 저하되면 정확한 머신 구성 풀 상태를 표시하도록 성능 프로파일이 업데이트되지 않았습니다. 이제 성능 프로파일 노드 선택기 또는 머신 구성 풀 선택기가 관련 머신 구성 풀을 올바르게 감시하고 성능이 저하된 머신 구성 풀이 올바른 상태를 반영합니다. (BZ#1903820)

RHCOS

  • 이전 버전에서는 RHCOS 설치 시 추가 Azure 디스크를 구성하면 RHCOS initramfs에서 Azure 디스크의 udev 규칙이 누락되어 실패했습니다. 이제 설치 시 추가 디스크를 구성하도록 필요한 udev 규칙이 추가되었습니다. (BZ#1756173)
  • 이전 버전에서는 rhcos-growpart.service가 모범 사례가 아닌 방식으로 사용되었습니다. 이제 설치시 Ignition을 통해 디스크를 구성하는 것이 우선되기 때문에 rhcos-growpart.service 서비스가 제거되었습니다. 초기 RHCOS 설치 후 디스크 구성을 변경하려면 필요한 디스크 구성 변경으로 시스템을 다시 프로비저닝해야 합니다. (BZ#1851103)
  • 이전 버전에서는 Machine Config Operator에서 rpm-ostree cleanup -p를 실행할 때 rpm-ostree 변경을 롤백하여 "System transaction in progress" 오류가 발생했습니다. 이번 수정을 통해 D-Bus 처리와 관련된 rpm-ostree 코드가 개선되어 더 이상 오류가 발생하지 않습니다. (BZ#1865839)
  • 이전 버전에서는 RHEL 8.2의 KVM에서 NVME 에뮬레이션의 ppc64le 또는 s390x가 지원되지 않았으며 이로 인해 NVME 에뮬레이션을 사용하는 kola --basic-qemu-scenarios가 실패했습니다. ppc64le 및 s390x 의 NVME 에뮬레이션에 대한 테스트가 비활성화되어 테스트가 성공적으로 실행됩니다. (BZ#1866445)
  • 이전 버전에서는 NetworkManager가 DHCP 응답 대기를 중지하고 네트워크가 initramfs에서 구성되지 않았기 때문에 DHCP 서버가 DHCP 쿼리에 응답하는 데 시간이 너무 오래 걸리는 경우 Ignition에서 네트워크를 통해 원격 구성을 가져올 수 없었습니다. 이제 NetworkManager의 새 버전은 제한 시간 및 재시도 횟수를 늘리기 위해 커널 매개 변수로 rd.net.timeout.dhcp=xyzrd.net.dhcp.retry=xyz 옵션이 설정된 경우 이를 인식하여 지연된 DHCP 응답에 대응하도록 해당 옵션을 설정할 수 있습니다. (BZ#1877740)
  • 이전 버전에서는 커널 명령줄의 여러 nameserver= 항목이 여러 개의 NetworkManager 연결 프로필을 생성할 수 있기 때문에 잘못된 네트워킹 구성이 생성되었습니다. 이제 RHCOS에서 NetworkManager의 최신 버전이 여러 nameserver= 항목을 올바르게 처리하므로 여러 nameserver= 항목이 지정될 때 네트워킹 구성이 올바르게 생성됩니다. (BZ#1882781)
  • 이전 버전에서는 스택 오버플로 재귀 호출로 인해 노드 프로세스에서 세그먼트 오류가 발생했습니다. 이러한 논리 오류는 더 이상 세그먼트 결함이 발생하지 않도록 수정되었습니다. (BZ#1884739)
  • 이전 버전에서는 네트워크 관련 서비스 장치가 엄격하게 정렬되지 않았습니다. 이로 인해 -copy-network를 사용하여 복사된 네트워크 구성이 설치된 시스템에 처음으로 재부팅할 때 적용되지 않은 경우가 있었습니다. 관련 서비스 장치의 순서가 수정되어 이제 첫 번째 재부팅 시 항상 적용됩니다. (BZ#1895979)
  • 이전 버전에서는 coreos-installer 명령을 실행하여 s390x에서 유효한 DASD 라벨을 확인하기 위해 fdasd를 호출하면 udev가 DASD 장치를 다시 프로브하여 udev가 여전히 장치에 액세스하고 있기 때문에 DASD 형식이 실패했습니다. 이제 DASD 레이블을 확인한 후 coreos-installer는 udev가 DASD 처리를 완료할 때까지 대기하고 DASD 포맷이 성공적으로 실행됩니다. (BZ#1900699)
  • 이전 버전에서는 모든 인터페이스와 일치하는 단일 NetworkManager 연결이 기본적으로 생성되었기 때문에 DHCP를 사용하는 경우 NetworkManager에서 연결 설정을 쿼리하고 수정하는 것이 혼동될 수 있었습니다. DHCP를 사용할 때 NetworkManager가 기본적으로 각 인터페이스에 대해 별도의 연결을 생성하도록 사용자 환경이 개선되었습니다. (BZ#1901517)
  • 이전 버전에서는 실제 root로 전환하기 전에 initrd에서 네트워크 인터페이스를 올바르게 종료하지 못하면 VLAN 인터페이스에 고정 IP 할당이 실제 루트에서 제대로 활성화되지 않을 수 있었습니다. 이번 수정에서는 initrd에서 네트워크 인터페이스가 손상된 방법을 변경하여 VLAN 인터페이스에 고정 IP 할당이 실제 루트에서 성공적으로 활성화되도록 합니다. (BZ#1902584)
  • 이전 버전에서는 DHCP 작업에 대해 dhclient 작업을 사용하도록 RHCOS를 구성한 경우 initramfs의 NetworkManager 사용으로 전환할 때 dhclient 바이너리가 RHCOS에서 제거되었기 때문에 DHCP 주소를 제대로 얻을 수 없는 시스템이 남아 있었습니다. 이제 RHCOS 시스템이 dhclient를 사용하여 DHCP 작업을 성공적으로 수행할 수 있도록 dhsclient 바이너리가 RHCOS에 내장되어 있습니다. (BZ#1908462)
  • 이전 버전에서는 iSCSI 이니시에이터 이름을 다시 생성한 서비스 장치가 처음 부팅에서만 작동했기 때문에 업그레이드된 노드는 고유하게 생성된 이니시에이터 이름을 수신하지 못했습니다. 이번 수정으로 모든 부팅에서 서비스 장치가 실행되므로 업그레이드된 노드가 아직 존재하지 않는 경우 생성되는 이니시에이터 이름을 수신할 수 있습니다. (BZ#1908830)
  • 이전 버전에서는 /etc/mke2fs.conf가 없으면 mkfs.ext4가 실패한 경우 Ignition으로 ext4 파일 시스템을 생성할 수 없었습니다. 이번 수정을 통해 /etc/mke2fs.conf가 initramfs에 추가되어 Ignition이 ext4 파일 시스템을 성공적으로 생성할 수 있습니다. (BZ#1916382)

라우팅

  • 이전 버전에서는 25일을 초과하는 값을 가진 경로에서 haproxy.router.openshift.io/timeout 주석을 설정할 수 있었습니다. 25일보다 초과된 값 때문에 Ingress 컨트롤러에 문제가 발생했습니다. 이번 버그 수정을 통해 시간 초과에 대한 상한 값이 25일로 설정됩니다. (BZ#1861383)
  • 이전 버전에서는 DNS가 프로비저닝되지 않았거나 필요한 로드 밸런서가 준비되지 않은 경우에도 Ingress 컨트롤러에서 사용 가능(Available)한 상태를 보고했습니다. 이번 버그 수정을 통해 DNS가 프로비저닝된 상태이고 Ingress 컨트롤러가 사용 가능한 것으로 보고되기 전에 로드 밸런서가 준비되었는지 확인하기 위해 Ingress Operator에 검증을 추가합니다. (BZ#1870373)
  • 이전 버전에서는 오타 오류를 입력하여 Ingress 컨트롤러의 기본 인증서를 존재하지 않는 시크릿으로 설정할 수 있었습니다. 이번 버그 수정을 통해 기본 인증서를 변경하기 전에 시크릿이 존재하는지 확인하기 위한 검사가 추가되었습니다. (BZ#1887441)
  • 이전에는 이름이 63자 이상인 경로를 생성할 수 있었습니다. 그러나 경로가 생성되면 검증에 실패했습니다. 이번 버그 수정을 통해 경로가 생성될 때 검증이 추가됩니다. (BZ#1896977)

스토리지

  • 이전 버전에서는 승인 플러그인이 제대로 설정되어 있지 않은 경우에도 장애 조치 도메인 및 리전 레이블을 추가하여 구성에 빈 리전이 있는 OpenStack 클러스터에서 정적 프로비저닝 PV(영구 볼륨)를 사용하는 pod가 시작되지 않았습니다. 이번 수정을 통해 유효한 리전 및 장애 도메인이 포함된 경우에만 테이블이 PV에 추가되므로 정적으로 프로비저닝된 PV를 사용하는 pod는 빈 리전 또는 장애 도메인으로 구성된 OpenStack 클러스터에서 동적으로 프로비저닝된 PV와 동일하게 작동합니다. (BZ#1877681)
  • 이전 버전에서는 LocalVolumeDiscoveryResult 개체가 웹 콘솔에 표시되어 이러한 개체를 수동으로 정의할 수 있었습니다. 이번 수정에서는 LocalVolumeDiscoveryResult유형이 내부 개체로 플래그가 지정되고 더 이상 웹 콘솔에 표시되지 않습니다. 로컬 디스크를 표시하려면 Compute → Nodes → Select Nodes → Disks로 이동합니다. (BZ#1886973)
  • 이전 버전에서는 인증 정보가 필요한 스냅샷을 생성할 때 VolumeSnapshotClass CRD가 이미 삭제된 경우 스냅샷을 강제로 삭제할 수 없었습니다. 이제 VolumeSnapshotClass CRD를 사용하는 대신 VolumeSnapshotContent CRD에서 인증 정보를 가져와서 인증 정보를 사용하는 볼륨 스냅샷 및 볼륨 스냅샷 콘텐츠를 삭제할 수 있습니다. (BZ#1893739)
  • 이전에는 Kubernetes FibreChannel (FC) 볼륨 플러그인이 삭제하기 전에 멀티패스 장치를 제대로 플러시하지 않았기 때문에 드문 경우, Pod를 삭제하는 동안 멀티패스 FC 장치의 파일 시스템이 손상되었습니다. 이제 Kubernetes에서 FC 멀티패스 장치를 삭제하기 전에 데이터를 플러시하여 파일 시스템 손상을 방지합니다. (BZ#1903346)

스케일링

  • 이전 버전에서는 하이퍼 스레딩을 설정하는 nosmt 추가 커널 인수가 OpenShift Container Platform에서 사용되는 방법에 대해 설명되지 않았습니다. 하이퍼 스레딩을 비활성화하려면 하드웨어 및 토폴로지에 적합한 성능 프로필을 생성한 다음 nosmt를 추가 커널 인수로 설정합니다.

    자세한 내용은 짧은 대기 시간과 실시간 애플리케이션의 하이퍼 스레딩 정보를 참조하십시오.