아이엠 !나이롱맨😎
article thumbnail
[겉핥기 시리즈] 노드를 줄였다가 늘렸다가 합쳤다가 없앴다가 - Karpenter 편
겉핥기 시리즈 2023. 3. 19. 12:19 댓글 0건

AWS EKS 를 통해 클러스터를 구축하면 Data Plane (이하 Node) 를 다양한 방식으로 구축할 수 있습니다. Managed Node Group, Fargate 그리고 이러한 리소스를 유연하게 관리할 수 있게 해주는 AWS Auto Scaling, Karpenter 가 있습니다. 이번 글에서는 Karpenter 를 통해 AWS Auto Scaling 보다 유연하게 Node 를 관리하는 방법을 알아보고자 합니다. 겉핥기 시리즈에 맞게 개념보다는 실행 방법에 대해 알아보겠습니다. (개념이 궁금하다면 여기 참고) 우선 간단하게 알아보도록 하죠. 렛츠두더코드! Karpenter 가 뭐죠? 여기서 말하는 노드 == 인스턴스 == 서버 는 모두 같은 개념입니다. Karpenter 를 알아보기 전에 AW..

article thumbnail
[Python] Counter 모듈 사용법 feat. 카카오 튜플
알고리즘/유용한 파이썬 함수 2023. 3. 12. 21:44 댓글 0건

파이썬에는 정말 유용한 함수가 많습니다. 그 중 Counter 는 제가 생각하기에 가장 유용한 함수 중에 하나라고 생각합니다. 이번 글에서는 Collections 모듈 중 하나인 Counter 함수에 대해서 알아보고 2019 카카오 겨울 인턴쉽 튜플 에 바로 적용해보겠습니다. 그럼 렛츠두더코드! Collections 의 Counter() Counter 는 리스트나 문자열의 갯수를 dict 타입으로 반환해주는 함수입니다. 말로 백번 설명하는 것보다 한번의 예제가 보는 것이 더 좋겠죠? Counter(["I", "am", "Iron", "man", "!", "!"]) # Counter({'!': 2, 'I': 1, 'am': 1, 'Iron': 1, 'man': 1}) Counter(["I", "am", "..

article thumbnail
[Kubernetes] 슈뢰딩거의 노드? 노드가 있었는데 없어요 - EKS Fargate
DevOps/Kubernetes 2023. 3. 12. 21:18 댓글 0건

누구나 한번 쯤은 슈뢰딩거의 고양이에 대해서 들었거나 관련 밈을 보셨을 겁니다. 그래도 혹시 모르시는 분들을 위해 간단히 알려드리죠. 고양이를 보이지 않는 상자에 넣고, 그 속에 50:50 확률로 고양이를 죽이는 독극물을 넣었을 때 고양이는 죽을까요? 살까요? 일반 세계에서는 죽었다, 살았다 라고 표현하지만 양자역학 세계에서는 이를 죽음과 삶이 중첩된 상태라고 표현합니다. 즉, 살아있으면서 죽어있다 라고 합니다. 오늘 글에서 소개할 Fargate (파게이트) 또한 슈뢰딩거의 고양이와 비슷한 개념입니다. (나만 그렇게 생각할수도..) Fargate 는 무엇일까? 우리는 보통 AWS 를 이용해서 애플리케이션을 배포한다고 하면 EC2 를 통해 인스턴스를 생성하고, 그 인스턴스 내부에 컨테이너나 직접 프로세스로..

article thumbnail
[Python] re 모듈 사용법 feat. [3차] 파일명 정렬
알고리즘/유용한 파이썬 함수 2023. 3. 9. 20:57 댓글 3건

