HOME / CATALOG / 시스템 & 네트워크
시스템 & 네트워크

클라우드 네이티브 쿠버네티스

효율적인 클라우드 네이티브 애플리케이션 구축과 운영을 위한 쿠버네티스 모범 사례
지은이 알렉산더 라울
옮긴이 김정민, 이주현, 김상민
도서 정보
출간일
2023년 2월 22일
쪽수
414쪽
판형
188*240*17mm
ISBN
9791158393939
시리즈
시스템 & 네트워크 시리즈_014
정가
30,000원
난이도
도서 소개
저자 소개
역자 소개
목차
예제 코드

도서 소개

쿠버네티스의 확장성을 활용하여 현대적인 아키텍처 패턴을 도입하고 프로덕션 문제를 효과적으로 처리하는 방법을 배운다!

쿠버네티스는 현대적인 클라우드 네이티브 컨테이너 오케스트레이션 도구이며, 전 세계적으로 가장 인기 있는 오픈소스 프로젝트 중 하나입니다. 쿠버네티스는 강력하고 매우 유연한 기술이며 쿠버네티스 엔지니어는 업계 전반에서 수요가 많습니다.

이 책은 쿠버네티스에서 최신 클라우드 네이티브 애플리케이션을 배포, 보호, 운영하기 위한 포괄적인 안내서입니다. 기초적인 내용부터 쿠버네티스 모범 사례에 이르기까지 이 책은 애플리케이션 구성을 위한 필수적인 요소를 다룹니다. 프로덕션 환경에서 클러스터를 실행하기 위한 현실적인 기술, 클러스터 리소스에 대한 관찰 가능성을 설정하기 위한 팁 및 중요 문제 해결을 위한 기법도 함께 살펴봅니다. 마지막으로 쿠버네티스를 확장하고 커스터마이즈하는 방법과 서비스 메시, 서버리스 도구 등을 클러스터에 배포하기 위한 팁을 설명합니다.

이 책을 끝까지 공부하면 쿠버네티스에서 최신 애플리케이션을 자신 있게 실행하고 확장하기 위한 도구를 갖추게 될 것입니다.

 

★ 이 책에서 다루는 내용 ★

  • 쿠버네티스 설정 및 인증 구성
  • 쿠버네티스에 애플리케이션 배포
  • 쿠버네티스 애플리케이션에 스토리지 구성 및 제공
  • 쿠버네티스 애플리케이션을 클러스터 외부에 노출
  • 쿠버네티스에서 애플리케이션이 실행되는 위치 및 방법 제어
  • 쿠버네티스에 대한 관찰 가능성 설정
  • 쿠버네티스를 위한 지속적인 통합 및 연속적인 배포(CI/CD) 파이프라인 구축
  • 서비스 메시, 서버리스 등을 통한 쿠버네티스 확장

 

도서 상세 이미지

저자 소개

알렉산더 라울 Alexander Raul

알렉산더 라울은 래크너(Rackner)의 CEO입니다. 래크너는 많은 투자를 받은 스타트업부터 포춘 및 글로벌 500 선정 기업에 이르기까지 다양한 고객을 대상으로 쿠버네티스와 클라우드를 구축하고 운영 및 보안 관리해주는 혁신적인 컨설팅 회사입니다. 래크너에서 저자는 대형 쿠버네티스 기반 플랫폼을 구축하고 관리했으며, 규모가 큰 조직을 대상으로 엔드 투 엔드 DevSecOps를 구현했습니다. 기술적인 배경과 학력(메릴랜드 대학의 항공우주학 학사)뿐만 아니라 클라우드와 쿠버네티스에 대한 비즈니스와 전략 논의는 물론, 관련 기술 도입에 관한 문제에도 정통합니다. 알렉산더는 워싱턴 D.C.에 살고 있으며 고객과 일하지 않는 시간에는 등산이나 스키, 달리기를 즐겨합니다.

역자 소개

김정민 (jeongmin@gmail.com)

분산 처리 기술을 이용한 음악과 영상 서비스(벅스, 싸이월드, 멜론 등)의 스트리밍 솔루션 개발자로 출발해, 20년 이상 대기업과 스타트업에서 서비스를 운영해 왔습니다. 클라우드 기술 등장 후에는 다양한 프로젝트에서 클라우드 아키텍트, 데이터 엔지니어, MLOps 엔지니어 업무를 수행했습니다. 또한 새로운 기술을 공부하고 전파하기 위해 해외 블로그 및 서적을 번역하는 일을 즐겨합니다. 번역서로는 『비즈니스 머신러닝(한빛미디어, 2020)』, 『Apache Airflow 기반의 데이터 파이프라인(제이펍, 2022)』이 있습니다. 현재는 스타트업인 (주)짠컴퍼니에서 Head of Product로 새로운 도전을 진행 중입니다.

