PaaS 221

Kubernetes Resource가 잘 안지워질때

가끔씩 delete force로 해도 안지워 질 때가 있다. 이때 배포한 리소스를 보면 finalizers가 정의되어 있는경우가 있다. 이것은 삭제에 필요한 전제조건으로 이 조건에서 문제가 되는 경우가 가끔있다. 특히 ArgoCD의 Application을 삭제할때 OutOfSync 상태, Deleting 으로 빠져있는 경우가 있다. 이때는 해당 리소스 YAML을 수정해서 metadata.finalizers 를 날려버리자.

PaaS/Kubernetes 2023.11.15

App of Apps 패턴으로 배포하기. 그리고 나의 생각

App of Apps 패턴이란 어떤 규모의 소프트웨어를 구성하는 모듈들을 모아서 Application으로 정의한다. ※ MSA 로 변화하면서 전체 소프트웨어를 구성하는 독립적인 모듈들이 많아 졌다. 사실 각 요소 어플리케이션은 생명주기를 모듈간 의존성 없도록 독립적으로 가져가는게 맞다. 그러기위해서 MSA를 한 것이 아닌가... 근데 초기 Provisioning은 한꺼번에 해줄 필요는 있어서 App of Apps로 하는게 효율적으로 보인다. 이때 Application이란 하나의 Profile 같은것이다. 아래 공식가이드는 Helm을 기반으로 하였는데, ArgoCD는 Helm 관련한 호환성이 있어서 Helm으로 정의한 소프트웨어 배포도 수월하게 할 수 있다. 필자의 생각으로는 App of Apps Repo..

PaaS/CI CD 2023.11.15

Argo Rollout으로 Canary 배포하기

Argo Rollout을 Canary 전략으로 배포를 설명한다. ArgoCD를 통 아래 Github url로 배포한다. https://github.com/armyost/ArgoRollout GitHub - armyost/ArgoRollout Contribute to armyost/ArgoRollout development by creating an account on GitHub. github.com 1차적으로 blue버전으로 rollout을 배포한다. 처음에는 파란색으로만 서비스가 된다. 두번째로 blue를 green 버전으로 변경한 'rollout-canary'를 ArgoCD에서 다시 'Sync'한다. # AS-IS spec: containers: - name: canary-rollouts-demo ..

PaaS/CI CD 2023.11.15

Argo Rollout으로 Blue/Green 배포하기

ArgoCD 서버 설치부터 Argo Rollout 을 통한 Blue/Green 배포까지 설명한다. Argo Rollout Blue / Green 이벤트 순서 (https://argo-rollouts.readthedocs.io/en/stable/features/bluegreen/) 1. 완전히 사용자에게 런칭되기전 Revision 1은 ActiveService와 PreviewService으로 지명됩니다. 2. 서비스 배포자는 Rollout YAML의 spec.template.spec를 Revision 2의 Image로 변경합니다. 3. 해당 Revision 2 ReplicaSet이 0 Size로 만들어 집니다. 4. PreviewService는 이 Revision 2 ReplicaSet을 가리킵니다. (이..

PaaS/CI CD 2023.11.15

(DataDog) Service Catalog 란?

PagerDuty를 스터디 할때도 느꼈지만 이제는 Service 를 기준으로 하는 모니터링이 대세인것 같다. MicroService의 여파로 Service에 대한 R&R이 분명해 짐과 동시에 많은 Micro Service로 인해 체계적인 관리가 필요해졌다. DataDog의 Service Catalog도 Service를 기준하여 Service Owner(담당자 또는 팀), Performance Metric, Reliability, Security를 관리한다. 이러한 컨셉이 합리적인것인 이유는 특정 서비스에 대한 이슈는 오직 해당 Owner만이 주의를 기울임이 효율적이다. 과거처럼 관련자 잔뜩 불러서 다같이 트러블 슈팅하는 시대는 지났다. 이제는 Micro Service 하기 때문이다. https://www..

(DataDog) Dashboard 메뉴 설명

Dashboard List : 서비스 별 기본적으로 제공하는 템플릿이있다. 놀라운것은 내가 수집중인 대상을 알아서 분석해서 필요한 데시보드를 제시한다는 것이다... New Dashboard : Custom한 Dashboard를 만든다 Report : Dashboard를 기반하여 특정 시간의 운영경과를 리포트로 작성하여 보낸다. 이때 주기적으로 자동으로 보고되도록 설정할 수 있다.

(DataDog) Infrastructure 메뉴 설명

Host Map: 호스트 맵은 색상과 모양으로 이해하기 쉽게 만들어진 메트릭을 이용해 호스트를 한 화면에 시각화합니다. Infrastructure List : 인프라스트럭처 목록을 통해 Datadog이 모니터링하는 모든 호스트와 지난 2시간(기본값)부터 최대 1주일까지의 활동을 확인할 수 있습니다. 호스트를 검색하거나 태그로 그룹화해 보세요. Containers : 전반적인 컨테이너의 상태를 나타냅니다. Datadog은 ECS, 도커, 쿠버네티스 등과 통합됩니다. 커스텀 그룹과 필터, 그리고 색상과 모양을 통해 이해하기 쉽도록 만들어진 메트릭을 사용하여 모든 컨테이너를 한 화면에서 볼 수 있습니다. 아웃라이어 감지, 사용 패턴 파악, 리소스 문제 방지, 컨테이너를 최적으로 관리하기 위한 의사 결정, 이 ..

DataDog 오류 : Unable to detect the kubelet URL automatically: impossible to reach Kubelet with host

2023-11-13 13:46:50 UTC | CORE | ERROR | (pkg/collector/python/kubeutil.go:41 in getConnections) | connection to kubelet failed: temporary failure in kubeutil, will retry later: impossible to reach Kubelet with host: 192.168.122.191. Please check if your setup requires kubelet_tls_verify = false. Activate debug logs to see all attempts made 2023-11-13 13:46:50 UTC | CORE | ERROR | (pkg/collector..

DataDog kubernetes 배포 시작하기

가트너 기준 모니터링 1위... 그리고 막상 모니터링을 운영하다보면, 이거따로 저거따로 모니터링하는것도 한계가 있다. 보통 운영팀의 니즈는 돈을 들이더라도 하나의 대시보드에 띄워서 보고자 한다. 생각보다 상용도 많이쓰고, 근데 아직 국내에 Datadog 쓰는데를 못본것 같다. DataDog을 Free trial로 실습한 내용을 공유한다. 우선 회원가입후에 내 API KEY 와 APP KEY를 알아야 한다. [내 프로필] - [Personal Settings] [ Application Keys] 에서 'New Key' 를 클릭하여 APP KEY를 만든다. 잘 복사해놓자. [내 프로필] - [Organization Settings] [API Keys] 에서 API KEY를 복사해두자 API/APP KEY를 ..