Cloud/Kubernetes

[Docker Desktop] 도커 데스크탑 쿠버네티스 인그레스 컨트롤러 설치

개요

도커 데스크탑을 설치하면 쿠버네티스를 활성화할 수 있습니다. 도커에서 새로운 이미지를 빌드하고, 클라우드에서 운영중인 쿠버네티스 환경에 배포하기 전 테스트를 진행할 공간이 필요할 때 유용하게 사용할 수 있습니다. 이 글에서는 도커 데스크탑 쿠버네티스에 인그레스 컨트롤러를 설치하고, 미리 정의된 주소로 접근하는 과정을 다룹니다.

인그레스

인그레스는 쿠버네티스 클러스터로 HTTP(80)HTTPS(443)을 이용하여 접근하는 트래픽을 관리합니다. 접근 주소, 경로에 따라 여러 서비스들을 관리할 수 있습니다.

인그레스 컨트롤러

쿠버네티스에는 이 인그레스 기능을 위한 컨트롤러를 플러그인 처럼 따로 설치해야 사용할 수 있습니다. 인그레스 컨트롤러 종류는 여러가지가 있으며, 이중 쿠버네티스 프로젝트에서 공식 지원하는 AWS, GCE와 NGINX 중 NGINX 인그레스 컨트롤러를 설치하는 법을 다룹니다.

인그레스 컨트롤러 설치

쿠버네티스 활성화

도커 데스크탑 세팅에서 쿠버네티스를 활성화 합니다.

NGINX 인그레스 컨트롤러 설치

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.43.0/deploy/static/provider/cloud/deploy.yaml
 

Installation Guide - NGINX Ingress Controller

Installation Guide Attention The default configuration watches Ingress object from all the namespaces. To change this behavior use the flag --watch-namespace to limit the scope to a particular namespace. Warning If multiple Ingresses define paths for the s

kubernetes.github.io

NGINX 인그레스 컨트롤러 설치 확인

kubectl get all -n ingress-nginx

인그레스 사용

PodsService 구성은 다루지 않습니다.

인그레스 정의 파일 생성

# issue-ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: issue-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: issuesite-service
          servicePort: 80
  - http:
      paths:
      - path: /admin
        backend:
          serviceName: issueadmin-service
          servicePort: 80

인그레스 정의 파일 적용

kubectl apply -f issue-ingress.yaml

인그레스 적용 확인

kubectl describe ingress issue-ingress

인그레스 접근 확인

http://kubernetes.docker.internal/

마치며

kubernetes.docker.internal

도커 데스크탑 설치시 HOSTSkubernetes.docker.internal 주소의 IP가 127.0.0.1로 자동 등록됩니다. 127.0.0.1로 접근하셔도 되지만, 인그레스 설정에 주소 이름에 따라 분리할 경우에 HOSTS 파일에 새로운 주소를 추가하여 테스트가 가능합니다.