쿠버네티스 Ingress

Chori·2025년 11월 16일
post-thumbnail

초보를 위한 쿠버네티스 안내서를 수강하며 정리한 내용입니다.

개념

  • Service는 서비스 하나당 하나의 포트만 오픈할 수 있어서 서비스가 늘어나면 관리가 어려워짐
  • Ingress는 포트를 하나만 오픈하고 도메인이나 경로에 따라서 서비스를 분기

Ingress 만들기

  • 첫 번째 서비스
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: echo-v1
spec:
  rules:
    - host: v1.echo.192.168.64.5.sslip.io
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: echo-v1
                port:
                  number: 3000

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo-v1
spec:
  replicas: 3
  selector:
    matchLables:
      app: echo
      tier: app
      version: v1
  template:
    metadata:
      lables:
        app: echo
        tier: app
        version: v1
    spec:
      containers:
        - name: echo
          image: ghcr.io/subicura/echo:V1
          livenessProbe:
            httpGet:
              path: /
              port: 3000

---
apiVersion: v1
kind: Service
metadata:
  name: echo-v1
spec:
  ports:
    - port: 3000
      protocol: TCP
  selector:
    app: echo
    tier: app
    version: v1
  • 두 번째 서비스
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: echo-v2
spec:
  rules:
    - host: v2.echo.192.168.64.5.sslip.io
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: echo-v2
                port:
                  number: 3000

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo-v2
spec:
  replicas: 3
  selector:
    matchLables:
      app: echo
      tier: app
      version: v2
  template:
    metadata:
      lables:
        app: echo
        tier: app
        version: v2
    spec:
      containers:
        - name: echo
          image: ghcr.io/subicura/echo:V2
          livenessProbe:
            httpGet:
              path: /
              port: 3000

---
apiVersion: v1
kind: Service
metadata:
  name: echo-v2
spec:
  ports:
    - port: 3000
      protocol: TCP
  selector:
    app: echo
    tier: app
    version: v2
  • IP 주소는 하나이지만 도메인에 따라 서로 다른 서비스에 접근
profile
전부인 것처럼, 전부가 아닌 것처럼

0개의 댓글