Searching...
한국어
English
Español
简体中文
Français
Deutsch
日本語
Português
Italiano
한국어
Русский
Nederlands
العربية
Polski
हिन्दी
Tiếng Việt
Svenska
Ελληνικά
Türkçe
ไทย
Čeština
Română
Magyar
Українська
Bahasa Indonesia
Dansk
Suomi
Български
עברית
Norsk
Hrvatski
Català
Slovenčina
Lietuvių
Slovenščina
Српски
Eesti
Latviešu
فارسی
മലയാളം
தமிழ்
اردو
Kubernetes Patterns

Kubernetes Patterns

Reusable Elements for Designing Cloud-Native Applications
by Bilgin Ibryam 2019 266 pages
Technology
Technical
Engineering
듣기

가지 주요 요점

1. 쿠버네티스: 클라우드 네이티브 애플리케이션의 기초

쿠버네티스는 컨테이너 오케스트레이션 플랫폼으로, 그 위에 구축된 다른 플랫폼의 기초를 형성합니다.

분산 프리미티브. 쿠버네티스는 클라우드 네이티브 애플리케이션을 구축하기 위한 새로운 분산 프리미티브 세트를 도입합니다. 여기에는 컨테이너 그룹인 파드(Pods), 네트워킹 및 로드 밸런싱을 위한 서비스(Services), 애플리케이션 수명 주기를 관리하는 다양한 컨트롤러가 포함됩니다. 이러한 프리미티브는 전통적인 인프로세스 빌딩 블록에 비해 더 높은 수준의 추상화를 제공하여 개발자가 인프라 문제보다는 애플리케이션 로직에 집중할 수 있게 합니다.

선언적 접근 방식. 쿠버네티스는 개발자가 애플리케이션의 원하는 상태를 지정하고, 플랫폼이 지속적으로 그 상태를 유지하도록 하는 선언적 모델을 채택합니다. 이 접근 방식은 애플리케이션 관리를 단순화하고 자동화된 치유 및 확장을 가능하게 합니다. 주요 쿠버네티스 개념은 다음과 같습니다:

  • 컨테이너: 애플리케이션 코드와 종속성을 패키징하고 격리된 단위
  • 파드: 하나 이상의 컨테이너로 구성된 가장 작은 배포 단위
  • 서비스: 파드 그룹에 접근하기 위한 안정적인 네트워크 엔드포인트
  • 라벨과 주석: 리소스를 조직하고 선택하기 위한 메타데이터
  • 네임스페이스: 리소스 격리 및 다중 테넌시를 위한 가상 클러스터

2. 기초 패턴: 컨테이너화된 앱의 빌딩 블록

완전히 자동화되기 위해 클라우드 네이티브 애플리케이션은 상태를 추론할 수 있도록 하여 쿠버네티스가 애플리케이션이 실행 중인지, 요청을 처리할 준비가 되었는지 감지할 수 있어야 합니다.

예측 가능한 요구. 애플리케이션은 리소스 요구 사항과 런타임 종속성을 선언해야 합니다. 이를 통해 쿠버네티스는 배치 및 확장에 대한 지능적인 결정을 내릴 수 있습니다. 주요 측면은 다음과 같습니다:

  • 리소스 프로필: CPU 및 메모리 요청과 제한을 지정
  • 품질 서비스(QoS) 클래스: Best-Effort, Burstable, Guaranteed
  • 파드 우선순위: 파드의 상대적 중요도를 나타냄

선언적 배포. 쿠버네티스는 최소한의 다운타임으로 애플리케이션을 업데이트할 수 있는 메커니즘을 제공합니다:

  • 롤링 업데이트: 오래된 파드를 새로운 파드로 점진적으로 교체
  • 블루-그린 배포: 두 버전 간의 트래픽 전환
  • 카나리 릴리스: 새로운 버전에 대한 트래픽을 점진적으로 증가

건강 프로브 및 관리 수명 주기. 애플리케이션은 건강 검사를 구현하고 수명 주기 이벤트에 응답해야 합니다:

  • 생존 프로브: 애플리케이션이 실행 중인지 감지
  • 준비 프로브: 애플리케이션이 트래픽을 처리할 준비가 되었는지 결정
  • 수명 주기 훅: 시작 및 중지 이벤트에 응답

3. 행동 패턴: 파드 관리 및 서비스 디스커버리

싱글톤 서비스 패턴은 애플리케이션의 인스턴스가 한 번에 하나만 활성화되도록 하면서도 높은 가용성을 보장합니다.

작업 관리. 쿠버네티스는 다양한 유형의 워크로드를 관리하기 위한 추상화를 제공합니다:

  • 배치 작업: 유한하고 완료 가능한 작업 실행
  • 주기적 작업(CronJobs): 예약된 반복 작업
  • 데몬 서비스: 모든 노드에서 시스템 수준 서비스를 실행

