[kubernetes] YAML 문법

들려쓰기로 계층을 구분하며, 동일한 계층의 항목은 동일한 들여쓰기로 표현된다. case1은 envFrom 리스트는 하나의 객체를 갖는다. 이 객체에는 secretRef와 name가 동일한 계층으로 존재한다. case1도 envFrom 리스트 하나의 객체를 는다. 하지만

2023년 3월 19일
·
0개의 댓글
·

[kubernetes] Persistent Volumes + Deployment와 StatefulSet의 차이점

쿠버네티스는 State-less 앱을 배포할 때 Deployment를 사용하고, state-full 앱을 배포할 때 StatefulSet을 사용할 것을 권장한다. 하지만 Deployment 또한 StatefulSet처럼 persistent volume claim(pv

2023년 3월 19일
·
0개의 댓글
·

[개발 상식] status vs state

State와 Status는 프로그래밍에서 자주 등장하는 단어지만, 둘 다 ‘상태’라고 번역되기 때문에 혼동하기 쉽다. 간단하게 그 차이를 알아보자. Status는 상태보다는 상황으로 번역하는 것이 이해하기 쉽다. 대표적으로 http status 라는 단어를 예로 들어보

2023년 3월 19일
·
0개의 댓글
·
post-thumbnail

[kubernetes] commonLabels 은 모든 리소스에 동일한 레이블을 추가한다.

label 은 쿠버네티스 오브젝트(파드 등)에 첨부된 키와 값의 쌍이다. 오브젝트의 특성을 식별하는 데 사용되어 사용자에게 중요하지만, 코어 시스템에 직접적인 의미는 없다. 예를들어 어떤 service가 Deployment를 식별하기 위해서는 deployment에 la

2023년 3월 17일
·
0개의 댓글
·
post-thumbnail

[Kubernetes]ArgoCD, Argo Workflows&Events 도입기

기존에 Jenkins를 통해서 CI/CD를 구축하고 사용하고 있었습니다. 하지만 몇가지 이유로 Jenkins를 버리고 Argo Project의 도구들을 활용하여 새로운 CI/CD를 구축했습니다. 자세한 소스코드는 아래 github 에 올려두었으니 참고바랍니다.

2023년 3월 13일
·
0개의 댓글
·
post-thumbnail

[Go] Embedding

이미 정의한 타입(무언가)을 재활용하여 새로운 타입(무언가)을 만드는 방법으로 상속과 컴포지션이 있다. 많은 언어에서 이 두 가지를 지원한다. 상속: 하위 클래스가 상위 클래스의 특성을 재정의, (IS-A) 관계컴포지션: 하위 클래스가 상위 클래스를 포함, (HAS-

2023년 1월 1일
·
0개의 댓글
·
post-thumbnail

[Go] Receiver

Go receiver Go의 함수가 특정 객체에 의존한다면 이 함수를 Receiver라고 부른다. 이때, 객체의 값에 의존하면, Value Receiver라고 부르고, 객체의 포인터에 의존하면 Pointer Receiver라고 부른다. Go는 구조체 객체에 의존하는

2023년 1월 1일
·
0개의 댓글
·
post-thumbnail

[Linux] exit 은 절대로 /etc/profile.d 속에 있으면 안 된다.

때는 오후 5시 40분, 퇴근까지 20분을 남겨두고 있었다. 퇴근 후에 실내 농구가 잡혀있는 날이라 상당히 들떠 있었다. 작업을 마무리하고 테스트를 위해서 서버에 다시 접속하려고 하는데, 다음과 같은 문제를 마주했다./etc/profile 의 동작 방식을 알고 있는

2022년 10월 29일
·
0개의 댓글
·
post-thumbnail

[kubernetes] k3s에서 Nvidia GPU사용하기

\[Image From: https://developer.nvidia.com/blog/announcing-containerd-support-for-the-nvidia-gpu-operator/] 필자의 k3s 클러스터에는 상당히 오래된 gtx 1050 라는 nv

2022년 9월 28일
·
0개의 댓글
·
post-thumbnail

[Kubernetes] 서비스를 외부에 노출하는 다양한 방법들. (NodePort, LoadBalancer, 그리고 Ingress)

쿠버네티스에서 생성하고 관리할 수 있는 배포가능한 가장 작은 컴퓨팅 단위를 Pod이라고 한다. Pod은 하나 이상의 컨테이너로 구성되어 있으며 스토리지, 네트워크를 공유하고, 해당 컨테이너를 구동하는 방식에 대한 명세를 갖는다. 마치 docker-compose 를 통

2022년 9월 10일
·
0개의 댓글
·
post-thumbnail

Start: Downloading VS Code Server Too Slow!

필자는 대부분의 개발을 remote server → remote container 에서 수행한다. VS code의 remote-ssh 익스텐션과 remote-container 익스텐션을 활용하면, 이런 작업을 대부분 자동화 할 수 있다. 예를 들어 미리 실행되고 있는

2022년 8월 11일
·
1개의 댓글
·
post-thumbnail

[네트워크] 스위치

스위치는 두가지 의미를 갖는다. 우선 넓은 의미의 스위치의 정의는 다수의 입력라인과 출력라인이 있으며 임의의 입력라인으로 들어오는 데이터를 임의의 출력라인으로 mapping 시킬 수 있는 장비이다.이런 정의에 입각해서 볼 때, 우리 주변에는 다양한 switching 장

2022년 7월 25일
·
1개의 댓글
·
post-thumbnail

[네트워크] ARP(Address Resolution Protocol)

ARP는 논리적 주소(IP주소)를 물리적 주소(MAC주소)로 변환하는 프로토콜이다.ARP는 다음과 같은 상황에서 사용된다.호스트 A가 호스트 B에게 데이터를 전달하려고 한다.호스트 A는 호스트 B의 IP 주소를 알고 있지만 MAC 주소는 모른다.Routing Table

2022년 7월 25일
·
0개의 댓글
·

[GORM][Mysql] Create If Not Exist

자주 마추지는 상황이다.데이터를 추가하면서PK가 중복되는 경우는추가하지 않으면서업데이트 or 무시할 때mysql에서 가장 효율적이로 이런 기능을 수행하는 방법이다.gorm에서는 OnConflict 객체를 db.Clauses에 추가하는 방식으로 기능을 구현하였다.clau

2022년 7월 21일
·
0개의 댓글
·
post-thumbnail

[kubernetes] 카오스 엔지니어링-1

techtarget에서 Ben Lutkevich가 소개하는 카오스 엔지니어링에 대해 정리하였다. 이번 포스트에서는 쿠버네티스 클러스터에 카오스 엔지니어링을 적용하는 방법은 다루지 않는다. 카오스 엔지니어링이 무엇인지 알아보고, 다음 포스트에서 쿠버네티스에 적용하는 방법

2022년 7월 18일
·
0개의 댓글
·
post-thumbnail

[kubernetes] k3s에서 mariadb 배포하기

필자는 그동안 AWS의 RDS를 주로 사용해왔다. 지금까지 진행한 개인 프로젝트들은 DB에 접근하고 읽고 쓰는 작업이 많지 않았기 때문에, 부담되지 않는 가격으로 간편하게 클라우드 서비스를 이용하였다.하지만, 최근 테스트 코드를 적극 활용하면서, db에 접근하는 횟수가

2022년 7월 16일
·
0개의 댓글
·

[Go] 제네릭

클래스나 메소드에서 사용할 내부 타입을 컴파일 순간에 지정하는 방법으로, 타입을 일반화하는 것을 의미한다.위와 같이 동일한 동작을 하지만, 타입이 다른 여러개의 함수를 생성할 때, Number 라는 타입을 지정하여 제네릭 함수를 만들 수 있다.이 Number라는 타입

2022년 7월 13일
·
0개의 댓글
·
post-thumbnail

[Go] 깊은 복사, 얕은 복사

사람이 프로그램한 변수(sysbolic address)는 특정 메모리 주소를 가리키고, 이 메로리 주소에는 실제 프로그램이 실행중에 사용되는 “값”이 저장되어 있다.값의 깊은 복사라고 하면, 이 실제 메모리에 값을 복사하여 물리적으로 다른 공간에 동일한 값을 저장한다.

2022년 7월 7일
·
0개의 댓글
·

[Go] Error 처리는 어떻게 해야할까?

Don’t just check errors, handle them gracefullyErrors, 체크만 하지말고 우아하게 처리하세요.너무 좋은 포스트 원문과 번역을 읽게되었다. 내가 이해한 내용을 바탕으로 요약해보고자 한다.모든 설명과 소스코드는 원문과 번역을 참고하

2022년 4월 19일
·
0개의 댓글
·
post-thumbnail

[risc-v]C를 risc-v assembly로 변환하기

어셈블리어(assembly language) 또는 어셈블러 언어(assembler language)는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어이다. (wiki)어샘블리어를 소개하기 전에 개발자가 C언어로 작성한 소스코드가 실제로 어떻게 실행되는지 알아

2022년 4월 17일
·
0개의 댓글
·