NGINX Ingress Controller Documentation

Docker Secret 구성에서 NGINX IC Plus JWT 토큰 사용

이 문서에서는 NGINX Ingress Controller 구독 JWT 토큰을 사용하여 Kubernetes 클러스터의 Docker Registry에서 NGINX Plus Ingress Controller 이미지를 사용하는 방법을 설명합니다.

NGINX Plus 구독 인증서 및 Key는 Docker Registry에서 작동하지 않습니다. 다른 방법을 사용하여 이미지를 가져올 수도 있습니다.

  • Docker를 사용하여 NGINX Plus로 Ingress Controller 이미지를 가져오고 여기의 지침에 따라 개인 Private Registry로 Push 할 수 있습니다.
  • 이 Repository의 소스 코드와 NGINX Plus 구독 인증서 및 Key를 사용하여 Ingress Controller 이미지를 Build 하는 방법에 대한 정보는 여기를 참조하십시오.
  • NGINX OSS 기반 NGINX Ingress Controller의 경우 DockerHub를 통해 이미지를 제공합니다.

목차

1. 필수 구성 요소
2. Docker Config Secret에서 JWT 토큰 사용

1. 필수 구성 요소

  • NGINX Ingress Controller의 경우 NGINX Ingress Controller 구독이 있어야 합니다. NGINX STORE에서 NGINX Plus Ingress Controller(인스턴스 당) JWT 액세스 토큰을 다운로드하십시오.
  • Docker Registry API를 사용하여 사용 가능한 이미지 태그를 나열하려면 NGINX STORE에서 NGINX Plus Ingress Controller(인스턴스 당) 인증서(nginx-repo.crt)와 Key(nginx-repo.key)도 다운로드해야 합니다.

2. Docker Config Secret에서 JWT 토큰 사용

1. JWT 토큰을 사용자 이름으로 사용하고 비밀번호에 대해 none을 사용하여 클러스터에 docker-registry Secret을 만듭니다. Docker 서버의 이름은 private-registry.nginx.com입니다. 선택적으로 Secret을 Namespace로 지정합니다.

kubectl create secret docker-registry regcred --docker-server=private-registry.nginx.com --docker-username=<JWT Token> --docker-password=none [-n nginx-ingress]

2. 다음을 실행하여 생성된 Secret의 세부 정보를 확인합니다.

kubectl get secret regcred --output=yaml

3. 이제 이 Secret을 배포 사양에 추가하거나 서비스 계정에 추가하여 지정된 SA 사양의 모든 배포에 적용할 수 있습니다. 자세한 내용은 여기여기에서 공식 문서를 참조하십시오.

4. 선택한 이미지 경로에 배포 사양을 업데이트합니다. 여기에 나열된 사용 가능한 이미지에서 이미지를 선택하십시오.

5. Docker Registry API의 인증서와 Key를 사용하여 Registry에 사용 가능한 이미지 태그를 나열할 수 있습니다.

$ curl https://private-registry.nginx.com/v2/nginx-ic/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
{
 "name": "nginx-ic/nginx-plus-ingress",
 "tags": [
     "2.4.1-alpine",
     "2.4.1-ubi",
     "2.4.1"
 ]
 }

$ curl https://private-registry.nginx.com/v2/nginx-ic-nap/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
{
 "name": "nginx-ic-nap/nginx-plus-ingress",
 "tags": [
     "2.4.1-ubi",
     "2.4.1"
 ]
 }

$ curl https://private-registry.nginx.com/v2/nginx-ic-dos/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
{
 "name": "nginx-ic-dos/nginx-plus-ingress",
 "tags": [
     "2.4.1-ubi",
     "2.4.1"
 ]
 }