2025-12-31 09:13:29 +09:00
2025-12-30 16:34:43 +09:00
2025-12-30 19:58:26 +09:00
2025-12-31 09:13:29 +09:00
2025-12-30 16:34:43 +09:00

구성 (Local 실행 기준)

  1. mapping.yaml

    마이그레이션 할 어노테이션 정의가 작성 되는 파일

    # 예시
    nginx.ingress.kubernetes.io/ssl-redirect:
      haproxy: haproxy.org/ssl-redirect
      support: full
    
    nginx.ingress.kubernetes.io/force-ssl-redirect:
      haproxy: haproxy.org/ssl-redirect
      support: full
    
    nginx.ingress.kubernetes.io/backend-protocol:
      haproxy: haproxy.org/backend-protocol
      support: full
    
    nginx.ingress.kubernetes.io/load-balance:
      haproxy: haproxy.org/load-balance
      support: full
    

    support 기준은 아래와 같음

    full : 1:1 매핑 되는 옵션
    # ex)
    # nginx.ingress.kubernetes.io/ssl-redirect: "true"
    # haproxy.org/ssl-redirect: "true"
    
    partial : 기능은 같으나, 방식이 다름
    # nginx.ingress.kubernetes.io/limit-rps: "10"
    # haproxy.org/rate-limit-requests: "10"
    # haproxy.org/warning-limit-rps: "burst/period semantics differ"
    
    unsupported : 지원 되지 않음
    
    # ex)
    # nginx.ingress.kubernetes.io/configuration-snippet: |
    #   more_set_headers "X-Test: foo";
    
  2. migrate.py

    실행 파일, 옵션은 아래와 같음 (pip install ruamel.yaml 실행 필요)

    --single : 하나의 파일로 결과물 생성
    --split : 각각의 yaml 파일로 저장
    --out : 저장 경로 설정
    --ingress-class : ingressClassName 설정
    --report : report 파일 저장 경로
    --mapping : 맵핑 파일 지정 (default : mapping.yaml)
    

구성 (Kubernetes 실행 기준)

  1. Dockerfile

    이미지 빌드 수행

  2. mapping.yaml 파일 configmap으로 Kubernetes에 배포

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ingress-annotation-mapping
      namespace: default
    data:
      mapping.yaml: |
        nginx.ingress.kubernetes.io/ssl-redirect:
          haproxy: haproxy.org/ssl-redirect
          support: full
    
        nginx.ingress.kubernetes.io/force-ssl-redirect:
          haproxy: haproxy.org/ssl-redirect
          support: full
    
        nginx.ingress.kubernetes.io/backend-protocol:
          haproxy: haproxy.org/backend-protocol
          support: full
    
        nginx.ingress.kubernetes.io/load-balance:
          haproxy: haproxy.org/load-balance
          support: full
    
        nginx.ingress.kubernetes.io/rewrite-target:
          haproxy: haproxy.org/path-rewrite
          support: full
    
        nginx.ingress.kubernetes.io/proxy-connect-timeout:
          haproxy: haproxy.org/proxy-connect-timeout
          support: full
    
  3. Pod 배포

    작성중
    
Description
ingress-nginx to haproxy-ingress annotations migrate
Readme 588 KiB
Languages
Python 77.3%
HTML 12.9%
CSS 8%
Dockerfile 1.8%