전체 글 122

카펜터 v0.27 to v0.32 업그레이드 작업 내역 공유

AWS 카펜터 v0.27 to v0.32 업그레이드 작업 내용을 공유합니다. 작업하면서 장애도 있었고 실수도 있어 아마도 다른 분들에게 도움이 될 것 같습니다. 업그레이 작업을 하게된 이유는 카펜터 Spot 노드 최적화가 v0.34부터 지원하기 때문입니다. 24년 10월 기준 카펜터 최신 버전은 v1.1.0 인데, 바로 최신 버전으로 업그레이드 하고 싶었는데, provisioner, awsnodetemplte 등 기존 자원에 대한 dual support가 필요하여 v0.32 으로 먼저 업그레이드 했습니다. 기존 현황입니다. (eks_dive-dev:karpenter)dev$ helm lsNAME NAMESPACE REVISION UPDATED ..

topologySpreadConstraints - matchLabelKeys 옵션

Why Kubernetes에서 파드를 동일한 노드에 배치하지 않기 위해 Anti-Affinity를 설정하는 경우가 많습니다. 하지만, 새로운 버전의 파드(예: 1.0.0 → 1.0.1) 배포 시 기존 노드에 실행하지 않고 새로운 노드에 배치되는 경우가 발생합니다. 이는 동일한 Deployment라 레이블이 같기 때문입니다. 기존 파드와 새로운 파드는 서로 다른 버전이라 같은 노드에 실행해도 문제없지만, 같은 레이블을 사용하기 때문에 서로 다른 노드에 배치됩니다. 이는 일반적인 상황에서는 문제가 없지만, Karpenter 환경에서는 새로운 노드가 생성되면서 기존 노드에 실행 중이던 파드들이 새로운 노드로 불필요하게 이동하는 문제가 발생합니다. (Karpenter의 consolidation 기능으로 인한 파..

Flux on Mac M1

최근 핫한 생성형 이미지 모델인 Flux를 로컬 Mac ComfyUI에서 실행하였다.  처음에 에러가 발생하였으나 다행히 깃헙 이슈 가이드에 따라 pytorch 버전을 낮추니 문제없이 실행된다. https://github.com/comfyanonymous/ComfyUI/issues/4165 FLUX Issue | MPS framework doesn't support float64 · Issue #4165 · comfyanonymous/ComfyUIExpected Behavior Run the inference Actual Behavior After 273.31 seconds, it throws an exception Steps to Reproduce Upload the example workflow fo..

기타 IT 2024.08.30

산업 혁명 - 지능 혁명

요즈음 미드저니, 스테이블 디퓨전으로 AI 그림 만들기 하고 있다. 산업 혁명으로 사람이 기계, 도구를 이용하여 육체 생산성이 향상되었듯 이제 지능 혁명 시기가 되어 AI로 두뇌 생산성이 폭발적으로 늘어나는 시기다. 미드저니 회사는 100명이 채 안되는데 약 2500억 넘는 매출로 1인당 매출이 25억이다. 인 당 10억 넘기기도 쉽지 않은데 25억이다. 기업 가치는 훨씬 크고. 이제 큰 회사보다 인 당 매출이 높은 작은 회사들이 많을 것 같다. 그렇다고 막 짜르거나 그러지는 않을 것같고 인원이 많이 필요없으니 소규모 회사가 여러 개 생길 것 같다. 나도 클라우드, 쿠버네티스 덕분에 1인 DevOps로 인프라를 별탈없이 운영하고 있다. 이전 온프렘 환경이면 최소 10명 이상은 필요할 것 같은데. 그리고 ..

기타 IT 2024.08.23

EKS 네트워크 아키텍처 현황

쿠버네티스 공식 문서 기반으로 네트워킹 및 로드 밸런싱을 스터디하고 있습니다. 관련해서 현재 사용 현황을 정리해 보았습니다. Amazon EKS 네트워크 아키텍처를 고민하는 분들께 도움이 되었으면 합니다.EKS VPC CNIEKS 사용하면 당연히(?) VPC CNI를 사용합니다.장점파드와 노드의 IP 대역이 동일하여 다른 노드의 파드와 통신 시 NAT 등의 추가 과정없이 바로 통신 가능합니다.주의사항파드 네트워크 대역을 /24가 아닌 /20 등으로 넓게 할당합니다. EKS 업그레이드 등 작업 시 IP가 부족한 경우가 발생할 수 있습니다.당연히 Private Subnet 대역에 파드 배포합니다.EKS ALB와 LB Controller장점target-type: ip 옵션을 사용하여 네트워크 홉 수를 줄일 수..

EKS Burstable 설정과 KRR을 활용한 비용 절감 내역 공유

현재 저는 CPU는 Limit을 지정하지 않는 Burstable 설정을 사용하고, CPU와 메모리 Request, Limit의 구체적인 설정값은 KRR을 사용하여 실제 사용량 기반으로 지정합니다. 이러한 구성은 시스템 안정성에 큰 영향을 미치지 않으면서 비용을 절감할 수 있는 효과적인 방법 같아서 공유합니다. QoS 설정과 Burstable 운영 환경의 안정성을 위해 많은 분들이 파드의 QoS 설정을 Guaranteed로 지정합니다. Guaranteed 설정은 Burstable 및 Best Effort 설정에 비해 노드의 자원이 부족할 때 파드가 Evict(추출) 당하지 않기 때문에 당연한 선택처럼 보입니다.  그러나 메모리와 달리 CPU는 Node Pressure가 없습니다. 즉, CPU를 과도하게 사..

쿠버네티스 베스트 프랙티스 레이블 및 헬름 레이블 적용

기존 쿠버네티스 스터디에서 새로운 멤버가 추가되어 이번에는 쿠버네티스 공식 문서로 스터디를 하고 있습니다. 관련 내용 중 k8s 공식 문서에 Recommended 레이블이 있어 해당 내용을 기반으로 현재 사용하고 있는 현황을 공유합니다. 쿠버네티스 공식 문서 - Recommended 레이블https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/ Recommended LabelsYou can visualize and manage Kubernetes objects with more tools than kubectl and the dashboard. A common set of labels allows tools to wo..

Karpenter CoreDNS on Spot Instance 장애

이번 포스트에서는 최근에 발생한 CoreDNS 장애 관련 내용을 공유합니다. 당연한 것들인데 새롭게 배운 것들이 많습니다. Karpenter, CoreDNS 사용하는 분들에게 참고가 되었으면 합니다. 장애 현상일부 파드에서 DNS 조회 실패(dns resolve fail) 현상이 발생하였습니다.장애 원인Karpenter 설정에서 노드 그룹을 On-Demand와 Spot 두 가지로 운영하고 있었지만, interruptionQueue 설정이 누락되어 있었습니다. interruptionQueue 설정이 없으면 Spot 노드 종료 시 실행하고 있는 파드가 Graceful Shutdown하게 기존 세션을 종료하고 정상 종료되지 않아 해당 노드에 실행 중인 CoreDNS 파드 등에 문제가 발생합니다. 장애 조치1...

1인 DevOps의 고가용성, 작업 효율을 고려한 AWS 비용 최적화 작업 내역

작년 8월에 레벨스로 이직하고 주로 FinOps 비용 절감 관련으로 일을 많이 했다. 그래서 나름 많이 줄이기도 했었고. (자세한 비용을 공개하기는 어렵고..) 관련 작업 내역을 공유한다. 먼저 1인 DevOps로 3가지 '축'을 항상 고려한다. 인프라 운영은 비용, 고가용성, 작업 효율이 중요 요소다. 일반적으로 비용을 감소하면 장애 위험이 증가하는 경우가 많다. 그리고 비용 관련 리소스를 삭제하는 것은 작업 난이도가 있고(생성은 쉽고 삭제는 어렵다) 시간이 많이 소요된다. 무작정 비용을 줄이거나 반대로 운영 안정성을 증가한다는 명분하에 과도한 인프라 투자는 바람직하지 않다. 적절한 선택이 필요하다. 무엇이든 균형을 잡는 것(중도)이 가장 어렵고 가치있는 일이다. 한자로 가운데 '중'은 바람이 불어도 ..

FinOps 2024.04.29

[패스트캠퍼스] 쿠버네티스 강의 할인 쿠폰

좋은 기회로 패스트 캠퍼스에서 쿠버네티스 관련 강의를 하게 되었습니다. https://fastcampus.co.kr/dev_online_devops_kubernetes 강사로 할인 쿠폰을 받게 되어 공유합니다. 관심 있으신 분은 아래 쿠폰을 사용하면 좀 더 저렴하게 구입 가능합니다. 쿠폰 : PRDTEA20231206_2 유효 기간: 12.07~12.17 수량: 20개 할인률: 20% 좋은 기회라서 '사람 사는 세상'에 추가 후원하였습니다.

개인적인 기록 2023.12.10