상태 저장 서비스. 쿠버네티스는 안정적인 네트워크 ID와 지속적인 스토리지가 필요한 애플리케이션을 관리하기 위해 StatefulSets를 제공합니다:

  • 순차적 배포 및 확장
  • 안정적인 네트워크 ID
  • 파드당 지속적인 스토리지

서비스 디스커버리. 쿠버네티스는 여러 가지 서비스 디스커버리 메커니즘을 제공합니다:

  • 클러스터IP 서비스: 내부 통신용
  • 노드포트 및 로드밸런서 서비스: 외부 접근용
  • 인그레스: HTTP 기반 라우팅 및 로드 밸런싱

4. 구조적 패턴: 파드 내 컨테이너 조직

사이드카 컨테이너는 기존 컨테이너의 기능을 변경하지 않고 확장하고 향상시킵니다.

다중 컨테이너 파드. 쿠버네티스는 여러 컨테이너를 단일 파드로 그룹화할 수 있어 다양한 패턴을 가능하게 합니다:

  • 초기화 컨테이너: 메인 컨테이너 시작 전에 초기화 작업 수행
  • 사이드카: 메인 컨테이너에 기능 추가
  • 어댑터: 이질적인 애플리케이션의 출력을 표준화
  • 앰배서더: 외부 서비스와의 통신 프록시

이러한 패턴은 관심사의 분리, 모듈성 및 재사용성을 촉진합니다. 개발자는 파드 추상화가 제공하는 공유 컨텍스트와 리소스를 활용하여 단순하고 단일 목적의 컨테이너로 복잡한 애플리케이션을 구성할 수 있습니다.

5. 구성 패턴: 다양한 환경에 맞춘 애플리케이션 적응

ConfigMaps와 Secrets는 쿠버네티스 API로 쉽게 관리할 수 있는 전용 리소스 객체에 구성 정보를 저장할 수 있게 합니다.

외부화된 구성. 쿠버네티스는 애플리케이션 구성을 관리하기 위한 여러 메커니즘을 제공합니다:

  • 환경 변수: 간단한 키-값 쌍
  • ConfigMaps: 민감하지 않은 구성 데이터
  • Secrets: 비밀번호, API 키 등 민감한 정보

불변 구성. 환경 간 일관성을 보장하기 위해 구성은 불변 컨테이너 이미지로 패키징될 수 있습니다:

  • 구성 컨테이너: 구성 데이터를 저장하기 위한 전용 이미지
  • 초기화 컨테이너: 공유 볼륨에 구성을 복사

구성 템플릿. 환경 간 약간씩 다른 복잡한 구성을 위해:

  • 템플릿 처리: Gomplate와 같은 도구를 사용하여 구성 파일 생성
  • 초기화 컨테이너: 파드 초기화 중 템플릿 처리

이러한 패턴은 개발자가 애플리케이션 코드와 구성을 분리하여 이식성을 촉진하고 환경별 문제의 위험을 줄일 수 있게 합니다.

6. 고급 패턴: 쿠버네티스 확장 및 복잡한 워크로드 관리

오퍼레이터는 쿠버네티스와 다른 도메인을 이해하는 쿠버네티스 컨트롤러입니다. 두 영역에 대한 지식을 결합하여 일반적으로 두 도메인을 이해하는 인간 운영자가 필요한 작업을 자동화할 수 있습니다.

컨트롤러와 오퍼레이터. 쿠버네티스는 복잡한 애플리케이션을 관리하기 위해 확장될 수 있습니다:

  • 컨트롤러: 리소스 변경에 기반한 사용자 정의 동작 구현
  • 오퍼레이터: 도메인별 지식을 인코딩하고 복잡한 작업 자동화
  • 사용자 정의 리소스 정의(CRD): 새로운 리소스 유형 정의

프레임워크와 도구. 여러 프로젝트가 컨트롤러와 오퍼레이터 개발을 용이하게 합니다:

  • 오퍼레이터 프레임워크: Go 기반 오퍼레이터 구축
  • 쿠베빌더: 오퍼레이터 프로젝트 스캐폴딩 및 관리
  • 메타컨트롤러: 모든 언어로 오퍼레이터 구현

이러한 패턴은 개발자가 쿠버네티스의 기능을 확장하고 클러스터 내에서 복잡하고 애플리케이션별 작업을 자동화할 수 있게 합니다.

7. 확장 및 빌딩: 탄력적인 애플리케이션 및 클러스터 내 이미지 생성

쿠버네티스의 자동 확장은 고정된 용량이 아닌 다양한 애플리케이션 용량을 정의할 수 있게 하여 다른 부하를 처리하기에 충분한 용량을 보장합니다.