이주현 (joohyun9407@gmail.com)

컴퓨터 공학을 전공하였고, 인프라 설계 및 운영 업무를 담당하고 있습니다. 기술적 관심 분야는 클라우드, 컨테이너 운영, 코드 기반 인프라 자동화 기술입니다.

김상민 (starscar0208@gmail.com)

네이버클라우드에서 클라우드 상품 개발 및 기술 지원 업무를 수행하고 있습니다. 다양한 프로젝트에서 클라우드 애플리케이션 서비스를 위한 가상머신 및 쿠버네티스 환경을 설계, 구축 및 운영했습니다. 현재는 데브옵스 및 인프라 자동화 기술 관련 전문성을 갖추기 위해 오늘도 고군분투 중입니다.

목차

  • [1부] 쿠버네티스 설치하기
    •  
  • ▣ 01장: 쿠버네티스와 통신하기
    • 기술 요구사항
    • 컨테이너 오케스트레이션 소개
      • 컨테이너 오케스트레이션이란?
      • 컨테이너 오케스트레이션의 장점
      • 일반적인 오케스트레이션 도구
    • 쿠버네티스의 아키텍처
      • 쿠버네티스 노드 유형
      • 쿠버네티스 컨트롤 플레인
      • 쿠버네티스 API 서버
      • 쿠버네티스 스케줄러
      • 쿠버네티스 컨트롤러 매니저
      • etcd
      • 쿠버네티스 워커 노드
      • kubelet
      • kube-proxy
      • 컨테이너 런타임
      • 애드온
    • 쿠버네티스 인증 및 권한
      • 네임스페이스
      • 사용자
      • 인증 방법
      • TLS와 보안을 위한 쿠버네티스의 인증서 인프라
      • 권한 부여 옵션
      • RBAC
      • ABAC
    • kubectl과 YAML 사용하기
      • kubectl과 kubeconfig 설정
      • 명령형imperative 커맨드와 선언형declarative 커맨드
      • kubectl 기본 커맨드 소개
      • YAML 파일에 쿠버네티스 리소스 작성하기
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 02장: 쿠버네티스 클러스터 설정하기
    • 기술 요구사항
    • 신규 클러스터 생성 옵션
    • minikube로 클러스터 쉽게 시작하기
      • minikube 설치하기
      • minikube에서 클러스터 생성하기
    • 관리형 쿠버네티스 서비스
      • 관리형 쿠버네티스 서비스의 장점
      • 관리형 쿠버네티스 서비스의 단점
    • AWS의 EKS(Elastic Kubernetes Service)
      • 시작하기
    • 구글 클라우드의 GKE(Google Kubernetes Engine)
      • 시작하기
    • 마이크로소프트 애저의 AKS(Azure Kubernetes Service)
      • 시작하기
    • 프로그램 방식의 클러스터 생성 도구
      • Kubeadm
      • Kops
      • Kubespray
    • Kubeadm으로 클러스터 생성하기
      • Kubeadm 설치하기
      • 마스터 노드 시작하기
      • 워커 노드 시작하기
      • kubectl 설정하기
    • Kops를 사용하여 클러스터 생성하기
      • macOS에 설치하기
      • 리눅스에 설치하기
      • 윈도우에 설치하기
      • Kops에 대한 자격 증명 설정하기
      • 상태 저장소 설정하기
      • 클러스터 생성하기
    • 완전히 처음부터 클러스터 생성하기
      • 노드 프로비저닝
      • TLS를 위한 쿠버네티스 인증 생성하기
      • 설정 파일 생성하기
      • etcd 클러스터 생성과 암호화 구성하기
      • 컨트롤 플레인 컴포넌트 부트스트랩하기
      • 워커 노드 부트스트랩하기
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 03장: 쿠버네티스에서 애플리케이션 컨테이너 실행하기
    • 기술 요구사항
    • 파드란?
    • 파드 구현하기
      • 파드 패러다임
      • 파드 네트워크
      • 파드 스토리지
      • 네임스페이스
      • 파드의 라이프사이클
      • 파드 리소스 스펙 이해하기
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • [2부] 쿠버네티스 애플리케이션 구성 및 배포
    •  
  • ▣ 04장: 애플리케이션 스케일링 및 배포하기
    • 기술 요구 사항
    • 파드의 문제점과 해결책 이해하기
      • 파드 컨트롤러
    • 레플리카셋 사용하기
      • 레플리카
      • 셀렉터
      • 템플릿
      • 레플리카셋 테스트
    • 배포 제어하기
      • 명령형 커맨드로 배포 제어
    • 수평형 파드 오토스케일러의 활용하기
    • 데몬셋 구현하기
    • 스테이트풀셋 이해하기
    • 잡 사용하기
      • 크론잡
    • 종합 정리
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 05장: 서비스 및 인그레스 - 외부 시스템과 통신하기
    • 기술 요구 사항
    • 서비스와 클러스터 DNS 이해하기
      • 클러스터 DNS
      • 서비스 프락시 종류
    • ClusterIP 구현
      • 프로토콜
    • NodePort 사용하기
    • 로드밸런서 서비스 설정하기
    • ExternalName 서비스 생성하기
    • 인그레스 구성하기
      • 인그레스 컨트롤러
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 06장: 쿠버네티스 애플리케이션 구성하기
    • 기술 요구 사항
    • 모범 사례를 활용한 컨테이너화된 애플리케이션 구성
      • 컨피그맵 이해하기
      • 시크릿 이해하기
    • 컨피그맵 구현하기
      • 텍스트 값에서 컨피그맵 생성하기
      • 파일에서 컨피그맵 생성하기
      • 볼륨으로 컨피그맵 마운트하기
      • 환경 변수로 컨피그맵 마운트하기
    • 시크릿 사용하기
      • 파일에서 시크릿 생성하기
    • 수동 선언적으로 시크릿 생성하기
      • 볼륨으로 시크릿 마운트하기
      • 시크릿을 환경 변수로 마운트하기
      • 암호화된 시크릿 구현하기
      • 시크릿의 암호화 여부 확인하기
      • 클러스터 암호화 비활성화하기
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 07장: 쿠버네티스의 스토리지
    • 기술 요구 사항
    • 볼륨과 퍼시스턴트 볼륨의 차이점 이해
    • 볼륨
    • 퍼시스턴트 볼륨
      • 퍼시스턴트 볼륨 클레임
      • 파드에 퍼시스턴트 볼륨 클레임(PVC) 연결하기
    • 클라우드 스토리지가 없는 퍼시스턴트 볼륨
      • Rook 설치하기
      • rook-ceph-block 스토리지 클래스
      • Rook Ceph 파일 시스템
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 08장: 파드 할당 제어하기
    • 기술 요구 사항
    • 파드 할당에 대한 사용 사례 확인하기
      • 쿠버네티스 노드 상태 할당 제어하기
      • 다양한 노드 유형이 필요한 애플리케이션
      • 특정 데이터 규정 준수가 필요한 애플리케이션
      • 다중 장애 도메인
    • 노드 셀렉터와 노드 네임 사용하기
    • 테인트와 톨러레이션 구현하기
    • 다중 테인트와 톨러레이션
    • 노드 어피니티로 파드 제어하기
      • requiredDuringSchedulingIgnoredDuringExecution 노드 어피니티 사용하기
      • preferredDuringSchedulingIgnoredDuringExecution 노드 어피니티 사용하기
      • 다중 노드 어피니티
    • 인터-파드 어피니티와 안티-어피니티 사용하기
      • 파드 어피니티
      • 파드 안티-어피니티
      • 결합된 어피니티와 안티-어피니티
      • 파드 어피니티와 안티-어피니티 제한 사항
      • 파드 어피니티와 안티-어피니티 네임스페이스
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • [3부] 프로덕션 환경에서 쿠버네티스 실행하기
    •  
  • ▣ 09장: 쿠버네티스의 관찰 가능성
    • 기술 요구 사항
    • 쿠버네티스 관찰 가능성 이해하기
      • 쿠버네티스 클러스터 및 애플리케이션 상태에 대한 중요 사항 이해하기
    • 기본 관찰 도구 사용하기
      • 쿠버네티스의 지표
      • 쿠버네티스의 로깅
      • 쿠버네티스 대시보드 설치하기
      • 쿠버네티스의 경고와 추적
    • 최상의 에코시스템을 활용하여 쿠버네티스 관찰 가능성 향상시키기
      • 프로메테우스와 그라파나 소개
      • 쿠버네티스에서 EFK 스택 구현하기
      • 예거를 사용하여 분산 추적 구현하기
      • 타사 도구
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 10장: 쿠버네티스 문제 해결하기
    • 기술 요구 사항
    • 분산 애플리케이션의 장애 모드 이해하기
    • 네트워크가 안정적입니다
      • 지연 시간이 0입니다
      • 대역폭이 무한합니다
      • 네트워크가 안전합니다
      • 토폴로지가 변경되지 않습니다
      • 관리자가 한 명뿐입니다
      • 전송비가 0입니다
      • 네트워크가 동종입니다
    • 쿠버네티스 클러스터 문제 해결하기
      • 사례 연구 - 쿠버네티스 파드 배치 실패
    • 쿠버네티스에서 애플리케이션 문제 해결하기
      • 사례 연구 1 - 서비스가 응답하지 않음
      • 사례 연구 2 - 잘못된 파드 시작 커맨드
      • 사례 연구 3 - 로그가 있는 파드 애플리케이션 오작동
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 11장: 쿠버네티스의 템플릿 코드 생성 및 CI/CD
    • 기술 요구 사항
    • 쿠버네티스에서 템플릿 코드 생성을 위한 옵션 이해하기
      • Helm
      • Kustomize
    • Helm 및 Kustomize를 사용하여 쿠버네티스에서 템플릿 구현하기
      • 쿠버네티스와 함께 Helm 사용하기
      • Helm 차트 설치 및 제거하기
      • 쿠버네티스와 함께 Kustomize 사용하기
    • 클러스터 내부 및 외부 관점에서 쿠버네티스의 CI/CD 패러다임 이해하기
      • 클러스터 외 CI/CD
      • 클러스터 내 CI/CD
    • 쿠버네티스를 사용하여 클러스터 내 및 클러스터 외 CI/CD 구현하기
      • AWS Codebuild로 쿠버네티스 CI 구현
      • FluxCD로 쿠버네티스 CI 구현하기
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 12장: 쿠버네티스 보안 및 규정 준수
    • 기술 요구 사항
    • 쿠버네티스의 보안 이해하기
    • 쿠버네티스에 대한 CVE 및 보안 감사 검토하기
      • CVE-2016-1905 이해 – 부적절한 승인 제어
      • CVE-2018-1002105 이해 – 백엔드로의 연결 업그레이드
      • 2019년 보안 감사 결과 이해하기
    • 클러스터 구성 및 컨테이너 보안을 위한 도구 구현하기
      • 승인 컨트롤러 사용하기
      • 파드 보안 정책 활성화하기
      • 네트워크 정책 사용하기
    • 쿠버네티스에서 침입 감지, 런타임 보안 및 규정 준수 처리하기
      • 팔코 설치하기
      • 팔코의 기능 이해하기
      • 팔코를 규정 준수 및 런타임 보안 사용 사례에 매핑하기
    • 요약
    • 질문
    • 더 읽을 거리
    •  
    • [4부] 쿠버네티스 확장하기
    •  
  • ▣ 13. CRD로 쿠버네티스 확장하기
    • 기술 요구 사항
    • CRD로 쿠버네티스를 확장하는 방법
      • 커스텀 리소스 정의 작성하기
      • 커스텀 리소스 버전 정의 이해하기
      • 커스텀 리소스 정의 테스트하기
    • 쿠버네티스 오퍼레이터를 통한 자체 관리 기능
      • 오퍼레이터의 제어 루프 매핑하기
      • 커스텀 리소스 정의를 위한 오퍼레이터 설계하기
    • 클라우드별 쿠버네티스 익스텐션 사용하기
      • cloud-controller-manager 컴포넌트 이해하기
      • cloud-controller-manager 설치하기
      • cloud-controller-manager 기능 확인하기
      • 쿠버네티스에서 external-dns 사용하기
      • cluster-autoscaler 애드온 사용하기
    • 에코시스템과 통합하기
      • 클라우드 네이티브 컴퓨팅 재단(CNCF) 소개
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 14장: 서비스 메시 및 서버리스
    • 기술 요구 사항
    • 사이드카 프락시 사용
      • NGINX를 사이드카 리버스 프락시로 사용하기
      • 사이드카 프락시로 Envoy 사용
    • 쿠버네티스에 서비스 메시 추가
      • 쿠버네티스에서 Istio 설정
    • 쿠버네티스에서 서버리스 구현
      • 쿠버네티스에서 FaaS용 Knative 사용
      • 쿠버네티스에서 FaaS용 OpenFaaS 사용
    • 요약
    • 질문
    • 더 읽을 거리
    •  
  • ▣ 15장: 쿠버네티스의 스테이트풀 워크로드
    • 기술 요구 사항
    • 쿠버네티스의 스테이트풀 애플리케이션 이해
      • 인기 있는 쿠버네티스 기반 스테이트풀 애플리케이션
      • 쿠버네티스에서 스테이트풀 애플리케이션을 실행하는 전략 이해
    • 쿠버네티스에 객체 스토리지 배포
      • Minio 오퍼레이터 설치
      • Krew와 Minio kubectl 플러그인 설치
      • Minio 오퍼레이터 시작
      • Minio 테넌트 생성
      • Minio 콘솔 접속
    • 쿠버네티스에서 DB 실행
      • 쿠버네티스에서 CockroachDB 실행
      • SQL로 CockroachDB 테스트
    • 쿠버네티스에서 메시징과 큐 구현
      • 쿠버네티스에 RabbitMQ 배포
    • 요약
    • 질문
    • 더 읽을 거리

예제 코드

WHERE TO BUY · 정가 30,000원
WHERE TO BUY · 정가 30,000원