5.4. OpenShift 클러스터 내부에서 서비스 레지스트리에 대한 HTTPS 연결 구성
다음 절차에서는 OpenShift 클러스터 내부에서 HTTPS 연결에 사용할 포트를 노출하도록 서비스 레지스트리 배포를 구성하는 방법을 보여줍니다.
이러한 종류의 연결은 클러스터 외부에서 직접 사용할 수 없습니다. 라우팅은 호스트 이름을 기반으로 하며, HTTPS 연결 시 인코딩됩니다. 따라서 엣지 종료 또는 기타 구성이 여전히 필요합니다. 5.5절. “OpenShift 클러스터 외부에서 서비스 레지스트리에 대한 HTTPS 연결 구성”을 참조하십시오.
사전 요구 사항
- Service Registry Operator가 이미 설치되어 있어야 합니다.
절차
자체 서명된 인증서가 있는
키 저장소를
생성합니다. 자체 인증서를 사용하는 경우 이 단계를 건너뛸 수 있습니다.keytool -genkey -trustcacerts -keyalg RSA -keystore registry-keystore.jks -storepass password
keytool -genkey -trustcacerts -keyalg RSA -keystore registry-keystore.jks -storepass password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소 및 키 저장소 암호를 저장할 새 시크릿을 생성합니다.
- OpenShift 웹 콘솔의 왼쪽 탐색 메뉴에서 워크로드 > 시크릿 > 키/값 시크릿 만들기를 클릭합니다.
다음 값을 사용합니다.
이름:registry-keystore
Key 1:keystore.jks
Value 1: registry-keystore.jks (uploaded file)
Key 2:password
Value 2: password참고java.io.IOException: Invalid keystore 형식이
표시되면 바이너리 파일의 업로드가 제대로 작동하지 않았습니다. 또는cat registry-keystore.jks | base64 -w0 > data.txt
를 사용하여 파일을 base64 문자열로 인코딩하여 인코딩된 파일을 수동으로 추가합니다.
서비스 레지스트리 인스턴스의 배포 리소스를 편집합니다. Service Registry Operator의 상태 필드에서 올바른 이름을 찾을 수 있습니다.
키 저장소 보안을 볼륨으로 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨 마운트를 추가합니다.
volumeMounts: - name: registry-keystore-secret-volume mountPath: /etc/registry-keystore readOnly: true
volumeMounts: - name: registry-keystore-secret-volume mountPath: /etc/registry-keystore readOnly: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow JAVA_OPTIONS
및KEYSTORE_PASSWORD
환경 변수를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고문자열 보간을 사용할 때는 순서가 중요합니다.
HTTPS 포트를 활성화합니다.
ports: - containerPort: 8080 protocol: TCP - containerPort: 8443 protocol: TCP
ports: - containerPort: 8080 protocol: TCP - containerPort: 8443 protocol: TCP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서비스 레지스트리 인스턴스의 서비스 리소스를 편집합니다. Service Registry Operator의 상태 필드에서 올바른 이름을 찾을 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 연결이 작동하는지 확인합니다.
SSH를 사용하여 클러스터의 Pod에 연결합니다(서비스 레지스트리 Pod를 사용할 수 있음).
oc rsh -n default example-apicurioregistry-deployment-vx28s-4-lmtqb
oc rsh -n default example-apicurioregistry-deployment-vx28s-4-lmtqb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 리소스에서 서비스 레지스트리 포드의 클러스터 IP를 찾습니다(웹 콘솔의 위치 열 참조). 이후 테스트 요청을 실행합니다(자체 서명 인증서를 사용하므로 비보안 플래그가 필요합니다.
curl -k https://172.30.209.198:8443/health [...]
curl -k https://172.30.209.198:8443/health [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow