ByeongHunKim / Cloudclub-istio-skyline

☁️ Cloud Club's collaborative journey exploring Istio and service mesh technologies 🚀
https://www.cloudclub.kr/
2 stars 0 forks source link

[Troubleshooting] Dark Release를 특정 프로젝트의 production 환경에 적용하는 과정에서의 문제 #24

Open ByeongHunKim opened 1 week ago

ByeongHunKim commented 1 week ago

Issue Description / 이슈 설명 발생한 문제에 대해 간단히 설명해주세요

week3에서 공유해드렸던 dark release ( safe harbor deployment ) 를 특정 프로젝트의 production 환경에 적용하는 과정에서의 문제

Steps to Reproduce / 재현 단계 문제를 재현하기 위한 단계를 설명해주세요:

  1. 기존에 namespace에 istio injection labeling이 안되어있던터라 pod에는 1/1로 어플리케이션 컨테이너만 존재하던 상황
  2. review-production job을 통해 review-production deployment로 pod를 배포
  3. apply_istio_custom_resource job으로 istio CR을 해당 네임스페이스에 배포

Expected Behavior / 예상 동작 정상적으로 작동했을 때 예상되는 동작을 설명해주세요

Actual Behavior / 실제 동작 실제로 발생한 동작이나 오류를 설명해주세요

Logs / 로그 관련된 로그나 오류 메시지를 첨부해주세요

여기에 로그를 붙여넣으세요

Configuration / 설정 문제와 관련된 Istio 설정이나 YAML 파일을 첨부해주세요

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: review-prod-gateway
  namespace: "${KUBE_NAMESPACE}"
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "${PRODUCTION_ADDITIONAL_HOSTS}"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: review-prod-virtual-service
  namespace: "${KUBE_NAMESPACE}"
spec:
  gateways:
  - review-prod-gateway
  hosts:
  - "${PRODUCTION_ADDITIONAL_HOSTS}"
  http:
  - match:
    - headers:
        x-forwarded-for:
          prefix: "${REVIEW_PRODUCTION_ALLOWED_IP}"
    route:
    - destination:
        host: review-production-orddqb-auto-deploy
        subset: review
  - route:
    - destination:
        host: production-auto-deploy
        subset: production
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: review-prod-destination-rule
  namespace: "${KUBE_NAMESPACE}"
spec:
  host: review-production-orddqb-auto-deploy
  subsets:
  - name: review
    labels:
      app.kubernetes.io/name: review-production-orddqb
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: production-destination-rule
  namespace: "${KUBE_NAMESPACE}"
spec:
  host: production-auto-deploy
  subsets:
  - name: production
    labels:
      app.kubernetes.io/name: production

Attempted Solutions / 시도한 해결 방법 문제를 해결하기 위해 시도해본 방법이 있다면 설명해주세요

하나의 deployment만 존재하는 ns의 경우

kubectl rollout restart deployment

routing 설정 할 파드의 라벨 확인

kubectl get pods --show-labels



**Impact / 영향**
이 문제가 서비스나 사용자에게 미치는 영향이 있다면 설명해주세요

실제 유저들은 갑자기 도메인에 접속하지 못하게 됨

**Additional Context / 추가 정보**
문제 해결에 도움이 될 만한 추가 정보나 스크린샷이 있다면 첨부해주세요
ByeongHunKim commented 1 week ago

문제 상황 재현을 통해 production으로는 요청이 가지않으면 검증 성공으로 close 예정