다음을 통해 공유


YARP Kubernetes 인그레스 컨트롤러

소개: 향후 미리 보기

YARP는 Kubernetes 클러스터로 수신되는 HTTP/HTTPS 트래픽을 관리하는 역방향 프록시로 Kubernetes와 통합될 수 있습니다. 현재 모듈은 별도의 패키지로 제공되며 미리 보기로 제공됩니다.

필수 구성 요소

이 자습서를 계속 진행하기 전에 다음을 준비해야 합니다.

  1. 운영 체제에 따라 Docker 를 설치합니다.

  2. 컨테이너 레지스트리입니다. Docker는 기본적으로 dockerHub 컨테이너 레지스트리를 만듭니다. 테스트용 로컬 레지스트리 같은 Azure Container Registry 또는 원하는 다른 컨테이너 레지스트리를 사용할 수도 있습니다.

  3. Kubernetes 클러스터입니다. 여기에는 다음을 비롯한 다양한 옵션이 있습니다.

    • Azure Kubernetes Service
    • Docker Desktop Kubernetes를컴퓨터에서 상당한 메모리를 차지하므로 주의해서 사용합니다.
    • Minikube
    • 경량 단일 이진 인증 Kubernetes 배포판인 K3s, 랜처에서 제공하는 것입니다.
    • 선택한 다른 Kubernetes 공급자입니다.

비고

Dockerhub 이외의 클라우드 공급자에서 제공하는 컨테이너 레지스트리를 선택하는 경우 액세스를 허용하도록 Kubernetes 클러스터를 구성하는 단계를 수행해야 할 수 있습니다. 클라우드 공급자가 제공하는 지침을 따릅니다.

시작하기

비고

지금은 YARP 수신 컨트롤러에 대한 공식 Docker 이미지가 없습니다.

그 동안에 YARP 수신 컨트롤러를 로컬에서 빌드하고 배포해야 합니다. 리포지토리의 루트에서 다음을 실행합니다.

docker build . -t {REGISTRY_NAME}/yarp-controller:{TAG} -f .\src\Kubernetes.Controller\Dockerfile
docker push {REGISTRY_NAME}/yarp-controller:{TAG}

위의 명령 {REGISTRY_NAME} 에서 자리 표시자는 Docker 레지스트리의 이름이고 {TAG} 자리 표시자는 이미지에 대한 태그(예: 1.0.0)입니다.

첫 번째 단계는 KUbernetes 클러스터에 YARP 수신 컨트롤러를 배포하는 것입니다. 이 작업은 Kubernetes 수신 샘플\samples\KubernetesIngress.Sample\Ingress로 이동한 후(동일한 REGISTRY_NAME 방법으로 수정한 후) 실행하여 ingress-controller.yaml 수행할 수 있습니다TAG.

kubectl apply -f ingress-controller.yaml

수신 컨트롤러가 배포되었는지 확인하려면 다음을 실행합니다.

kubectl get pods -n yarp

그런 다음, 다음을 실행하여 수신 컨트롤러에서 로그를 확인할 수 있습니다.

kubectl logs {POD NAME} -n yarp

YARP에 대한 모든 서비스, 배포 및 pod는 yarp 네임스페이스에 있습니다. yarp의 상태를 확인하려면 -n yarp 포함해야 합니다.

다음으로, 수신을 빌드하고 배포합니다. 리포지토리의 루트에서 다음을 실행합니다.

docker build . -t {REGISTRY_NAME}/yarp:<TAG> -f .\samples\KuberenetesIngress.Sample\Ingress\Dockerfile
docker push {REGISTRY_NAME}/yarp:{TAG}

위의 명령 {REGISTRY_NAME} 에서 자리 표시자는 Docker 레지스트리의 이름이고 {TAG} 자리 표시자는 이미지에 대한 태그(예: 1.0.0)입니다.

마지막으로, 인그레스를 Kubernetes에 배포해야 합니다. 디렉터리로 이동하여 Ingress 이전에 지정한 레지스트리 및 태그에 대한 파일을 수정 ingress.yaml 하고 다음을 실행합니다.

kubectl apply -f .\ingress.yaml

이 시점에서 인그레스 및 컨트롤러가 실행되고 있어야 합니다.

앱 배포

인그레스를 사용하려면 이제 Kubernetes에 애플리케이션을 배포해야 합니다. samples\KuberenetesIngress.Sample\backend 이동하여 다음을 실행합니다.

docker build . -t {REGISTRY_NAME}/backend:{TAG}
docker push {REGISTRY_NAME}/backend:{TAG}

그리고 동일한 레지스트리 이름() 및 태그({REGISTRY_NAME}{TAG})로 수정한 후 실행하여 backend.yaml Kubernetes에 배포합니다.

kubectl apply -f .\backend.yaml

인그레스 정의 만들기

마지막으로 백 엔드 애플리케이션을 배포한 후에는 트래픽을 백 엔드로 라우팅해야 합니다. 이렇게 하려면 backend 디렉터리에서 실행합니다.

kubectl apply -f .\ingress-sample.yaml

그런 다음, 다음 명령을 실행하여 인그레스의 외부 IP를 검색하세요. 관련 서비스의 이름은 yarp-proxy입니다.

kubectl get service -n yarp

로컬 K8s 클러스터를 사용하고 외부 IP를 얻지 못하는 경우 서비스에 대한 yarp-proxy 기본값 port: 80 을 사용하지 않을 수 있습니다. 그렇다면 ingress.yaml 파일을 다른 포트(예: port: 8085)로 업데이트하고 인그레스를 Kubernetes에 다시 배포하십시오.

외부 IP로 이동하면 백 엔드 정보가 표시됩니다.