Red Hat OpenShift에서 NGINX Ingress Operator 시작하기

NGINX | 2020년 4월 30일

당사는 Red Hat과의 파트너십을 통해 OpenShift에서 DevOps 호환 서비스를 제공하기 위한 고성능의 확장 가능한 장기 솔루션이 필요한 엔터프라이즈 사용자를 지원하는 데 지속적으로 주력하고 있습니다. OpenShift용 NGINX Ingress Operator는 OpenShift 환경에서 기본 라우터와 함께 Kubernetes용 NGINX Plus Ingress Controller를 배포할 수 있도록 지원 및 인증된 메커니즘으로, 클릭 방식의 설치와 자동 업그레이드를 제공합니다. Operator Lifecycle Manager(OLM)를 활용하여 NGINX Ingress Operator를 설치, 업그레이드 및 구성할 수 있습니다.

기본 라우터와 함께 NGINX Plus Ingress Controller를 사용해야 하는 이유가 궁금하신가요? 양사의 파트너십을 통해 안전하고 확장 가능하며 지원이 보장되는 애플리케이션 제공을 실현하는 방법을 Red Hat + NGINX의 가치 블로그에서 알아보세요.

이 단계별 가이드에서는 NGINX Ingress Operator를 시작하는 데 필요한 모든 정보를 제공합니다. 시작하기 전에 OpenShift 4.3 이상을 실행하는 OpenShift 클러스터 환경에 대한 관리자 액세스 권한이 있는지 확인하세요.

Operator 설치

다음은 NGINX Ingress Operator 설치 방법을 보여주는 동영상이며, 이어서 스크린샷이 포함된 요약 설명을 제공합니다.

OpenShift 콘솔에서 NGINX Ingress Operator를 설치합니다.

  1. 관리자 권한으로 OpenShift 콘솔에 로그인합니다.
  2. 왼쪽 탐색 열에서 Operators를 클릭한 다음 OperatorHub를 클릭합니다. 검색 상자에 nginx를 입력하고 표시되는 Nginx Ingress Operator 상자를 클릭합니다.
  3. 제품 정보를 검토한 후, 설치 버튼을 클릭합니다.
  4. 열리는 Operator 서브스크립션 생성 페이지에서 Operator를 설치할 클러스터 네임스페이스를 지정합니다(이 예에서는 nginx-ingress). 또한 실행 중인 Operator 인스턴스가 관리자의 수동 승인 없이 자동으로 업데이트되도록 자동 승인 옵션 아래의 라디오 버튼을 클릭합니다. 승인 전략 그런 다음 구독 버튼을 클릭합니다.
  5. 설치가 완료되면 터미널에서 다음 명령을 실행하여 Operator가 실행 중인지 확인합니다:
# oc get pods –n nginx-ingressNAME                                     READY   STATUS    RESTARTS   AGE
nginx-ingress-operator-dd546d869-xxxxx   1/1     Running   0          7m29s
  1. 왼쪽 탐색 열에서 설치된 Operator를 클릭합니다. 페이지가 열리면 제공된 API 열에서 NginxIngressController 링크를 클릭합니다. NginxIngressController는 Operator가 OpenShift 클러스터에 NGINX Plus Ingress Controller를 배포하는 데 사용하는 사용자 정의 리소스입니다.
  2. 열린 페이지의 텍스트 필드에 다음 예시와 같은 매니페스트를 붙여넣고, Create 버튼을 클릭하여 Kubernetes용 NGINX Plus Ingress Controller를 배포합니다. 여기서는 TLS 인증서와 키가 포함된 Secret을 defaultSecret 및 wildcardTLS 필드에 포함한다는 점에 유의하세요. 이렇게 하면 Ingress 정책에 Secret을 포함하지 않고도 TLS 종료 및 패스스루를 사용할 수 있습니다. Kubernetes용 NGINX Plus Ingress Controller를 구성할 때 설정할 수 있는 다양한 옵션은 GitHub 리포지토리에 나와 있습니다.
apiVersion: k8s.nginx.org/v1alpha1kind: NginxIngressController
metadata:
  name: my-nginx-ingress-controller
  namespace: nginx-ingress