파이썬에서 문자열을 처리하는 방법은 여러가지가 있죠. 그 중 정규표현식을 이용하면 좀 더 다양하고 쉽게 처리를 할 수 있습니다. 그래서 이번 글에서는 파이썬에서 유용한 모듈 중 정규식을 처리해주는 re 모듈을 이용해서 문자열을 처리하는 방법에 대해 알아보려고 합니다. 그리고 가장 마지막엔 배운걸 토대로 카카오 문제인 [3차] 파일명 정렬에 적용해보려고 합니다. 그럼 렛츠두더코드! re 모듈의 함수들 re 모듈에는 다양한 함수들이 존재합니다. 그 중 알고리즘 풀이에 유용할 것 같은 함수들에 대해 알아보겠습니다. search match fullmatch findall finditer sub subn split search() 문자열에서 패턴이 일치하는 지 확인합니다. print(re.search("A", "..

article thumbnail
[Github Action] ARC 를 이용한 Gradle Build Cache
DevOps/Github Action 2023. 3. 6. 22:39 댓글 0건

Action Controller Runner (이하 ARC) 는 파드 단위 Self Hosted Runner 입니다. 즉, 쿠버네티스 환경에서 파드를 Self Hosted Runner 로 지정할 수 있게 해주는 오픈소스죠. ARC 에 대한 정보는 여기를 확인해주세요. 근데 ARC 를 사용하는 경우 하나 고려해야 할 사항이 있습니다. 바로 ARC 에 의해 만들어지는 파드는 Github Action 의 Job 이 종료될 경우 제거되고 다시 생성됩니다. 따라서 HostPath 나 EFS 를 사용하지 않으면 Job 을 실행할 때 생성했던 Java SDK, Node, Build File 등 또한 같이 삭제됩니다. 그 말은 즉슨, caching 을 할 수 없으며, 매번 필드할 때 마다 새롭게 패키지를 설치하기 때문..

article thumbnail
[Kubernetes] PVC로 마음대로 떼었다 붙이는 AWS EBS
DevOps/Kubernetes 2023. 3. 6. 15:59 댓글 0건

퍼블릭 클라우드 환경에서 쿠버네티스를 운영할 때 온프로미스보다 편한 점 중 하나가 바로 볼륨 관리 라고 생각합니다. EBS CSI Driver 를 설치 후 Storage Class, PV 그리고 PVC 를 통해 쉽게 AWS EBS 를 통해 볼륨을 언제 어디서든 가져다 쓸 수 있죠. 한편, 쿠버네티스에선 다양한 방법으로 볼륨을 사용할 수 있는데요. 컨테이너간 공유를 가능케 해주는 EmptyDir, 노드의 볼륨을 통해 파드간 공유를 가능케 해주는 HostPath, NFS 서버를 사용하는 NFS 기능 등이 있습니다. 그라파나를 노드에 배포할 때, 그라파나의 설정 파일은 그라파나가 배포된 노드의 볼륨에 저장이 됩니다. 따라서 만약 그라파나 파드가 다른 노드에 배포가 될 경우 이전에 가지고 있던 그라파나 설정을 ..

article thumbnail
[나작소쿠] 영토 짓기 feat. 미니 PC 조립
나만의 작고 소중한 k8s 왕국 2023. 2. 28. 00:53 댓글 0건

그동안 퍼블릭 클라우드를 이용해서 쿠버네티스 클러스터 환경을 구축했습니다. 문제없이 잘 사용하고 있었지만, 역시나 문제는 비용이였습니다. 마스터 노드, 워커 노드 총 2대만 띄어놓아도 족히 달에 5만원 이상은 나왔죠 😢 playground 를 사용한다해도 속도가 느리고 아무래도 휘발성이다 보니 불편함이 많았습니다. 그래서 결국 쿠버네티스 클러스터를 구성할 PC 를 하나 장만해야겠다 생각을 했고, A to Z 까지 구성을 해보고 싶어 PC 또한 부품별로 구매하여 조립하고자 했습니다. 어떤 부품들이 있을까? 부품은 아래와 같습니다. AMD Ryzen 5700G 16core ASRock DeskMini X300 베어본 삼성 PM9A1 M.2 NVMe SSD 1TB 삼성 DDR4 PC-25600 32G 노트북용..

article thumbnail
[Github Action] 타노스는 이런 느낌일까? RUNNER_TOKEN must be set
트러블 빵야 2023. 2. 20. 00:25 댓글 7건

쿠버네티스 환경에선 Action Controller Runner (이하 ARC) 를 이용해서 파드를 Self Hosted Runner 로 사용할 수 있습니다. ARC 구조는 위와 같습니다. Self Hosted Runner 로 사용할 파드를 RunnerDeployment 또는 RunnerSet 으로 배포할 수 있죠. RunnerDeployment 는 쿠버네티스에서 Deployment 와 동일하게 동작하고, RunnerSet 은 StatefulSet 과 동일하게 동작합니다. 또한 배포하게 되면 파드 안에 2가지 컨테이너 동작하게 되는데, 하나는 Github Action Job 을 처리하는 Runner 컨테이너, 또 하나는 Docker 관련 일을 처리하는 Docker 컨테이너입니다. 옵션을 통해 Runner..

article thumbnail
[Kubernetes] Istio Ingress 에 ALB 를 붙여보자 !
DevOps/Kubernetes 2023. 2. 12. 19:10 댓글 0건

Istio 는 흔히 K8S 클러스터 내에서 서비스 메시 역할을 해줍니다. 서비스 메시 뿐만 아니라 Nginx Ingress, ELB Ingress 처럼 Ingress 역할 또한 해줍니다. Istio Ingress Gateway 가 정식 명칭이나 쉽게 Istio Ingress 로 지칭하도록 하죠 🤟 EKS 와 같은 퍼블릭 클라우드를 이용해서 Load Balancer Service 를 생성해주면 자동으로 CLB 가 할당됩니다. 따라서 Istio Ingress 또한 CLB 로 할당이 됩니다. CLB 는 앞으로 AWS 에서 deprecated 되기 때문에 Network Load Balancer(이하 NLB) 나 Application Load Balancer(이하 ALB) 로 대체되어야 합니다. 그래서 이번 글에..

article thumbnail
[Kubernetes] 친한 듯, 안 친한 Pod 와 Goofys
트러블 빵야 2023. 2. 12. 18:52 댓글 2건

Nginx 기반의 Pod 내에서 S3 와 Mount 하기 위해 goofys 를 사용했던 적이 있습니다. (goofys 말고 EBS 나 EFS 도 위시리스트에 있었지만, goofys 가 가장 적합하다고 판단하여 goofys 를 사용하게 되었습니다) 그림으로 표현하자면 아래와 같죠. Nginx 가 provisioning 될 때 ConfigMap 으로 init.sh 를 주어 goofys 를 마운트 한 후 실행되도록 했습니다. 이런식으로 말이죠. #!/usr/bin/env sh set -eu wget https://github.com/kahing/goofys/releases/latest/download/goofys chmod +x goofys /goofys /var/nginx ... nginx -g 'daemo..

article thumbnail
[Kubernetes] 인증/인가와 ETCD 사이 그 녀석 - Admission Controller
DevOps/Kubernetes 2023. 1. 24. 18:42 댓글 0건

쿠버네티스는 다른 플랫폼처럼 인증(Authentication)/인가(Athorization) 를 제공해줍니다. 따라서 인증받지 못한 사용자라면 401 (UnAuthorized) 를 응답 받고, 인증은 되었지만 권한이 없다면 403(Forbidden) 응답을 받게 되죠. 아주 평범한 인증/인가 프로세스입니다. 그런데 인증/인가가 완료되었다고쿠버네티스 환경에 바로 적용할 순 있는 건 아닙니다. 사용자가 보낸 요청을 적용하기 직전 한 군데를 더 들립니다. 그것이 바로 Adimission Controller 입니다. 이번 글에서는 Adimission Controller 에 대한 개념을 간단하게 설명하고, Adimission Controller 를 구현해볼 생각입니다. 😎 Admission Controller 가..

article thumbnail
[겉핥기 시리즈] 명단에 있네요, 들어오시죠! - Iptables 편
겉핥기 시리즈 2023. 1. 9. 22:00 댓글 0건

Iptables 를 알아보기 전에 먼저 Netfilter 에 대해 알아보죠 ! Netfilter 와 Iptables AWS EC2 인스턴스를 생성할 때 Security Group 이라는 것을 설정합니다. 이름 그대로 외부로 들어오는 트래픽을 조절할 수 있게 해주는 방화벽 기능이죠. EC2 인스턴스 앞단에 이를 처리해주는 아마 물리적인 기계가 있어서 어떤 트래픽은 허용하고, 어떤 트래픽은 거부하겠죠. Security Group 이 하드웨어 방화벽 이라면 Netfilter 는 소프트웨어 방화벽이라고 생각하면 이해하기 쉽습니다. Netfilter 는 다음과 같은 특징이 있습니다. 소프트웨어 방화벽 패킷 필터링 리눅스 커널 내부의 프레임워크 포트 주소, 변환, 포트 포워딩 및 패킷 변경 라우팅 전후에 데이터 및..

article thumbnail
[Kubernetes] aws_auth 를 찾을 수 없습니다..
트러블 빵야 2022. 12. 23. 11:44 댓글 0건

테라폼은 Code 로 인프라를 구축할 수 있게 도와주는 IaC Tool 입니다. 특히 AWS 인프라를 구축할 때 참 유용하게 사용할 수 있죠. module 을 제공해주기 때문에 어렵지 않게 VPC, EKS, ELB 를 생성하고 코드를 관리 할 수 있습니다. 이번 글에서는 테라폼을 이용해 EKS 를 구축하는 과정에서 겪은 문제점과 이를 해결했던 방법에 대해 이야기 해볼까 합니다. 우선 Apply!! terraform-aws-eks 에 가보면 아주 친절하게 테라폼을 이용해 EKS 를 구축할 수 있는 방법에 대해 알려줍니다. 무작정 eks 모듈을 import 하고 example 과 EKS Best Practices Guides 참고하여 테라폼 코드를 작성했습니다. provider "kubernetes" { h..

article thumbnail
[겉핥기 시리즈] k8s의 리소스를 위해 치얼스 - Helm 편
겉핥기 시리즈 2022. 12. 21. 23:19 댓글 0건

왜 Helm 을 사용하나요? Helm 이 무엇인지 알아보기 전에 왜 필요한지 먼저 알아보죠 ! 🧐 Consistency 쿠버네티스에 리소스를 배포하려면 아래 이미지처럼 yaml 로 작성해주어야합니다. yaml 이 1,2 개라면 관리가 어렵지 않겠지만 10개 정도만 되도 관리하기가 매우 힘들고 불편해집니다. 또한 kubectl edit을 통해 쿠버네티스의 리소스를 업데이트 해줄 수 있는데, 여러 개발자가 관리를 하게 된다면 일관성(Consistency) 문제가 발생할 수 있습니다. Revision History 어떠한 애플리케이션이 Deploy, ConfigMap, Service, Ingress yaml 로 배포된다고 가정해보죠. 이때 ConfigMap 과 Service 가 업데이트 되어서 yaml 이 변..

article thumbnail
[AWS] rsync 말고 datasync ! - EFS Data 이전
AWS 2022. 11. 20. 20:57 댓글 0건

EFS (Elastic File System) 은 AWS 의 파일 시스템 서비스입니다. EBS, S3 처럼 데이터를 저장할 수 있습니다. 하지만 각각 쓰임의 목적이 다르기 때문에 자신의 목적에 맞게 잘 사용하여야 합니다. EFS S3 EBS 사용 케이스 프라이빗 이미지 레지스트리 엔터프라이즈급 데이터 백업 웹 서비스 및 컨텐츠 EC2 의 부팅 볼륨 그리고 AWS DataSync 를 이용하면 저장소의 데이터들을 다른 곳으로 옮길 수 있습니다. 같은 VPC 내 저장소는 물론 다른 VPC, 교차 계정 모두 가능합니다. ✅ 다른 VPC, 교차 계정은 서로의 VPC 가 Peering 되거나 TGW 로 sharing 된 상태여야 합니다 자세한 동작 방식은 확인하려며 여기를 눌러주세요 그럼 간단하게 한번 DataSy..

profile on loading

Loading...