000 | 00000cam c2200205 c 4500 | |
001 | 000046157255 | |
005 | 20230905101314 | |
007 | ta | |
008 | 230904s2023 ggka 001c kor | |
020 | ▼a 9791158393946 ▼g 93000 | |
035 | ▼a (KERIS)BIB000016812002 | |
040 | ▼a 211062 ▼c 211062 ▼d 211009 | |
041 | 1 | ▼a kor ▼h eng |
082 | 0 4 | ▼a 005.3 ▼2 23 |
085 | ▼a 005.3 ▼2 DDCK | |
090 | ▼a 005.3 ▼b 2023 | |
100 | 1 | ▼a Vyas, Jay |
245 | 1 0 | ▼a 코어 쿠버네티스 : ▼b 견고하고 안정적인 시스템 구축을 위한 쿠버네티스의 내부 구조와 동작 원리 / ▼d 제이 비아스, ▼e 크리스 러브 지음 ; ▼e 김영기 옮김 |
246 | 1 9 | ▼a Core Kubernetes |
260 | ▼a 파주 : ▼b 위키북스, ▼c 2023 | |
300 | ▼a xxiv, 368 p. : ▼b 삽화 ; ▼c 25 cm | |
490 | 1 0 | ▼a 시스템 & 네트워크 시리즈 ; ▼v 015 |
500 | ▼a 색인수록 | |
630 | 0 0 | ▼a Kubernetes |
650 | 0 | ▼a Application software ▼x Development ▼x Computer programs |
650 | 0 | ▼a Application program interfaces (Computer software) |
650 | 0 | ▼a Open source software. |
700 | 1 | ▼a Love, Chris, ▼e 저 |
700 | 1 | ▼a 김영기, ▼e 역 |
830 | 0 | ▼a 시스템 and 네트워크 시리즈 ; ▼v 015 |
900 | 1 0 | ▼a 비아스, 제이, ▼e 저 |
900 | 1 0 | ▼a 러브, 크리스, ▼e 저 |
945 | ▼a ITMT |
Holdings Information
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 005.3 2023 | Accession No. 121263907 | Availability Available | Due Date | Make a Reservation | Service |
No. 2 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 005.3 2023 | Accession No. 121263914 | Availability Available | Due Date | Make a Reservation | Service |
Contents information
Book Introduction
iptables 관리부터 부하에 따라 동적으로 확장되는 클러스터 설정까지, 쿠버네티스의 내부를 살펴본다. 이 책의 모든 페이지는 쿠버네티스 설정과 관리, 불가피한 껄끄러운 상황을 다루기 위한 새로운 통찰력을 제공한다. 《코어 쿠버네티스》는 운영 환경에서 쿠버네티스 배포를 관리하기 위한 포괄적인 참조 가이드다.
쿠버네티스의 핵심 사항을 이해하려면 반드시 이 책을 읽어 보자!
현실에서 쿠버네티스의 배포는 힘든 작업입니다. 작은 구성 오류나 설계 문제도 시스템을 망칠 수 있습니다. 현실에서 신속하게 문제를 해결하고, 구성을 재설정하고, 다음 문제로 넘어가려면 각 컴포넌트의 동작 방법을 아는 것은 중요합니다. 이 독특한 책은 쿠버네티스 앱을 계속 운영하기 위한 세부사항과 힘들게 얻은 노하우, 전문가들의 팁을 포함하고 있습니다.
이 책은 iptables 관리부터 부하에 따라 동적으로 확장되는 클러스터 설정까지, 쿠버네티스의 내부를 살펴봅니다. 이 책의 모든 페이지는 쿠버네티스 설정과 관리, 불가피한 껄끄러운 상황을 다루기 위한 새로운 통찰력을 제공합니다. 《코어 쿠버네티스》는 운영 환경에서 쿠버네티스 배포를 관리하기 위한 포괄적인 참조 가이드입니다.
★ 이 책에서 다루는 내용 ★
◎ 쿠버네티스의 기본 컴포넌트
◎ 스토리지와 컨테이너 스토리지 인터페이스
◎ 쿠버네티스 보안
◎ 쿠버네티스 클러스터를 생성하는 다양한 방법
◎ 컨트롤 플레인, 네트워킹, 기타 핵심 컴포넌트에 대한 세부사항
Information Provided By: :

