Kubernetes는 현대 애플리케이션 인프라에서 필수적인 역할을 하는 컨테이너 오케스트레이션 도구입니다. 하지만 Kubernetes를 활용해 애플리케이션을 배포하다 보면 YAML 파일의 복잡성과 환경별 설정 관리로 인해 어려움을 겪을 수 있습니다. 이런 문제를 해결하기 위해 등장한 두 가지 대표적인 도구가 바로 Helm Chart와 Kustomize입니다. 이 글에서는 두 도구의 개념, 사용 목적, 장단점, 그리고 실제 사용 사례를 살펴보겠습니다.Helm Chart란?Helm은 Kubernetes 생태계에서 "패키지 매니저" 역할을 하는 도구로, 애플리케이션 배포를 간소화합니다. Helm Chart는 애플리케이션 배포에 필요한 리소스를 템플릿화된 형태로 묶은 패키지라고 생각할 수 있습니다.Helm의 주..
Docker Stack이란?Docker Stack은 Docker의 오케스트레이션 도구인 Docker Swarm과 긴밀하게 통합된 기능으로, 다중 컨테이너 애플리케이션을 정의하고 배포하는 데 사용됩니다. 간단히 말해, Docker Compose 파일을 사용하여 여러 서비스로 구성된 애플리케이션을 하나의 스택(Stack)으로 정의하고, 이를 클러스터 환경에서 효율적으로 배포 및 관리할 수 있게 해줍니다.Docker Stack의 주요 기능서비스 정의 및 배포: 여러 컨테이너 서비스를 하나의 YAML 파일(Docker Compose 파일)로 정의하고, 이를 스택으로 배포할 수 있습니다.클러스터 관리: Docker Swarm 클러스터 내에서 스택을 관리하며, 노드 간의 자원 분배와 서비스 복제 등을 자동으로 처리..
현대 클라우드 네이티브 환경에서 보안은 가장 중요한 요소입니다. Kubernetes는 애플리케이션 관리를 간소화하지만, API 키, 인증 정보, 토큰과 같은 민감한 데이터를 처리할 때는 적절한 관리가 필수적입니다. Kubernetes의 Secrets는 이러한 민감한 정보를 저장하고 관리하기 위한 기본 메커니즘입니다. 하지만 기본 구현만으로는 충분하지 않습니다. 이 글에서는 Kubernetes Secrets가 무엇인지, 일반적인 문제점, 그리고 이를 안전하게 관리하기 위한 모범 사례를 살펴보겠습니다. Kubernetes Secrets란?Kubernetes Secrets는 비밀번호, OAuth 토큰, SSH 키와 같은 민감한 데이터를 안전하게 저장하는 리소스 유형입니다. ConfigMap과 달리 Secret..
Dart란? Dart는 구글에서 2011년에 처음 개발된 일반 목적 프로그래밍 언어입니다. 이 언어는 대규모 응용 프로그램 개발에 효율적이면서도 배우기 쉽고 사용하기 편리하도록 설계되었습니다. Dart는 웹 및 모바일 앱, 서버 측 애플리케이션 및 명령 줄 도구를 비롯한 다양한 애플리케이션을 구축하는 데 사용할 수 있습니다. 이 언어는 현대적인 구문을 갖추고 있으며 객체 지향 및 함수형 프로그래밍 패러다임을 모두 지원하며, 강력한 정적 타입 시스템을 갖추고 있어 컴파일 시간에 오류를 잡는 데 도움이 됩니다. Dart의 주요 기능 중 하나는 JIT(Just-In-Time) 및 AOT(Ahead-Of-Time) 컴파일 모두를 지원한다는 것입니다. 이를 통해 빠른 개발과 효율적인 코드 실행이 가능해집니다. 또..
Git 처음 사용하시면서 찾아보시면 대부분 아래와 같이 세팅을 하게 됩니다. git config --global user.name="git-user" git config --global user.email="git-user@test.com" 그러다가 특정 프로젝트에서 email, username 등 혹은 다른 옵션들을 변경 하고 싶은 경우에 아래와 같이 --local이라는 옵션을 줘서 사용을 하게 되는데, 생각보다 진행하기 귀찮습니다. git config --local user.name='xxxx' 이럴 때 그냥 config 파일을 분리하고 ~/.gitconfig 안에서 폴더 별로 config 값을 분리하는 것이 좋다고 생각합니다. ~/.gitconfig 변경 [includeif "gitdir:~/wor..
SSH 기본 SSH 는 Secure shell 혹은 Secure Socket Shell 이라고 불리며 원격서버에 안전하게 접속하기 위한 방법입니다. (서버 세팅이 되어 있고 private key를 보유 하고 있는 상황을 가정하고 적습니다.) 아래 커맨드로 기본적인 접속이 가능합니다. ssh -i @ SSH Agent? ssh agent 는 private key를 메모리에 저장하는 프로그램입니다. ssh client 에 private key를 노출하지 않으며, 주로 bastion host 를 통해 다른 서버에 접속하기 위해 사용됩니다. ssh-agent 추가 하는 방법 # 기본 ssh-add -K # Mac 사용자 keychain에 추가 (12.0 이상) ssh-add --apple-use-keychain..
String formatting의 방법 중 하나인 f-strings는 python 3.6부터 사용할 수 있는 기능입니다. 혹시 아직도 % 혹은 format을 사용하고 있으시면 f-strings로 바꿔보시는 걸 추천드립니다. 기본 사용법 >>> test_str = 'hello' >>> print(f'Test string is {test_str}') Test string is hello >>> print(f'{test_str=}') test_str='hello' # Print repr >>> print(f'{test_str}') 'hello' # Print Ascii >>> smile_face = '😀' >>> print(f'{smile_face}') '\U0001f600' >>> test_int = 123..
File Definition 가장 많이 접한 스토리지 종류로 hierarchy와 extension이 존재합니다. 그래서 필요한 데이터 엑세스하기 위해선 그 데이터의 경로를 알아야 합니다. Pros 가장 익숙한 스토리지 방식 Access 권한 유저 레벨에서 설정 가능 Cons 스토리지 용량이 커질수록 비용 증가 Unstructured Data를 저장하기 힘듬 Block Definition 데이터를 블록 단위로 나누어 저장하는 방식입니다. 각 블록당 고유 식별자를 부여 받게 되며 원하는 위치에 저장을 할 수 있습니다. 단일 경로에 저장하는 것이 아니기에 검색 속도가 빠르고 효율적인 저장 방법입니다. block 을 SAN 에 저장 가능합니다. (e.g. AWS EBS) Pros 빠른 속도 높은 신뢰성 수정하기..
macbook m1 에서 mysqlclient 설치 시 발생하는 에러 해결방법입니다. 1. mysqlclient대신 pymysql 을 설치 pip install pymysql https://pypi.org/project/PyMySQL/ PyMySQL Pure Python MySQL Driver pypi.org 2. brew를 통해 mysql을 설치한 뒤 진행 brew install mysql # 파이썬 버전 확인 python --version or python3 --version # python 버전 3이상으로 진행하시면됩니다. python -m pip insatll mysqlclient or python3 -m pip install mysqlclient * brew 가 혹시나 안깔려 있으시다면 아래 링..
- Total
- Today
- Yesterday
- 키보드
- feed-forward
- palindrome
- 나는리뷰어다
- Binary
- BASIC
- AWS
- 한빛미디어
- docker
- 책리뷰
- collator
- Container
- Git
- Python
- kubens
- Shell
- kubernetes context
- go
- Gemma
- leetcode
- Fine-Tuning
- K8S
- book
- Kubernetes
- Algorithm
- 파이썬
- csv
- LLM
- error
- lllm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |