Ingress

타미·2022년 2월 9일
0

Hello Kubernetes

목록 보기
2/5
post-thumbnail

Ingress란?

  • 쿠버네티스에서 제공하는 API object 중 하나
    • deployment, service 요런 애들이 API object
  • 외부에서 쿠버네티스에 접근할 수 있도록 처리한다.
  • 주요 기능
    • 도메인 설정 (+routing rule)
      • naver.com -> naver 메인 사이트
        • 외부에서 특정 도메인으로 접근할 수 있도록 한다.
      • naver.com/blog -> blog 사이트
        • routing rule에 따라 /blog url -> blog servivce 로 연동
    • SSL 설정
    • 로드밸런싱
    • 가상 호스팅

Ingress Controller

Ingress Controller란?

  • ingress: 외부에서 서비스로 접근할 수 있도록 묶어주는 진입점
    • service: 여러 pod를 묶어주는 단일 IP
  • ingress의 여러 기능을 수행하는 게 ingress controller이다.
    • ingress resource: 아래와 같이 어떤 식으로 ingress를 이용할 지 정의해놓은 게 ingress resource
    • ingress resource를 실행해주는 것: ingress controller
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-resource-backend
spec:
  defaultBackend:
    resource:
      apiGroup: k8s.example.com
      kind: StorageBucket
      name: static-assets
  rules:
    - http:
        paths:
          - path: /icons
            pathType: ImplementationSpecific
            backend:
              resource:
                apiGroup: k8s.example.com
                kind: StorageBucket
                name: icon-assets
  • ingress controller에는 여러 종류가 있다.
    • 그 중 하나가 nginx
    • nginx ingress를 사용한다면 was 앞단에 웹서버로 nginx를 두는 것과 같은 효과를 볼 수 있을 것이다.

  • 라우팅 규칙: url에 따라 서비스를 선택하는 룰
    • {{domain}}/ -> main service
    • {{domain}}/login -> login service

ex. Nginx Ingress Controller

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

위와 같은 deploy.yaml 파일을 실행하면 nginx controller가 실행된다.

yaml 파일을 살펴보면..

ingress-nginx image를 가져와서 pod가 하나 생긴다.
replica set이 없으니 pod는 하나만 생긴다.

pod는 하나의 서비스로 묶어주고, 외부에서 접근할 수 있도록 처리가 필요하다. nginx yaml 파일에 따라 다르게 설정이 되있는 것을 확인했다.

이런 식으로 Service type을 NodePort로 열어서 외부에서 파드에 접근할 수 있게 할 수도 있고,

로드밸런서를 써서, 클라우드에서 제공하는 로드밸런서의 IP를 이용해서 외부에서 파드에 접근할 수 있게 할 수도 있다.

yaml 파일에 정의된 pod, service 등은 ingress-nginx에 만들어져서

위와 같이 생긴 것을 확인할 수 있다.

profile
IT's 호기심 천국

0개의 댓글