Author Introduction
크리스 러브(지은이)
구글 클라우드 인증 펠로우(Google Cloud Certified Fellow)이자 Lionkube의 공동 설립자다. 구글, 오라클, VMware, 시스코, 존슨앤드존슨 등을 포함한 여러 기업에서 25년 이상의 소프트웨어와 IT 엔지니어링 경험을 갖고 있다. 쿠버네티스와 데브옵스 커뮤니티의 사고 리더(thought leader)로서, 쿠버네티스, kop(이전 AWS SIG 리더), 바젤(쿠버네티스 규칙에 기여), 테라폼(VMware 플러그인의 초기 기여자)을 포함해 여러 오픈소스 프로젝트에 기여해 왔다.
제이 비아스(지은이)
비아스는 VMware의 스태프 엔지니어로서 OpenShift, VMware Tanzu, Black Duck의 내부 다각화 쿠버네티스 설치 플랫폼을 비롯해 자신이 운영하는 컨설팅 회사 Rocket Rudolf, LLC의 고객을 위한 맞춤형 쿠버네티스 설치를 포함하는 여러 상용 및 오픈소스 쿠버네티스 배포판과 플랫폼과 관련된 작업을 해왔다. 쿠버네티스가 출시된 이후에는 다양한 역량을 발휘하며 현재는 SIG-Windows 및 SIG-network 커뮤니티에서 대부분의 시간을 보내고 있다.
김영기(옮긴이)
삼성전자 네트워크 사업부 SE 그룹에서 소프트웨어 개발과 관련한 다양한 업무를 수행하고 있다. 주요 이력으로 지능망(IN)과 모바일 자바 애플리케이션 개발, 정적 분석과 소프트웨어 구조 분석, 소프트웨어 개발 도구 및 인프라 관리 등이 있다. 현재는 형상 관리와 개발 전략을 담당하고 있으며, 소프트웨어 개발과 관련된 조직 및 개발 문화, 애자일과 데브옵스, 인프라 자동화에 관심이 많다.

