7.2. 컨테이너 레지스트리 인증서 관리
OpenShift Container Platform 내부 레지스트리는 포드로 생성됩니다. 그러나 원하는 경우 외부 레지스트리에서 컨테이너를 가져올 수 있습니다. 기본적으로 레지스트리는 TCP 포트 5000에서 청취합니다. 레지스트리에서 TLS를 통해 노출된 이미지를 보호하거나 트래픽을 암호화하지 않고 레지스트리를 실행하는 옵션이 있습니다.
Docker에서는 .crt
파일을 CA 인증서로 해석하고 .cert
파일을 클라이언트 인증서로 해석합니다. 모든 CA 확장자는 .crt
여야 합니다.
7.2.1. 외부 레지스트리용 인증 기관 인증서 설치
외부 레지스트리와 함께 OpenShift Container Platform을 사용하려면 레지스트리에서 이미지를 가져올 수 있는 모든 노드의 레지스트리 인증 기관(CA) 인증서를 신뢰해야 합니다.
Docker 버전에 따라 컨테이너 이미지 레지스트리를 신뢰하는 프로세스가 다릅니다. Docker 루트 인증 기관의 최신 버전이 시스템 기본값과 병합됩니다. docker
버전 1.13 이전에서는 다른 사용자 정의 루트 인증서가 없을 때만 시스템 기본 인증서를 사용합니다.
프로시저
CA 인증서를
/etc/pki/ca-trust/source/anchors/
에 복사하십시오.$ sudo cp myregistry.example.com.crt /etc/pki/ca-trust/source/anchors/
CA 인증서를 추출하여 신뢰할 수 있는 인증 기관 목록에 추가하십시오.
$ sudo update-ca-trust extract
openssl
명령을 사용하여 SSL 인증서를 확인하십시오.$ openssl verify myregistry.example.com.crt myregistry.example.com.crt: OK
인증서가 있고 신뢰 관계가 업데이트되면
docker
서비스를 다시 시작하여 새 인증서가 올바르게 설정되었는지 확인하십시오.$ sudo systemctl restart docker.service
Docker 버전 1.13 이전에서는 기관 인증서를 신뢰하기 위해 다음 추가 단계를 수행하십시오.
모든 노드에서
/etc/docker/certs.d
에 새 디렉터리를 작성하십시오. 여기서 디렉터리 이름은 컨테이너 이미지 레지스트리의 호스트 이름입니다.$ sudo mkdir -p /etc/docker/certs.d/myregistry.example.com
참고포트 번호 없이는 컨테이너 이미지 레지스트리에 액세스할 수 없는 경우를 제외하고, 포트 번호는 필요하지 않습니다. 원래 Docker 레지스트리에 포트를 지정하는 방법은
myregistry.example.com:port
입니다.IP 주소를 통해 컨테이너 이미지 레지스트리에 액세스하려면 디렉터리 이름이 컨테이너 이미지 레지스트리의 IP인 모든 노드에서
/etc/docker/certs.d
내에 새 디렉터리를 생성해야 합니다.$ sudo mkdir -p /etc/docker/certs.d/10.10.10.10
이전 단계에서 새로 생성된 Docker 디렉터리에 CA 인증서를 복사하십시오.
$ sudo cp myregistry.example.com.crt \ /etc/docker/certs.d/myregistry.example.com/ca.crt $ sudo cp myregistry.example.com.crt /etc/docker/certs.d/10.10.10.10/ca.crt
인증서가 복사되면
docker
서비스를 다시 시작하여 새 인증서가 사용되는지 확인하십시오.$ sudo systemctl restart docker.service