반응형 Kubernetes12 [Kubernetes] AWS Karpenter 완전 정복(CA와의 차이) 저번에는 쿠버네티스의 Cluster AutoScaling을 구현하였지만노드가 초기화되고 준비되는데 오래 걸려 더 빠르게 프로비저닝 할 수 있는Karpenter를 구현했던 내용에 대해서 정리해 보겠다✍. Karpenter란?AWS에서 제공하는 오픈 소스 Kubernetes 클러스터 오토스케일러다.ASG(Auto Scaling Group)기반의 CA와는 달리 Karpenter는 ASG에 의존하지 않고, AWS Fleet API을 사용하여 더 빠른 프로비저닝을 지원한다.심지어 파드를 노드에 배치할 때도 직접 Node-Binding을 하므로 scheduler 동작하지 않아 더 빠르다. Karpenter 도입 계기기존 Cluster Autoscaler를 사용하여 관리형 노드 그룹(Managed NodeGroup.. Kubernetes 2024. 3. 22. [Kubernetes] EKS Cluster AutoScaling 완전 정복(Feat: Terraform, Helm, HPA, Jmeter) Kubernetes 환경의 Node에는 용량에 제한이 있어, 더 이상 생성될 수 없는 Pod는 Pending 상태가 되는데이를 해결하기 위한 방법으로 Node의 리소스를 늘리거나 수를 조절하는 솔루션을 적용하게 된다이 솔루션에 CA(Cluster AutoScaling)과 Karpenter가 있는데 오늘은 CA에 대해서 알아보도록 하자Cluster AutoScaling 이란? Kubernetes에서 클러스터 내 리소스 사용량에 기반하여 노드의 수를 유연하게 조절하는 기술이다 공식문서에서는 pod가 실패하거나 다른 노드로 다시 예약될 때 클러스터의 노드 수를 유연하게 조절한다고 소개하고 있다. Cluster AutoScaling 동작과정 1) Pod가 충분한 리소스를 할당 받지 못해 Pending 상태임.. Kubernetes 2024. 3. 16. [Kubernetes] Service 개념 및 종류 요약 서비스 유형 설명 ClusterIP 클러스터 내부에서만 접근 가능한 서비스로, 내부 통신에 사용됩니다. 고유한 IP 주소를 할당받으며, 외부 네트워크에서는 접근할 수 없습니다. NodePort 클러스터 외부에서 서비스에 접근할 수 있도록 해주며, 모든 노드에 동일한 포트를 할당합니다. 개발 및 테스트 환경에 적합합니다. LoadBalancer 클라우드 제공 업체의 로드 밸런서를 사용하여 외부 트래픽을 자동으로 관리합니다. 고가용성과 대규모 트래픽 처리에 적합합니다. ExternalName 특정 외부 DNS 이름에 대한 참조를 제공합니다. 클러스터 내부에서 외부 리소스에 대한 접근을 간소화합니다. Headless 개별 파드에 직접 접근할 수 있도록 해주며, 서비스를 통하지 않고 직접 개별 파드와 통신.. Kubernetes 2023. 12. 17. [Kubernetes - 파드 실습] 셀렉터, 레이블 활용, 레플리케이션 컨트롤러 & 스케줄링 테스트 저는 이전에 쿠버네티스 클러스터를 생성하면서 대시보드를 구성해 놓았기에 해당 대시보드 환경에서 실습을 진행하겠습니다. 저와 같은 환경에서 실습 하실 분들은 해당 링크를 참고하시면 되겠습니다. https://ddohyung.tistory.com/105 1. POD 생성 apiVersion: v1 kind: Pod metadata: name: pod-1 spec: containers: - name: container1 image: kubetm/p8000 ports: - containerPort: 8000 - name: container2 image: kubetm/p8080 ports: - containerPort: 8080 apiVersion: 쿠버네티스 API의 버전을 지정합니다. 이 경우 v1은 가장 기.. Kubernetes 2023. 12. 12. [Kubernetes] 쿠버네티스 라벨과 셀렉터 1. 쿠버네티스에서 라벨이란? 라벨은 쿠버네티스 오브젝트에 첨부할 수 있는 키-값 쌍의 메타데이터입니다. 이를 통해 사용자는 리소스를 식별하고, 그룹화하며, 선택적인 작업을 수행할 수 있습니다. Key-Value 로 구성된다. 레이블은 사용자가 클러스터내에 객체를 만들때 메타데이터로 붙일 수 있다. 생성된 이후 언제든 수정이 가능하며 코어 시스템에 직접적인 의미는 없습다. 오브젝트마다 Key-Value로 Label을 정의할 수 있으며 Key는 고유한 값이어야 합니다. Label 키가 해당 리소스 내에서 고유하다면 하나 이상 원하는 만큼 Label을 가질 수 있습다. 2. 라벨을 쓰는 이유? 라벨은 리소스를 분류하고, 복잡한 시스템 내에서 특정 오브젝트를 쉽게 찾거나 관리할 수 있게 해줍니다. 예를 들어,.. Kubernetes 2023. 12. 12. [Kubernetes] 쿠버네티스 구성 & Pod 과정 Kubernetes란?컨테이너 오케스트레이션 도구로, 여러 컨테이너들의 생성과 생명주기를 관리하는 운영 프로그램이다. 쿠버네티스 컴포넌트컨트롤 플레인(Control Plane) 쿠버네티스 클러스터의 중앙 제어 및 관리를 담당하는 구성 요소들의 집합이다.각 컴포넌트는 클러스터의 상태를 유지하고 파드의 생명주기를 관리하는 역할을 수행하며, 모든 프로세스의 중심은 API 서버를 중심으로 처리되며, 아래와 같이 구성되어 있다.쿠버네티스 API 서버컨트롤러 매니저 스케줄러etcd 1. 쿠버네티스 API 서버 (kube-apiserver)일종의 '문'이라고 생각하면 쉽다.쿠버네티스 클러스터와의 모든 상호작용을 처리하는 '중심'점이며, 모든 요청을 검증하고 권한을 확인한다.예를 들어, .. Kubernetes 2023. 12. 7. [Kubernetes] 쿠버네티스 클러스터 생성 1. XShell 설치 다운로드 url : https://www.netsarang.com/en/free-for-home-school/ 설치 후 k8s-master(192.168.56.30:22), k8s-node1(192.168.56.31:22), k8s-node2(192.168.56.32:22) IP 등록 2. VirtualBox 설치 (7.0.8 버전) https://www.virtualbox.org/wiki/Downloads Downloads – Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloadin.. Kubernetes 2023. 11. 26. [Docker]비디오 스트리밍 마이크로서비스 비디오 스트리밍 코드: const express = require("express"); const fs = require("fs"); //내장된 fs 라이브러리를 사용해 Node.js에서 파일 시스템 API를 쓸 수 있다. const path = require("path"); const app = express(); const port = 3000; // // Registers a HTTP GET route for video streaming. // 비디오 스트리밍을 위한 REST API인 HTTP 경로를 정의한다. app.get("/video", (req, res) => { // 브라우저에 전송 할 스트리밍 비디오의 경로 const videoPath = path.join("./videos", "Samp.. Kubernetes 2023. 6. 6. [Docker] SpringBoot jar - 도커 이미지 생성 1. SpringBoot 간단한 코드 작성 package com.example.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class TestApplication { @RequestMapping("/") String home.. Kubernetes 2023. 6. 5. [Container] 컨테이너 오케스트레이션 (Container Orchestration) 서버를 관리하는 것 서버의 상태를 관리하기 위한 노력 ->문서화를 잘해보자 -> OS업데이트나 환경이 바뀌면 똑같이 따라 해도 잘 안 되는 케이스가 생긴다. 그래서 등장한 Chef , Puppet, Ansible 서버를 관리하는 도구를 사용하는 것, 해당 도구에 맞게끔 어떤 프로그램이 없으면 설치하고, 설정이 맞지 않으면 어떤 설정을 바꿔라 이러한 것들을 서포트하는 역할 단점 1. 설정도구 자체를 배워야 함 서버를 굉장히 복잡하게 관리하다 보면 도구의 사용법도 난이도가 굉장히 높아진다. 자바나 노드의 버전을 다르게 운영해야 하는 경우 노드 프로그램 자체의 디렉터리를 다르게 설정해야 하는데, 어떻게 하면 한 서버에서 여러 개의 버전을 잘 돌릴 수 있을 것인가? 가상머신의 등장 가상머신 하나에는 하나의 프로.. Kubernetes 2023. 6. 4. [컨테이너 인프라 환경 구축을 위한] 쿠버네티스/도커 온프레미스 : 엔지니어가 개발 환경을 만들어 제공하면 사용자(개발자)는 그에 맞는 도구를 모두 설치해야했던 환경 - 고전적 방법 IaaS : 돈을 넣으면 자판기에서 미리 준비된 상품이 나오듯 이미 구성된 환경을 사용자가 필요에 따라 선택하고 조합해서 사용할 수 있게 제공되는 서비스로서의 인프라 인프라 환경이 빠르게 갖춰지는 만큼 소프트웨어도 빠르게 개발하고 적용되길 고대함 -> 애자일 방법 대두 폭포수 방법론(기존 개발 방법론) : 계획 단계에서 설계와 환경을 완전히 구비한 후 예정된 목표를 달성해 나아감 애자일 : 일정 주기를 정한 다음 해당 주기에 맞춰 요구 사항을 만족하는 프로토타입을 만들고 이를 개선해 나가며 최종 목표에 점진적으로 접근 애자일 방법론 시대에 맞춰 인프라는 계속해서 변화 중, 사용.. Kubernetes 2023. 4. 5. Docker 이제 하나하나 모든걸 기록할려고 한다 도커를 사용하기에 앞서 도커를 실행하자마자 오류가 났다 도커를 사용하기 위해서는 CPU 가상화 설정을 해주어야한다 아마 대부분은 CPU 가상화 설정이 되어 있지 않을 것인데 이렇게 작업관리자에 들어가 성능 부분에서 가상화 부분을 보면 된다. 저부분이 사용으로 되어 있지않으면 각 제조사에 맞는 방법으로 Bios에 들어가 가상화 설정을 해주어야한다 나는 CPU가 AMD라 해당 방법으로 해주었다. [Advance] - [CPU Configuration]을 들어가 SVM Mode를 enable 해주면 된다. Intel사의 경우 방법이 조금 Bios구성이 다르지만 위와 거의 동일한 방식이다. 이번에는 WSL2의 설치가 불완전하다고 한다 윈도우 시스템에서 왜 리눅스 커널을 업데.. Kubernetes 2022. 10. 31. 이전 1 다음 반응형