분류 전체보기 231

kubeconfig파일을 사용하여 클러스터 접근 구성

개요 kubeconfig사용법을 찾아보다가, kubernetes공식 사이트에서 제공하는 가이드 보았고, 이를 직접 번역하여 포스팅하게 되었다. (원문 링크: https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) kubeconfig 파일을 사용하여 클러스터 접근 구성 kubeconfig 파일을 사용하여 클러스터, 유저, 네임스페이스 및 인증 메커니즘 정보를 구성해보자. kubectl 명령줄 도구는 kubeconfig 파일을 사용하여 클러스터를 선택하고 API 서버와 통신하는 데 필요한 정보를 찾는다. 참고: kubeconfig파일은 클러스터에 대한 액세스를 구성하는 데 사용되는 파일을 호출한다. 이것은 구..

Server/Kubernetes 2022.12.17

쿠버네티스(Kubernetes) Service란?

1. 서비스(Service)란? 쿠버네티스 서비스는 파드들을 통해 실행되고 있는 애플리케이션을 네트워크에 노출시키는 가상의 컴포넌트이다. 쿠버네티스 내부의 다양한 객체들이 애플리케이션과, 그리고 애플리케이션이 다른 외부의 애플리케이션이나 사용자와 연결될 수 있도록 도와주는 역할을 한다. 2. 쿠버네티스에서 서비스를 사용하는 이유 클러스터 안에서 애플리케이션을 구동시키는 데에 쓰이는 파드들의 반영속성인(ephemeral)특성 때문에 서비스를 사용하게 된다. 쿠버네티스에서의 파드는 무언가가 구동 중인 상태를 유지하기 위해 동원되는 일회성 자원이기 때문에, 언제든 다른 노드로 옮겨지거나 삭제될 수 있다. 또한 파드는 생성될 때마다 새로운 내부 IP를 받게 되므로, 이것만으로 클러스터 내/외부와 통신을 계속 유..

Server/Kubernetes 2022.12.17

HackerRank 문제풀이 - 7 (Minumum Swaps 2)