탄력적 확장. 쿠버네티스는 애플리케이션을 확장하기 위한 여러 메커니즘을 제공합니다:

  • 수평 파드 자동 확장(HPA): 파드 복제본 수 조정
  • 수직 파드 자동 확장(VPA): 리소스 요청 및 제한 수정
  • 클러스터 자동 확장: 리소스 수요에 따라 노드 추가 또는 제거

이미지 빌딩. 쿠버네티스를 사용하여 클러스터 내에서 컨테이너 이미지를 빌드할 수 있습니다:

  • 오픈시프트 빌드: 다양한 전략을 사용한 통합 이미지 빌드 시스템
  • Knative 빌드: 쿠버네티스 네이티브 빌드 프레임워크
  • 데몬리스 빌드: img, buildah, Kaniko와 같은 루트리스 이미지 생성 도구

이러한 패턴은 개발자가 탄력적이고 자체 조정 가능한 애플리케이션을 만들고 쿠버네티스의 스케줄링 및 리소스 관리 기능을 활용하여 이미지 빌드 프로세스를 간소화할 수 있게 합니다.

Last updated:

리뷰

4.31 out of 5
Average of 100+ ratings from Goodreads and Amazon.

Kubernetes Patterns는 대체로 긍정적인 평가를 받고 있으며, 독자들은 흥미로운 내용, 명확한 구조, 실용적인 예시를 칭찬하고 있다. 많은 이들이 Kubernetes 개념과 모범 사례를 이해하는 데 유용하다고 생각한다. 일부 리뷰어들은 책의 패턴 설명 접근 방식을 높이 평가하는 반면, 다른 이들은 특정 "패턴"이 기본적인 Kubernetes 기능에 불과하다고 느낀다. 이 책은 Kubernetes에 대한 깊은 지식을 추구하는 개발자와 시스템 관리자에게 추천되지만, 경험이 많은 실무자에게는 그다지 유용하지 않을 수 있다. 전반적으로, 클라우드 네이티브 애플리케이션을 구축하는 데 도움이 되는 유용한 자료로 간주된다.

저자 소개

빌긴 이브리암은 클라우드 네이티브 기술, 특히 쿠버네티스 분야에서 뛰어난 저자이자 전문가이다. 그는 기업 고객을 위한 클라우드 네이티브 플랫폼을 구현한 풍부한 경험을 가지고 있으며, 이는 그의 저서에 잘 반영되어 있다. 이브리암의 작품은 명확성과 복잡한 개념을 쉽게 설명하는 능력으로 찬사를 받고 있다. 그는 컨테이너 오케스트레이션을 위한 Gang of Four 디자인 패턴 책과 유사한 자원을 만들기 위해 "쿠버네티스 패턴"을 공동 저술했다. 이브리암의 전문 지식과 실용적인 접근 방식은 그를 쿠버네티스 커뮤니티에서 존경받는 목소리로 만들었으며, 개발자와 엔지니어들이 클라우드 네이티브 솔루션을 더 잘 이해하고 구현할 수 있도록 돕고 있다.

0:00
-0:00
1x
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Listening – audio summariesListen to the first takeaway of every book for free, upgrade to Pro for unlimited listening.
Unlock unlimited listening
Your first week's on us
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 5: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Sep 26,
cancel anytime before.
What our users say
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Compare Features
Free Pro
Read full text summaries
Listen to full summaries
Unlimited Bookmarks
Unlimited History
Benefits
Get Ahead in Your Career
People who read at least 7 business books per year earn 2.3 times more on average than those who only read one book per year.
Unlock Knowledge Faster (or Read any book in 10 hours minutes)
How would your life change if we gave you the superpower to read 10 books per month?
Access 12,000+ hours of audio
Access almost unlimited content—if you listen to 1 hour daily, it’ll take you 33 years to listen to all of it.
Priority 24/7 AI-powered and human support
If you have any questions or issues, our AI can resolve 90% of the issues, and we respond in 2 hours during office hours: Mon-Fri 9 AM - 9 PM PT.
New features and books every week
We are a fast-paced company and continuously add more books and features on a weekly basis.
Fun Fact
2.8x
Pro users consume 2.8x more books than free users.
Interesting Stats
Reduced Stress: Reading for just 6 minutes can reduce stress levels by 68%
Reading can boost emotional development and career prospects by 50% to 100%
Vocabulary Expansion: Reading for 20 minutes a day are exposed to about 1.8 million words per year
Improved Cognitive Function: Reading can help reduce mental decline in old age by up to 32%.
Better Sleep: 50% of people who read before bed report better sleep.
Can I switch plans later?
Yes, you can easily switch between plans.
Is it easy to cancel?
Yes, it's just a couple of clicks. Simply go to Manage Subscription in the upper-right menu.
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.