1.9. 확인된 문제
OpenShift Container Platform 4.1에서는 익명 사용자가 검색 엔드 포인트에 액세스할 수 있었습니다. 이후 릴리스에서는 일부 검색 끝점이 통합된 API 서버로 전달되기 때문에 보안 악용에 대한 가능성을 줄이기 위해 이 액세스를 취소했습니다. 그러나 인증되지 않은 액세스는 기존 사용 사례가 손상되지 않도록 업그레이드된 클러스터에 보존됩니다.
OpenShift Container Platform 4.1에서 4.8로 업그레이드된 클러스터의 클러스터 관리자인 경우 인증되지 않은 액세스를 취소하거나 계속 허용할 수 있습니다. 특별히 필요한 경우가 아니면 인증되지 않은 액세스를 취소하는 것이 좋습니다. 인증되지 않은 액세스를 계속 허용하는 경우 이에 따라 보안 위험이 증가될 수 있다는 점에 유의하십시오.
주의인증되지 않은 액세스에 의존하는 애플리케이션이있는 경우 인증되지 않은 액세스를 취소하면 HTTP
403
오류가 발생할 수 있습니다.다음 스크립트를 사용하여 감지 끝점에 대한 인증되지 않은 액세스를 취소하십시오.
## Snippet to remove unauthenticated group from all the cluster role bindings $ for clusterrolebinding in cluster-status-binding discovery system:basic-user system:discovery system:openshift:discovery ; do ### Find the index of unauthenticated group in list of subjects index=$(oc get clusterrolebinding ${clusterrolebinding} -o json | jq 'select(.subjects!=null) | .subjects | map(.name=="system:unauthenticated") | index(true)'); ### Remove the element at index from subjects array oc patch clusterrolebinding ${clusterrolebinding} --type=json --patch "[{'op': 'remove','path': '/subjects/$index'}]"; done
이 스크립트는 인증되지 않은 주제를 다음 클러스터 역할 바인딩에서 제거합니다.
-
cluster-status-binding
-
discovery
-
system:basic-user
-
system:discovery
-
system:openshift:discovery
-
-
명령이 주석 이름과 값 간의 구분 기호로 등호(
=
)를 포함하는 LDAP 그룹 이름에 대해oc annotate
명령은 작동하지 않습니다. 이 문제를 해결하려면oc patch
또는oc edit
를 사용하여 주석을 추가합니다. (BZ#1917280) 사용자 프로비저닝 인프라를 사용하여 vSphere의 가상 머신의 전원을 켜는 경우 노드를 확장하는 프로세스가 예상대로 작동하지 않을 수 있습니다. 하이퍼바이저 구성에서 알려진 문제로 인해 시스템이 하이퍼바이저 내에 생성되지만 전원이 켜지지 않습니다. 머신 세트를 확장한 후 노드가
Provisioning
상태에 있는 것으로 표시되면 vSphere 인스턴스 자체에서 가상 머신의 상태를 조사할 수 있습니다. VMware 명령govc tasks
및govc events
이벤트를 사용하여 가상 시스템의 상태를 확인합니다. 다음과 유사한 오류 메시지가 있는지 확인합니다.Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize(8192).
이 VMware KBase 문서의 지침에 따라 문제를 해결할 수 있습니다. 자세한 내용은 Red Hat Knowledgebase 솔루션 [UPI vSphere] 노드 확장이 예상대로 작동하지 않음을 참조하십시오. (BZ#1918383)
- ECKD 유형 DASD를 VirtIO 블록 장치로 사용하면 IBM Z에서 RHEL KVM 설치에 RHCOS를 설치 실패합니다. (BZ#1960485)
-
OVN(Open Virtual Network) 버그로 인해 Octavia 로드 밸런서에 지속적으로 연결 문제가 발생합니다. Octavia 로드 밸런서가 생성되면 OVN을 일부 Neutron 서브넷에 연결하지 못할 수 있습니다. 이러한 로드 밸런서는 일부 Neutron 서브넷에 연결할 수 없습니다. 이 문제는 Kuryr가 설정될 때 각 OpenShift 네임스페이스에 대해 임의로 생성되는 Neutron 서브넷에 영향을 미칩니다. 결과적으로 이 문제가 발생하면 OpenShift
Service
오브젝트를 구현하는 로드 밸런서가 문제의 영향을 받는 OpenShift 네임스페이스에서 연결할 수 없습니다. 이 버그로 인해 버그가 수정될 때까지 OVN 및 OVN Octavia가 구성된 RHOSP(Red Hat OpenStack Platform) 16.1에서는 Kuryr SDN을 사용하는 OpenShift Container Platform 4.8 배포가 권장되지 않습니다. (BZ#1937392) -
Console Operator는 콘솔 경로(
console
또는downloads
) 중 하나에 대해componentRoutes
조건으로Ingress
리소스를 올바르게 업데이트하지 않습니다. (BZ#1954148) -
OVN-Kubernetes 네트워크 공급자는
NodePort
- 및LoadBalancer
-유형 서비스에 대한externalTrafficPolicy
기능을 지원하지 않습니다.service.spec.externalTrafficPolicy
필드는 서비스의 트래픽이 노드-로컬 또는 클러스터 전체 엔드포인트로 라우팅되는지 여부를 결정합니다. 현재 이러한 트래픽은 기본적으로 클러스터 전체 엔드포인트로 라우팅되며 노드 로컬 엔드포인트로 트래픽을 제한할 수 없습니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. (BZ#1903408) - 현재 Kubernetes 포트 충돌 문제로 인해 Pod가 재배포된 후에도 Pod 간 통신이 중단될 수 있습니다. 자세한 내용과 해결 방법은 Red Hat 지식 베이스 솔루션 Port collisions between pod and cluster IPs on OpenShift 4 with OVN-Kubernetes에서 참조하십시오. (BZ#1939676, BZ#1939045)
- OVN-Kubernetes 네트워크 공급자를 사용하고 컴퓨팅 노드가 RHEL 7.9를 실행하는 클러스터의 경우 OpenShift Container Platform 4.7에서 OpenShift Container Platform 4.8으로 업그레이드가 BZ#1976232에 의해 차단됩니다. 릴리즈 4.8로 업그레이드하려면 이 버그의 수정 사항이 포함된 4.8 패치를 기다려야 합니다. (BZ#1976232)
-
OVN-Kubernetes 네트워크 공급자를 사용하고 OpenShift Container Platform 4.7에서 OpenShift Container Platform 4.8로 업그레이드하는 클러스터의 경우 OVN-Kubernetes의 버그로 인해 pod IP 주소가 오래될 수 있습니다. 그 버그는 거의 경험되지 않은 경합 조건입니다. 결과적으로 4.8 릴리스로 업그레이드하는 동안 노드가 드레이닝되지 않고 일부 Operator에서
Degraded
상태를 보고합니다. 해결 방법으로CrashLoopBackOff
상태에 있고 업그레이드를 완료하지 않은 Pod를 식별합니다.oc delete <pod-name>
명령을 사용하여 각 pod를 삭제합니다. (BZ#1974403) -
kubeletconfig
리소스의tlsSecurityProfile
필드에 대한 설명 (예:oc explain
명령을 사용하는 경우)은 TLS 보안 프로필에 대한 올바른 암호를 나열하지 않습니다. 이 문제를 해결하려면 영향을 받는 노드의/etc/kubernetes/kubelet.conf
파일에서 암호 목록을 확인하십시오. (BZ#1971899) -
단일 노드에서 CNF 테스트를 정규 모드로 실행할 때 클러스터 준비 여부를 파악하는 논리에 세부 정보가 누락되어 있습니다. 특히 SR-IOV 네트워크를 생성하면 1분 이상의 시간이 경과할 때까지 네트워크 연결 정의가 생성되지 않습니다. 모든 DPDK 테스트는 계단식으로 실패합니다.
-ginkgo.skip
매개변수를 사용하여 단일 노드에서 설치에 대해 실행할 때 DPDK 기능을 건너뛰는 일반 모드에서 CNF 테스트를 실행합니다. 검색 모드에서 CNF 테스트를 실행하여 단일 노드에 대한 설치에 대해 테스트를 실행합니다. (BZ#1970409) -
현재 CNF-tests는 SR-IOV 및 DPDK 테스트용 MLX NIC로 보안 부팅을 지원하지 않습니다.
-ginkgo.skip
매개변수를 사용하여 보안 부팅이 활성화된 환경에 대해 실행할 때 CNF 테스트를 실행할 수 있습니다. 검색 모드에서 실행하면 MLX 카드로 보안 부팅이 활성화된 환경에 대해 테스트를 실행하는 것이 좋습니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. (BZ#1975708) ArgoCD
Operator를 등록하고 ArgoCD 및 AppProject가 시작되면 이미지가 더 제한적인 OpenShift Container Platform 환경에서 작동하지 않기 때문에guestbook
이라는 예제 애플리케이션을 시작할 수 없습니다. 임시 해결 방법으로 다음 예제를 배포하여ArgoCD
Operator가 제대로 작동하는지 확인할 수 있습니다.PROJ=younamespace cat > $PROJ-app.yaml <<EOF apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: simple-restricted-webserver namespace: $PROJ spec: destination: namespace: $PROJ server: https://kubernetes.default.svc project: default source: path: basic-nginx repoURL: 'https://github.com/opdev/argocd-example-restricted-apps.git' targetRevision: HEAD EOF oc create -f $PROJ-app.yaml
자세한 내용은 BZ#1812212을 참조하십시오.
- 사용자가 여러 탭에 콘솔을 열고 있는 경우 개발자 화면의 일부 사이드바 링크가 프로젝트에 직접 연결되지 않으며 선택한 프로젝트에서 예기치 않은 변경 사항이 발생합니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. (BZ#1839101)
pathType을 사용하는 경우 Ingress를 사용하여 패스스루 경로를 생성할 수 없습니다. prefix
. 대신pathType
을ImplementationSpecific
으로 설정하고path
를''
로 설정하여 패스스루 경로를 생성할 수 있습니다.Ingress YAML 파일 샘플
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress7 namespace: test-ingress annotations: route.openshift.io/termination: passthrough spec: rules: - host: <ingress-psql-example-test-ingress.apps> http: paths: - path: '' pathType: ImplementationSpecific backend: service: name: <ingress-psql-example> port: number: 8080
자세한 내용은 BZ#1878685을 참조하십시오.
- 현재 검색 페이지에서 이름 필터를 적용하거나 제거한 후 Pipeline 리소스 테이블이 즉시 업데이트되지 않습니다. 그러나 페이지를 새로 고치거나 Pipeline을 닫고 Pipelines 섹션을 확장하면 이름 필터가 적용됩니다. Name 필터를 삭제할 때도 동일한 동작이 표시됩니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. (BZ#1901207).
-
이제 문서에는
Provisioning
사용자 정의 리소스의ProvisioningNetworkCIDR
값이 설명되어 있습니다. 이렇게 하면 IPv6 프로비저닝 네트워크가dnsmasq
로 인해 /64 제한값으로 제한됩니다. (BZ#1947293) - 문제 해결을 지원하기 위해 설치 프로그램에서 boostratp 실패에서 수집된 로그에 컨트롤 플레인 및 부트스트랩 호스트의 IP 주소 및 경로가 포함됩니다. (BZ#1956079)
-
자체 서명된 Amazon Commercial Cloud Services 클러스터를 사용하는 경우 내부 이미지 레지스트리에서 가져오거나 푸시할 수 없습니다. 이 문제를 해결하려면
configs.imageregistry/cluster
리소스에spec.disableRedirect
를true
로 설정해야 합니다. 따라서 S3 저장소에서 직접 가져오지 않고 이미지 레지스트리에서 이미지 레이어를 가져올 수 있습니다. (BZ#1924568) - 이전에는 OpenShift Container Platform 웹 콘솔에서 Bitbucket 리포지토리를 사용하여 배포에 생성된 토폴로지 URL에 슬래시 문자가 포함된 분기 이름이 포함된 경우 작동하지 않았습니다. 이는 Bitbucket API (BCLOUD-9969)와 관련된 문제로 인해 발생했습니다. 현재 릴리스에서는 이 문제가 완화되었습니다. 분기 이름에 슬래시가 포함된 경우 토폴로지 URL은 리포지토리의 기본 분기 페이지를 가리킵니다. 이는 향후 OpenShift Container Platform 릴리스에서 제거될 예정입니다. (BZ#1969535).
- RHV(Red Hat Virtualization)에 OCP(OpenShift Container Platform) 버전 4.6을 설치하려면 RHV 버전 4.4가 필요합니다. RHV 4.3에서 이전 버전의 OCP를 실행하는 경우 OCP 버전 4.6으로 업데이트하지 마십시오. Red Hat은 RHV 버전 4.3에서 OCP 버전 4.6 실행을 테스트하지 않았으며 이 조합을 지원하지 않습니다. 테스트된 통합에 대한 자세한 내용은 OpenShift Container Platform 4.x Tested Integrations (x86_x64 용)에서 참조하십시오.
-
operator-sdk pkgman-to-bundle
명령은--build-cmd
플래그를 사용하여 실행하면 오류로 종료됩니다. 자세한 내용은 (BZ#1967369)을 참조하십시오. - 현재 웹 콘솔 퀵스타트 카드의 사전 요구 사항이 목록 대신 단락으로 표시됩니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. (BZ#1905147)
-
OpenShift Container Platform 단일 노드 구성에서 비실시간 커널을 사용할 때보다 실시간 커널(커널-rt)을 사용할 때 Pod 생성 시간이 2배 이상 느립니다. kernel-rt를 사용하는 경우 노드 재부팅 후 복구 시간이 영향을 받기 때문에 생성 속도가 느린 경우 최대 Pod 수에 영향을 미칩니다. kernel-rt를 사용하는 경우
rcupdate.rcu_normal_after_boot=0 커널 인수를 사용하여 부팅하여 영향을 받은 복구 시간을 개선할 수 있습니다.
이 인수에는 실시간 커널 버전kernel-rt-4.18.0-305.16.1.rt7.88.el8_4
이상이 필요합니다. 이 알려진 문제는 OpenShift Container Platform 버전 4.8.15 이상에 적용됩니다. (BZ#1975356) -
OpenShift Container Platform 단일 노드 재부팅 후 모든 Pod가 다시 시작되어 일반 Pod 생성 시간보다 오래 걸립니다. 이 문제는 CNI(컨테이너 네트워크 인터페이스)에서
pod add
이벤트를 충분히 신속하게 처리할 수 없기 때문에 발생합니다.timed out waiting for OVS port binding
이라는 오류 메시지가 표시됩니다. OpenShift Container Platform 단일 노드 인스턴스는 결국 복구되지만 예상보다 느리게 복구됩니다. 이 알려진 문제는 OpenShift Container Platform 버전 4.8.15 이상에 적용됩니다. (BZ#1986216) OpenShift Container Platform 4.8 이전에는 기본 로드 밸런싱 알고리즘이
최소conn
이었습니다. 비 패스스루 경로의 OpenShift Container Platform 4.8.0에서 기본값이임의로
변경되었습니다.임의로
스위칭하면 해당 환경에서 메모리 사용량이 크게 증가하므로 장기 실행 웹 소켓 연결을 사용해야 하는 환경과 호환되지 않습니다. 이 중요한 메모리 사용을 완화하기 위해 기본 로드 밸런싱 알고리즘이 OpenShift Container Platform 4.8에서leastconn
으로 되돌아갔습니다. 메모리 사용량이 많지 않은 솔루션이 있으면 향후 OpenShift Container Platform 릴리스에서 기본값이임의로
변경됩니다.다음 명령을 입력하여 기본 설정을 확인할 수 있습니다.
$ oc get deployment -n openshift-ingress router-default -o yaml | grep -A 2 ROUTER_LOAD_BALANCE_ALGORITHM - name: ROUTER_LOAD_BALANCE_ALGORITHM value: leastconn
random
옵션은 계속 사용할 수 있습니다. 그러나 이 알고리즘 선택으로 이점을 얻는 경로는 다음 명령을 입력하여 경로별로 주석에서 해당 옵션을 명시적으로 설정해야 합니다.$ oc annotate -n <NAMESPACE> route/<ROUTE-NAME> "haproxy.router.openshift.io/balance=random"
-
RHCOS 및 MCO (Machine Config Operator)의 이미지가 OpenShift Container Platform 4.8.z 릴리스에서 이후 4.8.z 릴리스로 업그레이드하는 동안 변경되지 않으면 컨트롤 플레인 노드가 업그레이드를 완료하기 전에 업그레이드가 완료로 표시됩니다. 이렇게 하면 업그레이드가 실제로 완료되기 전에 클러스터에서 작업을 수행하면 업그레이드가 실패할 수 있습니다. 이 문제를 해결하려면 클러스터에서 추가 작업을 수행하기 전에 컨트롤 플레인 노드에서 업데이트가 완료되었는지 확인합니다.
oc get mcp/master
명령을 사용하여 각 풀의 클러스터에서 사용할 수 있는 MCO 관리 노드의 상태를 검토할 수 있습니다. (BZ#2025396) 4.7 OpenShift Container Platform 클러스터에서 4.8로 업그레이드한 후 OpenShift Container Platform 노드의 보조 NIC(네트워크 인터페이스 컨트롤러)를 통해 내부 네트워크에서 외부 네트워크 Pod로의 라우팅 경로가 기본적으로 비활성화됩니다. 이는 4.8부터 시작하는 OVN(Open Virtual Network) 설계에서 공유 게이트웨이가 기본 게이트웨이 모드이기 때문입니다. 해당 라우팅 경로가 필요한 경우 업그레이드 전이나 후에 해결 방법으로
openshift-network-operator
네임스페이스에gateway-mode-config
구성 맵을 생성하여 OVN Gateway 모드를 로컬로 강제 적용합니다.다음 명령을 입력하여
openshift-network-operator
네임스페이스에gateway-mode-config
를 생성합니다.$ cat localGW.yml
apiVersion: v1 kind: ConfigMap metadata: name: gateway-mode-config namespace: openshift-network-operator data: mode: "local" immutable: true
$ oc apply -f localGW.yml
configmap/gateway-mode-config created
추가 지침은 (KCS) 및 (BZ#2089389)를 참조하십시오. 이 설정은 향후 릴리스에서 더 자세히 다룹니다.
- VF(가상 기능)가 이미 존재하는 경우 물리적 기능(PF)에 macvlan을 생성할 수 없습니다. 이 문제는 Intel E810 NIC에 영향을 미칩니다. (BZ#2120585)