[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 배포 요약 질문 더 읽을 거리