spec:
  enableCRDs: true
  image:
    pullPolicy: Always
    repository: registry.hub.docker.com/nginx/nginx-ingress
    tag: edge
  nginxPlus: false
  serviceType: LoadBalancer
  type: deployment
  replicas: 2
  defaultSecret: nginx-ingress/default-server-secret
  wildcardTLS: default/app-secret
  configMapData:
    error-log-level: debug
  enableTLSPassthrough: true
  globalConfiguration: nginx-ingress/nginx-configuration
  1. 배포를 확인하려면 터미널에서 다음 명령을 실행합니다. 출력에 표시된 것처럼 이전 단계에서 사용한 매니페스트는 NGINX Plus Ingress Controller 복제본 두 개를 배포하고 LoadBalancer 서비스로 노출했습니다. (가독성을 위해 get 명령의 출력은 여러 줄로 나누어 표시했습니다.)
# oc get pods -n nginx-ingressNAME                                          READY  STATUS   RESTARTS  AGE
my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
nginx-ingress-operator-dd546d869-xxxxx        1/1    Running  0         56m

# oc get svc –n nginx-ingress
my-nginx-ingress-controller      LoadBalancer   172.xx.48.254    <pending>  ...   
nginx-ingress-operator-metrics   ClusterIP      172.xx.209.190   <none>     ...   

    ... 80:32028/TCP,443:31973/TCP   10m
    ... 80:32028/TCP,443:31973/TCP   10m
  1. 다음 명령을 실행하여 NGINX Plus Ingress Controller가 요청에 응답하는지 확인합니다. public_IP_address에는 NGINX Plus Ingress Controller를 노출하는 LoadBalancer 서비스의 외부 IP 주소를 입력합니다. 이 시점에는 명령이 404 Not Found를 반환합니다. 이는 백엔드 Pod로 트래픽을 라우팅할 Ingress 리소스를 아직 구성하고 배포하지 않았기 때문입니다. 자세한 내용은 설명서를 참조하세요.
# curl public_IP_address <html> 
<head><title>404 Not Found</title></head> 
<body bgcolor="white"> 
<center><h1>404 Not Found</h1></center> 
<hr><center>nginx/1.13.4</center> 
</body> 
</html>
  1. 최종 사용자는 NginxIngressController 리소스의 매니페스트를 여러 개 제출할 수 있으며, 각 매니페스트마다 별도의 배포가 생성됩니다. 또한 Operator는 서로 다른 네임스페이스에 걸친 배포도 지원합니다. 네임스페이스는 매니페스트의 metadata 섹션에서 지정할 수 있습니다.

다음 단계

NGINX Ingress Operator는 NGINX Plus Ingress Controller 배포를 관리하는 데 도움이 되며, 특히 다음과 같은 기능을 제공합니다:

  • 구성 – 몇 가지 입력 매개변수와 하나의 매니페스트만으로 기본 배포를 시작합니다
  • 확장 – 복제본을 원활하게 추가하고 제거
  • 업그레이드 – 다운타임 없이 롤링 업데이트 활용
  • 제거 – 모든 Operator 및 Kubernetes Ingress Controller 객체가 올바르고 안전하게 제거되도록 합니다

이제 NGINX Plus Ingress Controller를 배포하여 사용할 준비가 되었으므로, OpenShift에서 NGINX Plus의 고급 기능을 활용하려면 설명서와 GitHub 리포지토리를 참조하세요.

아직 고객이 아니신가요? NGINX Plus와 Ingress Controller를 사용해 보려면 지금 30일 무료 체험을 시작하거나, 사용 사례에 대해 상담하려면 문의해 주세요.

Red Hat + NGINX의 가치

Red Hat과 NGINX 솔루션을 함께 배포할 때 얻을 수 있는 세 가지 이점인 애플리케이션 보안 강화, 비즈니스 확장, 비전 실현 지원을 보여 주는 그래픽


공유
태그: F5 NGINX, 2020, Tech

작성자 소개

관련 블로그 게시물

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
NGINX | 2023. 11. 30.

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric

이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
NGINX | 2023. 03. 23.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법

앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
NGINX | 2021. 09. 27.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션

개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX | 2021. 07. 06.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법

NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX | 2021. 06. 30.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리

NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
NGINX | 2015. 03. 25.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유

Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.