1.문제 임의의 숫자들을 담은 랜덤 길이의 배열이 주어진다.(숫자들은 중복되지 않는다.) 해당 배열이 1부터 arr.length-1 까지 순차적으로 정렬되게 해야한다. 정렬은 배열 내 항목들을 swap하는 방식으로 이루어진다. 최소한으로 몇번의 swap을 해야 정렬이 완성되는지 구하는 문제이다. 2. 문제풀이 2.1 풀이 과정 function minimumSwaps(arr) { let swapedNum = 0; for(let i = 0; i < arr.length; i++){ const correctNum = i + 1; if(arr[i] != correctNum){ for(let j = i; j < arr.length; j++){ if(arr[j] == correctNum){ arr[i] = arr.s..

HackerRank 문제풀이 - 6 (Left Rotation)

1.문제 임의의 배열(a)과 배열의 요소들이 왼쪽으로 얼만큼 쉬프트할지 숫자(d)가 정해진다. 가장 낮은 인덱스의 아이템은 가장 높은 인덱스로 이동하게 된다. 쉬프트가 끝난 배열을 리턴으로 넘기면 된다. 2. 풀이 2.1 풀이 과정 function rotLeft(a, d) { // Write your code here let tempArr = []; for(let i = d; i < a.length; i++){ tempArr.push(a[i]); } for(let i = 0; i < d; i++){ tempArr.push(a[i]); } return tempArr; } 풀이 방법은 다음과 같다. 주어진 배열(a)에서 쉬프트값(d)부터 배열의 길이까지 빈 배열(tempArr)에 넣는다. 그 후, 주어빈 배..

쿠버네티스(Kubernetes) Deployment란?

지난 포스팅에서는 쿠버네티스의 파드(Pod), 레플리카셋(ReplicaSet)에 대해 알아보았다. 오늘은 이를 아우르는 디플로이먼트(Deployment)에 대해 정리해보고자 한다. 1. 디플로이먼트란? 쿠버네티스의 디플로이먼트(Deployment)는 애플리케이션에 선언적 업데이트를 제공하는 쿠버네티스 리소스 개체이다. 디플로이먼트를 통해 애플리케이션에 사용할 이미지, 유효 포드의 수, 업데이트 방식과 같은 애플리케이션 라이프사이클을 정의할 수 있다. 쿠버네티스 Object는 사용자가 원하는 클러스터 워크로드의 형태를 쿠버네티스 시스템에 알리는 방법이다. Object가 생성되면 클러스터가 작동하여 Object를 유지하므로 쿠버네티스 클러스터를 원하는 상태로 둘 수 있다. 쿠버네티스에서는 각 Object를 ..

Server/Kubernetes 2022.12.15

Git 이전 커밋으로 롤백하기(git revert)

1.개요 지난번 포스팅에서는 로컬 프로젝트에서 이전 커밋으로 되돌아가는 git reset에 대해 다루었었다.(해당포스팅) 이번에는, 예전의 커밋으로 되돌린 뒤, 이를 푸시하여 원격 레포지토리에도 예전 소스들로 되돌아가게 할수있는 명령어를 포스팅해보고자 한다. git reset명령어도 특정 커밋으로 되돌아 간 후 force push를 할 수 있으나, 소스의 수정 사항들이 모두 날아가기 때문에 일반적인 상황에서는 원격 저장소에 force push는 가급적 해서는 안되며, 협업 상황에서는 절대로 해서는 안된다. 이럴 때 사용할 수 있는 명령어가 바로 특정 커밋으로 돌아가는 revert이다. 이 포스팅에서는 git revert명령어에 대해서 포스팅하고자 한다. 2. git revert 기초 사용법 git rev..

Git 2022.12.14

쿠버네티스(Kubernetes) ReplicaSet이란?

1. 레플리카셋(ReplicaSet) 이란? 레플리카셋의 목적은 레플리카 파드 집합의 실행을 항상 안정적으로 유지하는 것이다. 이처럼 레플리카셋은 보통 명시된 동일 파드 개수에 대한 가용성을 보증하는데 사용한다. 예를 들어, 5개의 파드를 항상 실행하도록 설정하면 이후 1개가 삭제되면 다시 파드 1개가 실행되어 5개를 유지할 수 있도록 해준다. 마찬가지로 노드 장애 등의 이유로 포드를 사용할 수 없다면 다른 노드에서 포드를 다시 생성하여 5개를 유지하도록 한다. 2. 레플리카셋을 사용하는 이유 쿠버네티스의 기본 단위인 Pod는 여러 개의 컨테이너를 추상화해 하나의 애플리케이션으로 동작하도록 만드는 훌륭한 컨테이너 묶음이다. 그러나 YAML에 포드만 정의해 생성하게 되면 이 Pod의 생애 주기(Lifecy..

Server/Kubernetes 2022.12.13

쿠버네티스(Kubernetes) Pod란?

1. 포드(Pod)란? 쿠버네티스 포드는 Linux 컨테이너를 하나 이상 모아 놓은 것으로, 쿠버네티스 애플리케이션의 최소 단위이다. 강하게 결합된 여러 개의 컨테이너로 구성된 포드도 있고(고급 활용 사례), 단일 컨테이너로만 이루어진 포드도 있다.(더 일반적인 활용 사례). 컨테이너를 쿠버네티스 포드로 그룹화하는 이유는 아래의 설명과 같이 리소스를 더 지능적으로 공유하기 위해서이다. 쿠버네티스 시스템에서는 같은 포드에 속한 컨테이너끼리 동일한 컴퓨팅 리소스를 공유한다. 이러한 컴퓨팅 리소스를 쿠버네티스에 풀링하여 클러스터를 만들고, 이를 바탕으로 더 강력하고 지능적으로 분산된 애플리케이션 실행 시스템을 제공할 수 있다. 쿠버네티스 포드의 장점을 이해하는 데 가장 중요한 요소가 아래에 정리되어 있다. 하..

Server/Kubernetes 2022.12.11

클린 아키텍쳐(Clean Architecture) 에 대해

클린 아키텍쳐에대해 공부하기 위해 포스팅을 찾던 중, 잘 정리된 외국 포스팅이 있어서 이를 번역하여 포스팅하고자 한다. The Clean Architecture Diagram 지난 몇 년 동안 우리는 시스템 아키텍처에 관한 다양한 아이디어를 보았다. 여기에는 다음이 포함된다. Hexagonal Architecture (a.k.a. Ports and Adapters) by Alistair Cockburn, Steve Freeman, Nat Pryce가 멋진 책 Growing Object Oriented Software에서 채택 Jeffrey Palermo의 Onion Architecture Screaming Architecture James Coplien 및 Trygve Reenskaug의 DCI. Iva..

[NPM] 사용했던 Package가 업데이트되면서 발생되던 버그 해결

1. 개요 몇 달 전 npm의 의존성 관리 파일 (package.json)에 대해 포스팅 한 적이 있었다. (=> 해당 포스팅) 근데 며칠 전 포스팅에서 우려사항으로 적었던 상황이 실제로 발생되어 포스팅하고자 한다. 2. 문제 상황 웹에서 영상을 녹화한 후, 녹화한 파일을 처리한 뒤에 blob으로 변환하여 firebase storage에 업로드하는 기능을 구현했었다. 그런데, 잘 되던 영상 처리가 어느 순간부터 무한루핑이 돈다는 제보가 있어서 살펴보게 되었는데, firebase 패키지 내에서 오류가 나고 있었다. 그러나, 로컬 개발환경에서는 해당 문제가 발생하지 않았다. 그렇다면.. 변경된 로직이 없다면, 촬영 환경이나 값이 바뀌었을 수도 있다 생각하여 여러가지 원인을 찾아보기 시작했었는데... 희한하게..

반응형