기술 이모저모

많은 기사에서도 접할 수 있듯이 올해 스타트업의 시장이 좋지 않다. 그래서 현재 재직중인 회사에서도 불필요한 또는 비효율적인 AWS 인프라 비용을 줄이라는 특명이 내려왔다. 그래서 AWS 인프라 비용에서 가장 많은 부분을 차지하는 EKS Node 비용을 먼저 줄여보기로 했다. 가장 좋은 방법은 각 Deployment의 Request/Limit 사이즈를 조절하는 것이다. 하지만 이것은 개발팀에서 조절하는 부분이고 데브옵스팀에서는 관여하기 어렵기에 그럼 노드를 효율적으로 사용할 수 있는 부분을 찾아보기로 했다. 그러던 중 팀원이 좋은? 괜찮은? 오픈소스인 Karpenter를 공유해주었고 당사에 적용한 내용을 기술해보고자 한다. 먼저 대부분의 EKS를 운영하는 회사에서는 Cluster Auto Scaler(이..
개인적으로 차근차근 공부하는 목적으로 작성한 글입니다. 일부 잘못된 내용이 있을 수도 있습니다. 잘못된 내용은 피드백 해주시면 적극 반영하도록 하겠습니다. 감사합니다 :) 최근 쓰니가 재직중인 회사에서 Cluster Upgrade가 있었다. 근데 Upgrade 이후, 특정 Github 레포의 helm upgrade가 되지 않는 이슈가 있었고 이를 통해 새롭게 알게 된 내용을 정리하고자 한다. Github Action Helm upgrade Fail Error: UPGRADE FAILED: current release manifest contains removed kubernetes api(s) for this kubernetes version and it is therefore unable to buil..
개인적으로 차근차근 공부하는 목적으로 작성한 글입니다. 일부 잘못된 내용이 있을 수도 있습니다. 잘못된 내용은 피드백 해주시면 적극 반영하도록 하겠습니다. 감사합니다 :) 최근에 EKS 업데이트를 했었는데, k8s 버전에 맞는 coreDNS 업데이트도 했다. coreDNS가 이름만 들어보면 언뜻 DNS 서비스를 뜻하는것 같은데, 정확히 어떤 개념이고 어떤게 동작하는지 궁금했다. CoreDNS란 무엇인가? k8s docs를 보면 아래와 같이 쿠버네티스 클러스터의 DNS 역할을 수행하는 서버로 표현되어 있다. CoreDNS는 쿠버네티스 클러스터의 DNS 역할을 수행할 수 있는, 유연하고 확장 가능한 DNS 서버이다. 쿠버네티스와 동일하게, CoreDNS 프로젝트도 CNCF 가 관리한다. 어렵게 표현했지만 결..
처음부터 차근차근 공부하는 목적으로 작성한 글입니다. 일부 잘못된 내용이 있을 수도 있습니다. 잘못된 내용은 피드백 해주시면 적극 반영하도록 하겠습니다. 감사합니다 :) EKS를 운영하다 보면 많은 Worker node가 있고, 수많은 Pod가 생겨난다. 그리고 이때 운영자는 별도 작업이 없지만 EKS가 자동적으로 pod에 private ip를 할당해준다. 어떻게 되는걸까? EKS 네트워킹에 대한 기본 개념과 방법에 대해서 알아보자. EKS 네트워킹 기본 구조 가장 기본적인 EKS 네트워킹의 기본 구조이다. EKS node는 다수의 Pod을 생성해야 하고, 이때 많은 Private ip가 필요로 한다. 이때 AWS에서는 AWS VPC CNI 플러그인을 제공해주고 이것은 K8s과 AWS VPC간의 브릿지 ..
처음부터 차근차근 공부하는 목적으로 작성한 글입니다. 일부 잘못된 내용이 있을 수도 있습니다. 잘못된 내용은 피드백 해주시면 적극 반영하도록 하겠습니다. 감사합니다 :) 최근 업무적으로 Github Action을 사용할 일이 있는데, 잘 모르는 분야이다 보니 Github Action Docs을 읽어보았다 그중에서 조금 헷갈리는 Github Action output 부분에 대해서 알아보도록 한다. Defining outputs for jobs - GitHub Docs Overview You can use jobs. .outputs to create a map of outputs for a job. Job outputs are available to all downstream jobs that depend ..
Devops 직군뿐 아니라, 최근에는 Helm이 널리 이용되고 있다. 그래서 자주 사용하는 Helm Command에 대해서 정리해보고자 한다. 아직은 많이 많이 부족하고 배우는 단계라서 단순한 것만 사용하고 있으니, 참고만 하도록 한다. 아래 Helm 공식 Docs를 통해서 더 많은 명렁어를 확인할 수 있고, 직접 사용해보면서 업무에 필요한 명렁어를 습득하면 된다. Helm Get 헬름 - 쿠버네티스 패키지 매니저 helm.sh Command Tip 1. 현재 배포되어 있는 Helm release 와 배포 이력 찾기 helm list를 통해 현재 배포하고 있는 helm release를 알 수 있다. 1개가 될 수도 있고, 2개 이상이 될 수도 있다. 그리고 간략하게 REVISION과 배포 시간 그리고 C..
업무를 하다보면 kubernetes, EKS를 사용할 일이 있다. 그리고 이때 빠짐없이 등장하는것이 Helm이다. 그렇다면 Helm 이란 무엇이고? Helm은 어떻게 사용하는것인지에 대해서 알아보자!! Helm이란? Helm Docs에는 "Helm is the package manager for Kubernetes"로 소개되어 있다. 즉 쿠버네티스의 패키지 매니지먼트이다. Docs Home Everything you need to know about how the documentation is organized. helm.sh 쉽게 이해하자면 Python의 pip, 그리고 Linux에서 쉽게 패키지를 다운로드 할 수 있게 도와주는 yum, apt와 비슷하다고 보면 된다. Helm도 기타 다른 패키지와 마..
AWS Workspace는 스타트업에서 가장 많이? 사용하는 망분리 환경을 위한 서비스이다. 환경을 만드는것은 AD만 있으면 가능하기에 어렵지 않다. 하지만 Local PC와Workspace간에 데이터 교환 방법이 문제이다. S3 브라우저, S3 Mount 등 다양한 방법이 존재하며 각자의 상황에 맞는 방법이 채택하면 된다. 필자는 아래와 같은 로직으로 Local PC -> Workspace로 파일을 반입하고 있다. - 물론 이 방법이 정답은 아니다. 솔루션을 도입하면 더 좋고 효과적인 방법으로 반입할 수 있고 다른 방법도 많다. - 각 회사와 상황에 맞는 방법을 채택하면 되고, 필자가 선택만 방법을 제시함으로써 담당자에게 여러가지 방법을 알려주기 위함이다. Workspace 파일 반입 구성도 우선 Wo..
서비스, 보안, 데이터 등 어느정도 규모 있는 회사의 경우 AWS 계정을 나눠서 사용한다. 계정을 분리하면 계정간의 데이터를 공유해야 하는 일이 생기는데 이때 S3의 객체 소유권 설정/업로드할 때의 파라미터에 따라 읽기에 제한이 생긴다!! CrossAccount S3 버킷 정책 기본적으로 계정이 다르면 서로의 S3에 업로드가 불가하다. 하지만 S3 버킷에 아래와 같이 다른 계정의 ARN에 대해 설정한다면 CrossAccount의 S3 Object가 가능하며 필요에 따라서 Action, Resource를 제한하는것도 좋은 방법이다. 아래와 같이 설정하게 되면 Deny 정책이 먼저 적용되기 때문에 test-cross-account의 게정은 test 버킷에 test.txt의 이름을 제외하고 모두 업로드가 가능..
Kobby
'기술 이모저모' 카테고리의 글 목록 (3 Page)