Helm과 함께 Traefik Ingress를 배포합니다.

3568 단어 kubernetestutorialgke
안녕하세요. 헤더 X-Forwarded-For 및 X-Real-Ip에서 클라이언트 원래 IP를 유지하도록 Traefik Ingress를 구성하기 위해 기본값을 덮어쓰는 데 사용되는 Helm 값의 작업 예제를 공유하고 싶습니다.
  • 필수 단계 Gcloud CLI를 설치 및 구성해야 합니다.
    참조: https://cloud.google.com/sdk/docs/install-sdk
  • CLI를 계정에 연결합니다.
    참조: https://cloud.google.com/sdk/docs/authorizing
  • 개인 컴퓨터에 Helm CLI를 설치합니다.
    참조: https://helm.sh/docs/intro/install/

  • Gcloud CLI를 사용하여 테스트 GKE 클러스터를 프로비저닝할 수 있습니다.




     gcloud container clusters create test-gke-cluster \
       --region europe-central2 \
       --node-locations europe-central2-a \
       --num-nodes=1 \
       --machine-type=e2-medium \
       --disk-size=50 \
       --disk-type=pd-standard \
       --image-type=cos_containerd \
       --release-channel=stable \
       --node-version="1.22.12-gke.2300" \
       --enable-autoscaling \
       --min-nodes 1 \
       --max-nodes 3 \
       --enable-autorepair \
       --network="" \
       --enable-ip-alias
    
    


    새로운 GKE 클러스터에 Traefik Ingress를 배포해 보겠습니다.


  • 클러스터에 연결할 수 있도록 다음 명령을 실행하여 클러스터에 대한 자격 증명을 가져옵니다.

  • gcloud container clusters get-credentials "test-gke-cluster"  --zone=europe-central2-a
    
    


    Helm을 사용한 수동 배포(Traefik Ingress)




    
     helm install traefik/traefik --values ./custom-values.yaml  --name-template traefik-ingress --wait
    
    ---
    additionalArguments:
      # Logging
      - --log.level=info
      - --log.format=json
    certResolvers: 
      letsencrypt:
        tlsChallenge: true
        email: [email protected]
        storage: /data/acme.json
    service:
      enabled: true
      type: LoadBalancer
      spec:
        externalTrafficPolicy: Local # Retain Client IP in the Headers 
      annotations:
        helm.sh/resource-policy: keep
        meta.helm.sh/release-name: traefik
        meta.helm.sh/release-namespace: default
    deployment: 
      initContainers: # Ensure the `/data/acme.json` Permisssion is 600
        - name: fix-data-dir-permissions
          image: alpine:3.16.2
          command:
            - chown
            - -R  
            - 65532:65532
            - /data
          volumeMounts:
            - name: data
              mountPath: /data
    persistence: # Used to Store TLS Certs
      enabled: enable
      name: data
      accessMode: ReadWriteOnce
      size: 1024Mi # min size for some Providers like DO
      path: /data
    podSecurityContext:
      fsGroup: null
    
    




    결과



    개발 환경이 아닌 경우



    쿠버네티스에 워크로드를 배포하는 가장 좋은 방법은 Flux 및 ArgoCD와 같은 지속적 전달 도구를 사용하는 것입니다. 둘 다 GitOps 원칙을 따릅니다.

    참조: https://traefik.io/blog/deploy-traefik-proxy-using-flux-and-gitops/

    엄지 척을 포기한다면 튜토리얼이 마음에 드시기 바랍니다! 에서 나를 팔로우하고 내Newletter 를 구독하여 다가오는 자습서를 놓치지 않도록 할 수도 있습니다.

    감사합니다, 건배!!!

    좋은 웹페이지 즐겨찾기