26장. 사용자 정의 PKI 구성
웹 콘솔과 같은 일부 플랫폼 구성 요소에서는 통신에 경로를 사용하고, 다른 구성 요소와의 상호 작용을 위해 해당 구성 요소의 인증서를 신뢰해야 합니다. 사용자 정의 PKI(공개 키 인프라)를 사용하는 경우 개인 서명 CA 인증서가 클러스터에서 인식되도록 PKI를 구성해야 합니다.
프록시 API를 활용하면 클러스터 전체에서 신뢰하는 CA 인증서를 추가할 수 있습니다. 이 작업은 설치 중 또는 런타임에 수행해야 합니다.
설치 중 클러스터 전체 프록시를 구성합니다.
install-config.yaml
파일의additionalTrustBundle
설정에 개인 서명 CA 인증서를 정의해야 합니다.설치 프로그램에서 사용자가 정의한 추가 CA 인증서가 포함된
user-ca-bundle
이라는 ConfigMap을 생성합니다. 그러면 CNO(Cluster Network Operator)에서 이러한 CA 인증서를 RHCOS(Red Hat Enterprise Linux CoreOS) 신뢰 번들과 병합하는trusted-ca-bundle
ConfigMap을 생성합니다. 이 ConfigMap은 프록시 오브젝트의trustedCA
필드에서 참조됩니다.-
런타임에 개인 서명 CA 인증서를 포함하도록 기본 프록시 오브젝트를 수정합니다(클러스터의 프록시 사용 워크플로우의 일부). 이를 위해서는 클러스터에서 신뢰해야 하는 개인 서명 CA 인증서가 포함된 ConfigMap을 생성한 다음 개인 서명 인증서의 ConfigMap을 참조하는
trustedCA
를 사용하여 프록시 리소스를 수정해야 합니다.
설치 관리자 구성의 additionalTrustBundle
필드와 프록시 리소스의 trustedCA
필드는 클러스터 전체의 트러스트 번들을 관리하는 데 사용됩니다. additionalTrustBundle
은 설치 시 사용되며, 프록시의 trustedCA
는 런타임에 사용됩니다.
trustedCA
필드는 클러스터 구성 요소에서 사용하는 사용자 정의 인증서와 키 쌍이 포함된 ConfigMap
에 대한 참조입니다.
26.1. 설치 중 클러스터 단위 프록시 구성
프로덕션 환경에서는 인터넷에 대한 직접 액세스를 거부하고 대신 HTTP 또는 HTTPS 프록시를 사용할 수 있습니다. install-config.yaml
파일에서 프록시 설정을 구성하여 프록시가 사용되도록 새 OpenShift Container Platform 클러스터를 구성할 수 있습니다.
사전 요구 사항
-
기존
install-config.yaml
파일이 있습니다. 클러스터에서 액세스해야 하는 사이트를 검토하고 프록시를 바이패스해야 하는지 확인했습니다. 기본적으로 호스팅 클라우드 공급자 API에 대한 호출을 포함하여 모든 클러스터 발신(Egress) 트래픽이 프록시됩니다. 필요한 경우 프록시를 바이패스하기 위해
Proxy
오브젝트의spec.noProxy
필드에 사이트를 추가했습니다.참고Proxy
오브젝트의status.noProxy
필드는 설치 구성에 있는networking.machineNetwork[].cidr
,networking.clusterNetwork[].cidr
,networking.serviceNetwork[]
필드의 값으로 채워집니다.Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure 및 Red Hat OpenStack Platform (RHOSP)에 설치하는 경우
Proxy
오브젝트status.noProxy
필드도 인스턴스 메타데이터 끝점(169.254.169.254
)로 채워집니다.
프로세스
install-config.yaml
파일을 편집하고 프록시 설정을 추가합니다. 예를 들면 다음과 같습니다.apiVersion: v1 baseDomain: my.domain.com proxy: httpProxy: http://<username>:<pswd>@<ip>:<port> 1 httpsProxy: https://<username>:<pswd>@<ip>:<port> 2 noProxy: ec2.<aws_region>.amazonaws.com,elasticloadbalancing.<aws_region>.amazonaws.com,s3.<aws_region>.amazonaws.com 3 additionalTrustBundle: | 4 -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 5
- 1
- 클러스터 외부에서 HTTP 연결을 구축하는 데 사용할 프록시 URL입니다. URL 스키마는
http
여야 합니다. - 2
- 클러스터 외부에서 HTTPS 연결을 구축하는 데 사용할 프록시 URL입니다.
- 3
- 대상 도메인 이름, IP 주소 또는 프록시에서 제외할 기타 네트워크 CIDR로 이루어진 쉼표로 구분된 목록입니다. 하위 도메인과 일치하려면 도메인 앞에
.
을 입력합니다. 예를 들어,.y.com
은x.y.com
과 일치하지만y.com
은 일치하지 않습니다.*
를 사용하여 모든 대상에 대해 프록시를 바이패스합니다. AmazonEC2
,Elastic Load Balancing
및S3
VPC 끝점을 VPC에 추가한 경우 이러한 끝점을noProxy
필드에 추가해야 합니다. - 4
- 이 값을 제공하면 설치 프로그램에서 HTTPS 연결을 프록시하는 데 필요한 추가 CA 인증서가 하나 이상 포함된
openshift-config
네임스페이스에user-ca-bundle
이라는 이름으로 구성 맵을 생성합니다. 그러면 CNO(Cluster Network Operator)에서 이러한 콘텐츠를 RHCOS(Red Hat Enterprise Linux CoreOS) 신뢰 번들과 병합하는trusted-ca-bundle
구성 맵을 생성합니다. 이 구성 맵은Proxy
오브젝트의trustedCA
필드에서 참조됩니다. 프록시의 ID 인증서를 RHCOS 트러스트 번들에 있는 기관에서 서명하지 않은 경우additionalTrustBundle
필드가 있어야 합니다. - 5
- 선택 사항:
trustedCA
필드에서user-ca-bundle
구성 맵을 참조할프록시
오브젝트의 구성을 결정하는 정책입니다. 허용되는 값은Proxyonly
및Always
입니다.http/https
프록시가 구성된 경우에만user-ca-bundle
구성 맵을 참조하려면Proxyonly
를 사용합니다.Always
를 사용하여user-ca-bundle
구성 맵을 항상 참조합니다. 기본값은Proxyonly
입니다.
참고설치 프로그램에서 프록시
adinessEndpoints
필드를 지원하지 않습니다.참고설치 프로그램이 시간 초과되면 설치 프로그램의
wait-for
명령을 사용하여 배포를 다시 시작한 다음 완료합니다. 예를 들면 다음과 같습니다.$ ./openshift-install wait-for install-complete --log-level debug
- 파일을 저장해 놓고 OpenShift Container Platform을 설치할 때 참조하십시오.
제공되는 install-config.yaml
파일의 프록시 설정을 사용하는 cluster
라는 이름의 클러스터 전체 프록시가 설치 프로그램에 의해 생성됩니다. 프록시 설정을 제공하지 않아도 cluster
Proxy
오브젝트는 계속 생성되지만 spec
은 nil이 됩니다.
cluster
라는 Proxy
오브젝트만 지원되며 추가 프록시는 생성할 수 없습니다.