쿠버네티스 기초

3110 단어 k8s쿠버네티스k8s

쿠버네티스 기초

인그레스(Ingress)

  • 인그레스 트래픽
    * 외부에서 서버로 유입되는 트래픽
  • 인그레스
    외부 요청을 어떻게 처리할 것인지 네트워크 7계층 레벨에서 정의하는 쿠버네티스 오브젝트이다.
    외부 요청 라우팅
    /apple, /apple/red 등과 같이 특정 경로로 들어온 요청을 어떠한 서비스로 전달할지 정의하는 라우팅
    * 가상호스트 기반의 요청 처리
    같은 IP에 대해 다른 도메인 이름으로 요청이 도착했을 때 어떻게 처리할 것인지 정의
    * SSL/TLS 보안 연결 처리
    여러 개의 서비스로 요청을 라우팅할 때, 보안 연결을 위한 인증서를 쉽게 적용
# ingress 리스트 확인
kubectl get ingress

# ingress 적용
kubectl aaply -f file.yaml
# 간단한 ingress 예제
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-example
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernets.io/ingress.class: "nginx"
spec:
  rules:
  - host: alicek106.example.com
    http:
      paths:
      - path: /echo-hostname
        backend:
          serviceName: hostname-service
          servicePort: 80
  • host: 해당 도메인 이름으로 접근하는 요청에 대해서 규칙을 적용
  • path: 해당 경로에 들어온 요청을 어느 서비스로 전달할 것인지 정의
  • serviceName, servicePort: path로 들어온 요청이 전달된 서비스와 포트

    annotion은 인그레스의 추가적인 기능을 사용할 수 있다.

인그레스만 적용해서는 아무일이 일어나지 않는다. 인그레스는 선언적인 오브젝트일 뿐이기 때문에
인그레스 컨트롤러(Ingress Controller)라고 하는 특수한 서버에 적용해야만 그 규칙을 사용할 수 있다.

인그레스 컨트롤러

대표적으로 Nginx 웹 서버 인그레스 컨트롤러가 있다.

  • Kong API 게이트웨이, GKE 등의 클라우드 플랫폼에서 제공되는 인그레스 컨트롤러가 있다.

좋은 웹페이지 즐겨찾기