Table of Contents
▣ 01장: 왜 쿠버네티스인가? 1.1 사전 준비 - 몇 가지 핵심 용어 검토하기 1.2 인프라 드리프트 문제와 쿠버네티스 1.3 컨테이너와 이미지 1.4 쿠버네티스의 핵심 기초 __1.4.1 쿠버네티스에서 모든 인프라 규칙은 평범한 YAML로 관리된다 1.5 쿠버네티스의 기능 1.6 쿠버네티스 컴포넌트와 아키텍처 __1.6.1 쿠버네티스 API __1.6.2 예제 1: 온라인 소매업체 __1.6.3 예제 2: 온라인 기부 솔루션 1.7 쿠버네티스를 사용하지 말아야 하는 경우 요약 ▣ 02장: 왜 파드인가? 2.1 웹 애플리케이션 예제 __2.1.1 웹 애플리케이션 인프라 __2.1.2 운영 요구사항 2.2 파드란 무엇인가? __2.2.1 다양한 리눅스 네임스페이스 __2.2.2 쿠버네티스, 인프라, 파드 __2.2.3 노드 API 객체 __2.2.4 웹 애플리케이션과 컨트롤 플레인 2.3 kubectl로 웹 애플리케이션 생성하기 __2.3.1 쿠버네티스 API 서버: kube-apiserver __2.3.2 쿠버네티스 스케줄러: kube-scheduler __2.3.3 인프라 컨트롤러 2.4 확장, 고가용성 애플리케이션, 컨트롤 플레인 __2.4.1 자동 확장 __2.4.2 비용 관리 요약 ▣ 03장: 파드 생성하기 3.1 kind로 쿠버네티스 기본 요소 살펴보기 3.2 리눅스 기본 요소란 무엇인가? __3.2.1 리눅스 기본 요소는 리소스 관리 도구다 __3.2.2 모든 것은 파일(또는 파일 디스크립터)이다 __3.2.3 파일들은 합성이 가능하다 __3.2.4 kind 설정 3.3 쿠버네티스에서 리눅스 기본 요소 사용하기 __3.3.1 파드 실행을 위한 전제 조건 __3.3.2 간단한 파드 실행하기 __3.3.3 파드의 리눅스 의존성 탐색하기 3.4 처음부터 파드 만들기 __3.4.1 chroot를 사용해 격리 프로세스 생성하기 __3.4.2 마운트를 사용해 작업을 위한 프로세스 데이터 제공하기 __3.4.3 unshare를 통한 프로세스 보안 __3.4.4 네트워크 네임스페이스 생성하기 __3.4.5 프로세스 상태 확인하기 __3.4.6 cgroup을 통한 CPU 조정하기 __3.4.7 리소스 스탠자 생성하기 3.5 현실에서 파드 사용하기 __3.5.1 네트워킹 문제 __3.5.2 iptables를 활용하여 kube-proxy의 쿠버네티스 서비스 구현 방법 이해하기 __3.5.3 kube-dns 파드 사용하기 __3.5.4 기타 문제 고려하기 요약 ▣ 04장: 파드 내 프로세스에서 cgroups 사용하기 4.1 파드는 준비 작업이 완료될 때까지 유휴 상태다 4.2 리눅스의 프로세스와 스레드 __4.2.1 sytemd와 init 프로세스 __4.2.2 프로세스의 cgroups __4.2.3 일반 파드에 대한 cgroups 구현 4.3 cgroups 테스트하기 4.4 kubelet의 cgroups 관리 방법 4.5 kubelet의 리소스 관리 방법 자세히 알아보기 __4.5.1 왜 OS는 쿠버네티스에서 스왑을 사용할 수 없는가? __4.5.2 해킹: 가난한 자의 우선순위 조절 방법 __4.5.3 해킹: init 컨테이너로 HugePages 편집하기 __4.5.4 QoS 클래스가 중요한 이유와 동작 방법 __4.5.5 리소스 설정을 통한 QoS 클래스 생성하기 4.6 프로메테우스, cAdvisor, API 서버로 리눅스 커널 모니터링하기 __4.6.1 메트릭은 게시 비용이 저렴하며 매우 가치가 높다 __4.6.2 프로메테우스가 필요한 이유는 무엇인가? __4.6.3 로컬 프로메테우스 모니터링 서비스 생성하기 __4.6.4 프로메테우스에서 시스템 장애 특성화하기 요약 ▣ 05장: 컨테이너 네트워크 인터페이스(CNI), 그리고 네트워크를 통한 파드 제공 5.1 쿠버네티스에 SDN이 필요한 이유 5.2 쿠버네티스 SDN의 서비스 측면 구현하기: kube-proxy __5.2.1 kube-proxy 데이터 플레인 __5.2.2 NodePort 서비스 5.3 CNI 공급자 5.4 두 개의 CNI 네트워킹 플러그인 살펴보기: Calico와 Antrea __5.4.1 CNI 플러그인의 아키텍처 __5.4.2 CNI를 사용해 보자 __5.4.3 Calico CNI 공급자 설치 __5.4.4 OVS와 Antrea를 통한 쿠버네티스 네트워킹 __5.4.5 다른 OS상의 CNI 공급자와 kube-proxy에 대한 참고사항 요약 ▣ 06장: 대규모 네트워크 오류 해결하기 6.1 Sonobuoy - 클러스터 기능 확인을 위한 도구 __6.1.1 실제 클러스터에서 파드의 데이터 경로 추적하기 __6.1.2 Antrea CNI 공급자로 클러스터 설정하기 6.2 arp와 ip 명령어를 통한 다양한 공급자의 CNI 라우팅 검사 __6.2.1 IP 터널이란 무엇이며, 왜 CNI 공급자들이 IP 터널을 이용하는가? __6.2.2 CNI의 네트워크 인터페이스를 통해 얼마나 많은 패킷이 흐르는가? __6.2.3 경로 __6.2.4 CNI 특화 도구 - OVS (Open vSwitch) __6.2.5 tcpdump를 이용한 활성 컨테이너의 데이터 경로 추적 6.3 kube-proxy와 iptables __6.3.1 iptables-save와 diff 도구 __6.3.2 네트워크 정책이 CNI 규칙을 수정하는 방법 살펴보기 __6.3.3 이러한 정책들은 어떻게 구현되는가? 6.4 인그레스 컨트롤러 6.4 인그레스 컨트롤러 __6.4.1 인그레스 컨트롤러를 탐색하기 위한 Contour와 kind 설정 __6.4.2 간단한 웹 서버 파드 설정하기 요약 ▣ 07장: 파드 스토리지와 CSI 7.1 빠른 우회 방법: 리눅스의 가상 파일시스템(VFS) 7.2 세 가지 스토리지 유형에 대한 쿠버네스트 요구사항 7.3 kind 클러스터에 PVC 생성하기 7.4 컨테이너 스토리지 인터페이스(CSI) __7.4.1 인트리 공급자 문제 __7.4.2 쿠버네티스 내부에서 동작하는 명세로서의 CSI __7.4.3 CSI - 스토리지 드라이버 작동 방식 __7.4.4 바인드 마운팅 7.5 몇 가지 실행 중인 CSI 드라이버에 대한 간략한 개요 __7.5.1 컨트롤러 __7.5.2 노드 인터페이스 __7.5.3 리눅스가 아닌 OS의 CSI 요약 ▣ 08장: 스토리지 구현과 모델링 8.1 더 넓은 쿠버네티스 생태계의 축소판 - 동적 스토리지 __8.1.1 즉각적인 스토리지 관리 - 동적 프로비저닝 __8.1.2 로컬 스토리지와 emptyDir 비교 __8.1.3 PersistentVolume __8.1.4 컨테이너 스토리지 인터페이스(CSI) 8.2 동적 프로비저닝은 CSI에서 혜택을 얻지만 직교적이다 __8.2.1 StorageClasses __8.2.2 데이터 센터 항목으로 되돌아가기 8.3 스토리지에 대한 쿠버네티스 유스케이스 __8.3.1 시크릿 - 임시적인 파일 공유 8.4 동적 스토리지 공급자는 일반적으로 어떻게 보이는가? 8.5 시스템 제어와/또는 데이터 액세스를 위한 hostPath __8.5.1 hostPath, CSI 및 CNI: 표준 유스케이스 __8.5.2 카산드라: 실제 쿠버네티스 애플리케이션 스토리지의 예 __8.5.3 고급 스토리지 기능과 쿠버네티스 스토리지 모델 8.6 더 읽을거리 요약 ▣ 09장: 파드 실행: kubelet의 동작 방법 9.1 kubelet과 노드 9.2 kubelet의 핵심 __9.2.1 컨테이너 런타임: 표준과 규약 __9.2.2 kubelet 구성과 API 9.3 파드를 생성하고 실제 동작 살펴보기 __9.3.1 kubelet 바이너리 시작하기 __9.3.2 시작 이후: 노드 수명주기 __9.3.3 etcd의 임대와 잠금, 그리고 노드 임대의 진화 __9.3.4 kubelet의 파드 수명주기 관리 __9.3.5 CRI, 컨테이너, 이미지: 서로 어떻게 관련되어 있는가 __9.3.6 kubelet은 컨테이너를 실행하지 않는다: 그것은 CRI의 일이다 __9.3.7 Pause 컨테이너: 깨달음의 순간 9.4 컨테이너 런타임 인터페이스(CRI) __9.4.1 컨테이너 런타임의 위치를 쿠버네티스에 알려주기 __9.4.2 CRI 루틴 __9.4.3 CRI와 관련된 kubelet의 추상화: GenericRuntimeManager __9.4.4 CRI는 어떻게 호출되는가? 9.5 kubelet의 인터페이스 __9.5.1 Runtime 내부 인터페이스 __9.5.2 kubelet이 이미지를 가져오는 방법 - ImageService 인터페이스 __9.5.3 kubelet에 ImagePullSecrets 제공하기 9.6 더 읽을거리 요약 ▣ 10장: 쿠버네티스의 DNS 10.1 DNS(그리고 CoreDNS)의 간략한 소개 __10.1.1 NXDOMAIN, 레코드, CNAME 레코드 __10.1.2 파드는 내부 DNS를 필요로 한다 10.2 왜 디플로이먼트 대신 스테이트풀셋을 사용하는가? __10.2.1 헤드리스 서비스를 갖는 DNS __10.2.2 스테이트풀셋 내의 영구적인 DNS 레코드 __10.2.3 파드의 DNS 속성 탐색을 위해 폴리글랏 디플로이먼트 사용하기 10.3 resolv.conf 파일 __10.3.1 간단한 라우팅 관련 참고사항 __10.3.2 CoreDNS: ClusterFirst 파드 DNS의 업스트림 해석기 __10.3.3 CoreDNS 플러그인 구성 해킹하기 요약 ▣ 11장: 컨트롤 플레인의 핵심 11.1 컨트롤 플레인 살펴보기 11.2 API 서버 세부사항 __11.2.1 API 객체와 사용자 정의 API 객체 __11.2.2 사용자 정의 리소스 정의(CRD) __11.2.3 스케줄러 세부사항 __11.2.4 스케줄링 다시 살펴보기 11.3 컨트롤러 매니저 __11.3.1 스토리지 __11.3.2 서비스 계정과 토큰 11.4 쿠버네티스 클라우드 컨트롤러 매니저(CCM) 11.5 더 읽을거리 요약 ▣ 12장. etcd와 컨트롤 플레인 12.1 참을성 없는 사람들을 위한 참고사항 __12.1.1 프로메테우스를 통한 etcd 성능의 시각화 __12.1.2 etcd 튜닝 시점 파악하기 __12.1.3 예제: etcd의 빠른 상태 점검 __12.1.4 etcd v3 vs. v2 12.2 데이터 저장소로서의 etcd __12.2.1 감시: 다른 데이터베이스에서 쿠버네티스를 실행할 수 있는가? __12.2.2 엄격한 일관성 __12.2.3 fsync 오퍼레이션은 etcd를 일관성 있게 만든다 12.3 쿠버네티스를 위한 etcd 인터페이스 살펴보기 12.4 etcd는 사실을 정확하게 유지한다 __12.4.1 etcd 사전 기록 로그 __12.4.2 쿠버네티스에 미치는 영향 12.5 CAP 정리 12.6 클라이언트 수준의 로드 밸런싱과 etcd __12.6.1 크기 제한: 걱정해야(하지 말아야) 하는 사항 12.7 eted 암호화 12.8 글로벌 규모에서 etcd의 성능 및 내결함성 12.9 고도로 분산된 etcd의 하트비트 시간 12.10 kind 클러스터에 etcd 클라이언트 설정하기 __12.10.1 리눅스가 아닌 환경에서 etcd 실행하기 요약 ▣ 13장: 컨테이너와 파드 보안 13.1 폭발 반경 __13.1.1 취약점 __13.1.2 침입 13.2 컨테이너 보안 __13.2.1 컨테이너와 사용자 정의 소프트웨어 업데이트 계획 __13.2.2 컨테이너 심사 __13.2.3 컨테이너 사용자 - 루트 사용자로 실행하지 마라 __13.2.4 가장 작은 컨테이너를 사용하라 __13.2.5 컨테이너 출처 __13.2.6 컨테이너를 위한 린터 13.3 파드 보안 __13.3.1 보안 컨텍스트 __13.3.2 에스컬레이션된 권한과 기능 __13.3.3 파드 보안 정책(PSP) __13.3.4 자동으로 서비스 계정 토큰을 마운트하지 마라 __13.3.5 유사 루트 파드 __13.3.6 보안 외곽 요약 ▣ 14장: 노드와 쿠버네티스 보안 14.1 노드 보안 __14.1.1 TLS 인증서 __14.1.2 불변 OS 대 노드 패치하기 __14.1.3 격리된 컨테이너 런타임 __14.1.4 리소스 공격 __14.1.5 CPU 단위 __14.1.6 메모리 단위 __14.1.7 스토리지 단위 __14.1.8 호스트 네트워크 vs. 파드 네트워크 __14.1.9 파드 예제 14.2 API 서버 보안 __14.2.1 역할 기반 액세스 제어(RBAC) __14.2.2 RBAC API 정의 __14.2.3 리소스와 하위 리소스 __14.2.4 Subjects와 RBAC __14.2.5 RBAC 디버깅 14.3 Authn, Authz, Secret __14.3.1 IAM 서비스 계정: 클라우드 API 보안 __14.3.2 클라우드 리소스 액세스 __14.3.3 전용 API 서버 14.4 네트워크 보안 __14.4.1 네트워크 정책 __14.4.2 로드 밸런서 __14.4.3 OPA(Open Policy Agent) __14.4.4 멀티테넌시 14.5 쿠버네티스 팁 요약 ▣ 15장: 애플리케이션 설치하기 15.1 쿠버네티스 앱에 대한 생각 __15.1.1 애플리케이션의 범위는 사용하는 도구에 영향을 미친다 15.2 마이크로서비스 앱들은 수천 라인의 구성 코드가 필요하다 15.3 실제 환경의 Guestbook 앱 설치에 대한 재고 15.4 Carvel 툴킷 설치 __15.4.1 1부: 리소스를 별도 파일로 모듈화 __15.4.2 2부: ytt를 이용한 애플리케이션 파일 패치 __15.4.3 3부: Guestbook을 단일 애플리케이션으로 관리하고 배치하기 __15.4.4 4부: 애플리케이션 패키징 및 관리를 위한 kapp 오퍼레이터 구성 15.5 쿠버네티스 오퍼레이터 다시 살펴보기 15.6 Tanzu 커뮤니티 에디션: Carvel 툴킷의 전체 예제 요약