Top

쿠버네티스 - 엔터프라이즈 가이드 2/e [컨테이너 기술을 활용한 엔터프라이즈 환경 통합과 확장]

  • 원서명Kubernetes - An Enterprise Guide, 2nd Edition: Effectively containerize applications, integrate enterprise systems, and scale applications in your enterprise(ISBN 9781803230030)
  • 지은이마크 보어쉬테인 (Marc Boorshtein), 스콧 수로비치(Scott Surovich)
  • 옮긴이강세용, 김상필, 김진웅, 박진우, 최진영
  • ISBN : 9791161758060
  • 44,000원
  • 2023년 12월 28일 펴냄
  • 페이퍼백 | 692쪽 | 188*235mm
  • 시리즈 : 클라우드 컴퓨팅

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/kubernetes-enterprise

요약

도커, 쿠버네티스, 보안, 감사, Istio와 같은 현대적인 컨테이너 및 오케스트레이션 기술에 안내하는데 중점을 두고 있다. 기초적인 내용부터 쿠버네티스 보안, 감사 그리고 최신 트렌드까지 폭넓게 다루고 있으며, 엔터프라이즈 현업에서의 실전 경험과 함께 새로운 도구와 기술을 소개한다. 이 책은 독자들이 현대적인 애플리케이션 배포 및 관리의 복잡한 환경에서 성공하기 위한 실용적인 가이드를 제공한다.

이 책에서 다루는 내용

◆ KinD를 이용한 다중 노드 쿠버네티스 클러스터 생성
◆ 인그레스, MetalLB, 외부-DNS 및 새로운 샌드박스 프로젝트 쿠버네티스 글로벌 밸런서(K8GB) 구현
◆ OIDC 및 가장(impersonation)을 이용한 클러스터 구성
◆ 이스티오 서비스 메시에 모놀리식 애플리케이션 배포
◆ 엔터프라이즈 인증을 쿠버네티스에 매핑
◆ OPA 및 게이트키퍼를 사용한 클러스터 보안
◆ 팔코, 데브옵스 AI, ECK를 통한 감사 기능 강화
◆ 재해 복구 및 클러스터 마이그레이션을 위한 워크로드 백업
◆ Tekton, 깃랩 및 ArgoCD를 이용한 깃옵스 플랫폼 배포

이 책의 대상 독자

여러 엔터프라이즈 환경에서 클러스터를 이용해 수년간 작업한 저자들의 경험을 바탕으로 데브옵스 팀이 쿠버네티스의 기초 이상으로 기술을 확장할 수 있도록 돕기 위해 이 책을 만들었다.
쿠버네티스와 클러스터 설치, 배포 생성, 쿠버네티스 개체 사용의 기본 사항을 소개하는 책이 많다. 우리의 계획은 기본 클러스터를 넘어서는 책을 만드는 것이었고 책의 분량을 적절한 수준으로 유지하기 위해 쿠버네티스의 기본 사항을 다시 살펴보진 않기 때문에 어느 정도 쿠버네티스에 대한 경험이 있는 독자가 읽기에 적합하다.
주요 초점은 엔터프라이즈 기능으로 클러스터를 확장하는 것이지만, 책의 첫 번째 장에서는 도커 핵심 주제와 쿠버네티스 객체를 다시 살펴볼 것이다. 고급 주제들을 다루는 장들을 최대한 활용하려면 쿠버네티스 객체를 확실하게 이해하는 것이 중요하다.

이 책의 구성

1장, ‘도커 및 컨테이너 기초’에서는 개발자가 해결해야 할 도커와 쿠버네티스의 문제를 다룬다. 도커 데몬, 데이터, 설치 및 도커 CLI 사용을 포함해 도커의 기초 개념을 소개한다.
2장, ‘KinD를 이용한 쿠버네티스 배포’에서는 단일 노드 클러스터에서 다중 노드 클러스터까지 쿠버네티스 클러스터를 생성할 수 있는 강력한 도구인 KinD를 다룬다. 기본 KinD 클러스터와 사용 방법을 설명한다.
3장, ‘쿠버네티스 부트캠프’에서는 쿠버네티스 기본을 다시 살펴보며, 쿠버네티스를 처음 접하는 경우 클러스터를 포함한 대부분의 객체를 다룰 것이다. 각 객체의 기능과 클러스터에서의 기능에 대한 설명과 함께 각 객체를 설명한다. 이는 객체에 대한 복습 또는 "포켓 가이드"를 의미한다. 각 객체에 대한 모든 세부 정보가 포함돼 있진 않다.
4장, ‘서비스, 로드 밸런서, ExternalDNS 그리고 글로벌 밸런싱’에서는 서비스를 이용해 쿠버네티스 배포를 노출하는 방법을 소개한다. 각 서비스 유형은 예제와 함께 설명되며 레이어 7 및 레이어 4 로드 밸런서를 모두 사용해 서비스 유형을 노출하는 방법을 배우게 된다. Ingress 컨트롤러의 기본 사항을 넘어 MetalLB를 설치해 서비스에 대한 레이어 4 액세스를 제공하는 방법을 설명한다. 또한 기본 쿠버네티스 글로벌 로드 밸런싱을 제공하는 MetalLB 및 K8GB에 의해 노출되는 서비스에 대한 동적 이름 확인 기능을 제공하기 위해 external-dns라는 인큐베이터 프로젝트를 설치해 엔터프라이즈 클러스터에 도움이 되는 두 가지 추가 기능에 대해 알아본다.
5장, ‘클러스터 인증 연동’에서는 "클러스터가 구축되면 사용자가 어떻게 클러스터에 액세스하는가?"라는 질문에 답할 수 있도록 한다. 특히 OpenID Connect의 작동 방식과 이를 이용해 클러스터에 액세스해야 하는 이유를 자세히 살펴본다. 또한 파이프라인에 인증하는 방법을 배우고 마지막으로 피해야 할 몇 가지 안티 패턴을 다루고 이 이유를 설명한다.
6장, ‘롤 기반 액세스 제어 정책 및 감사’에서는 사용자가 클러스터에 액세스할 수 있게 되면 액세스를 제한하는 방법을 알아야 한다고 설명한다. 사용자에게 전체 클러스터를 제공하는지 네임스페이스만 제공하는지에 상관없이 쿠버네티스가 역할 기반 액세스 제어(RBAC) 시스템을 통해 액세스 권한을 부여하는 방법을 알아야 한다. RBAC 정책을 설계하는 방법, 디버깅하는 방법 및 멀티 테넌시를 위한 다양한 전략을 소개한다.
7장, ‘안전한 쿠버네티스 대시보드 배포’에서는 클러스터가 실행되면 사용자가 가장 먼저 보게 되는 쿠버네티스 대시보드를 다룬다. 보안에 대해서는 많은 신화가 있다. 클러스터는 네트워크 대시보드, 로깅 시스템, 모니터링 대시보드와 같은 다른 웹 애플리케이션들로 구성된다. 대시보드가 어떻게 구성돼 있는지, 대시보드를 적절하게 보호하는 방법, 대시보드를 배포하지 않는 방법의 예를 자세히 살펴보고 그 이유에 대해 자세히 설명한다.
8장, ‘Open Policy Agent(OPA)를 사용한 보안 확장’에서는 RBAC를 이용해 구현할 수 없는 정책을 활성화하기 위해 Open Policy Agent 및 게이트키퍼를 배포하는 데 필요한 지침을 제공한다. 게이트키퍼를 배포하는 방법, Rego에서 정책을 작성하는 방법, OPA에 내장된 테스트 프레임워크를 사용해 정책을 테스트하는 방법을 다룬다.
9장, ‘게이트키퍼로 노드 보안 구현’에서는 파드를 실행하는 노드의 보안을 다룬다. 컨테이너를 안전하게 설계하는 방법과 컨테이너가 필요하지 않은 리소스에 액세스하지 못하도록 제한하는 게이트키퍼를 이용해서 정책을 구축하는 방법에 대해 논의한다.
10장, ‘Falco, DevOps AI, ECK를 통한 감사’에서는 쿠버네티스에 API 액세스를 위한 이벤트 로깅이 포함돼 있지만 컨테이너 런타임 이벤트를 캡처하는 기능은 없다는 점을 설명한다. 이러한 제한 사항을 해결하기 위해 우리는 Sysdig가 CNCF에 기부한 Falco라는 프로젝트를 설치할 것이다. Falco를 이용하면 Kubeless 기능을 사용해 Falco에서 캡처한 이벤트를 기반으로 작업을 트리거하는 방법과 FalcoSideKick을 이용해서 Falco에서 캡처한 데이터를 표시해 FalcoSidekick-UI 및 ECK(Elastic Cloud on Kubernetes) 스택에 이벤트를 전달하는 방법을 알아본다.
11장, ‘워크로드 백업’에서는 Velero를 사용해서 재해 복구 또는 클러스터 마이그레이션을 위해 클러스터 워크로드의 백업을 생성하는 방법을 설명한다. 워크로드 예제의 백업을 생성하고 클러스터 마이그레이션을 시뮬레이션하기 위해 백업을 새로운 클러스터로 복원하기 위해 MinIO를 사용하여 S3 호환 스토리지 위치를 직접 생성한다.
12장, ‘Istio 소개’에서는 많은 기업이 보안, 트래픽 라우팅, 인증, 추적, 관측성과 같은 고급 기능을 클러스터에 제공하기 위해 이용하는 서비스 메시를 설명한다. 널리 사용되는 오픈 소스 서비스 메시인 Istio와 해당 아키텍처 그리고 가장 일반적으로 사용되는 리소스를 소개한다. 애플리케이션 예제를 이용해서 Istio를 KinD 클러스터에 배포하고 Kiali라는 도구를 활용해 애플리케이션의 동작을 모니터링하는 방법을 알아본다.
13장에서는 Istio 애플리케이션 빌드 및 배포를 다룬다. Istio를 배포한 후에 이를 이용하는 애플리케이션을 개발하고 배포하고 싶을 것이다. 모놀리스와 마이크로서비스의 차이점과 배포 방법을 살펴보는 것으로 시작한다. 아울러 Istio에서 실행할 마이크로서비스 구축을 단계별로 진행하고 서비스에 대한 인증, 권한 부여, 서비스 간 인증과 같은 고급 주제를 살펴본다. 또한 OIDC 공급자와 JSON 웹 토큰을 사용해 쿠버네티스의 기존 역할을 활용해 Kiali 액세스를 보호하는 방법도 알아본다.
14장, ‘플랫폼 프로비저닝’에서는 GitLab, Tekton, ArgoCD, 게이트키퍼 및 오픈유니슨을 이용해 다중 테넌트 클러스터를 자동화하기 위한 플랫폼을 구축하는 방법을 설명한다. 파이프라인을 구축하는 방법과 파이프라인 생성을 자동화하는 방법을 살펴본다. 파이프라인을 구동하는 데 사용하는 개체들이 서로 어떻게 관련돼 있는지, 시스템 간 관계를 구축하는 방법, 마지막으로 파이프라인 배포 자동화를 위한 셀프 서비스 워크플로우를 만드는 방법을 알아본다.

저자/역자 소개

지은이의 말

쿠버네티스는 데브옵스 팀이 애플리케이션을 개발, 테스트 및 배포하는 표준이 되면서 전 세계에 영향을 줬다. 대부분의 엔터프라이즈는 이미 쿠버네티스를 실행하고 있거나 이후에 실행할 계획을 갖고 있다. 주요 채용 사이트의 채용 공고를 살펴보면 거의 모든 유명 회사에 쿠버네티스와 관련한 자리가 열려 있음을 알 수 있다. 빠른 도입 속도로 인해 쿠버네티스 관련한 자리가 지난 4년 동안 2,000% 이상 증가했다.
기업이 해결하기 위해 애쓰고 있는 일반적인 문제 중 하나는 기업용 쿠버네티스에 대한 지식이 부족하다는 점이다. 이는 비교적 새로운 기술이고 운영 워크로드의 경우 훨씬 더 새로운 기술이기 때문에 기업에서는 클러스터를 안정적으로 실행할 수 있는 팀을 구성하는 데 문제가 있었다. 기본적인 쿠버네티스 기술을 갖춘 사람을 찾는 것이 점점 쉬워지곤 있지만 엔터프라이즈 클러스터에 필요한 주제에 관한 지식이 있는 사람을 찾는 것은 여전히 어려운 일이다.

지은이 소개

마크 보어쉬테인(Marc Boorshtein)

20년 동안 소프트웨어 엔지니어이자 컨설턴트로 일해 왔으며 현재 트레몰로 시큐리티(Tremolo Security, Inc)의 CTO이다. 대기업, 미국 정부 민간 기관, 지방 정부의 공공 안전 시스템을 위한 ID 관리 솔루션을 구축하는 데 대부분의 경력을 보냈다. 최근 인프라 보안 자동화를 위한 오픈 소스 도구를 구축하면서 데브옵스와 쿠버네티스에 ID를 적용하는 데 주력하고 있다. CKAD이며, 인증 및 권한 부여에 대한 질문에 답변하는 쿠버네티스 슬랙 채널에서 자주 볼 수 있다.

스콧 수로비치(Scott Surovich)

20년 이상 정보 기술 분야에서 일해 왔으며 현재 Global Tier 1 은행에서 글로벌 컨테이너 엔지니어링 책임자로 근무하고 있으며, 하이브리드 클라우드 쿠버네티스 배포를 위한 제품을 보유하고 있다. 경력 전반에 걸쳐 대기업과 정부 기관의 여러 엔지니어링 팀에서 근무했다. CNCF 금융 서비스 워킹 그룹의 공동 리더이자 여러 오픈 소스 프로젝트에 기여하는 등 커뮤니티에서 활발히 활동하고 있다. 다른 쿠버네티스 서적을 집필하고 검토했으며, 『Google Anthos in Action』(Manning, 2023)의 여러 장을 집필하고 편집했다. 또한 CKA, CKAD, Mirantis Kubernetes 자격증을 보유하고 있으며, 하이브리드 멀티 클라우드 펠로우로서 Google의 최고 인증을 받은 최초의 사람 중 한 명이다.

옮긴이의 말

쿠버네티스는 매력적인 서비스입니다. 무척 빠르게 발전하고 있으며 특히 클라우드와 함께 사용할 때의 가능성은 엄청나다고 생각합니다. 물론 지금 이 책이 최신의 기술 트렌드를 모두 반영하고 있진 않지만, 이렇게 정리된 정보가 이제 시작하려는 분이나 쿠버네티스를 좀 더 활용하고자 하는 분께 조금이나마 도움을 드릴 수 있길 바랍니다. 마지막으로 같이 번역에 참여해준 훌륭한 동료들과 이 책의 저자, 출판사에게도 감사를 드립니다.

—강세용

기업은 쿠버네티스를 사용해 유연성과 확장성을 누릴 수 있지만 동시에 보안 정책, 모니터링, 감사 등을 직접 구현해야 합니다. 도커와 쿠버네티스의 기본 개념부터 시작해 RBAC, 팔코Falco, OPA, 이스티오Istio와 같은 오픈소스 도구를 사용한 확장에 대해 실습 위주로 안내하기 때문에 엔터프라이즈에서는 어떤 방향으로 쿠버네티스를 다뤄야 하는지 조언을 얻을 수 있을 것이라고 생각합니다.

—김진웅

2014년부터 AWS Korea에서 솔루션즈 아키텍트와 클라우드 아키텍트로 일하고 있습니다. 쿠버네티스는 최근 컨테이너와 관련한 기술 가운데 가장 뜨거운 주제 중 하나입니다. 아울러 글로벌 회사에서 약 17년가량 일하면서 계속 컨테이너와 관련한 일을 하고 있어 이번 책 번역에 참여하게 돼 매우 기쁩니다. 또한 AWS의 다양한 팀원과 함께 번역과 기부 활동에 동참해 ‘Strive to be Earth’s Best Employer’라는 아마존 리더십 원칙을 실천할 수 있게 기회를 주신 에이콘출판사 여러분께도 감사드립니다.

—김상필

온프레미스에서 이기종 장비들에 컨테이너를 활용해 쉽게 배포를 성공했을 때의 감동이 아직도 생생합니다. 쿠버네티스만큼 역동적이고 빠르게 발전하는 오픈소스는 많지 않다고 생각합니다. 최근엔 스타트업에서 엔터프라이즈에 이르기까지 많은 기업이 쿠버네티스를 도입하고 있습니다. 쿠버네티스를 활용하고자 하는 분들께 좀 더 빠른 길을 안내하고자 이렇게 번역에 참여하게 됐습니다. 아울러 이렇게 훌륭한 동료들과 함께 멋진 기술에 대한 번역에 참여하게 돼 영광으로 생각합니다.

—박진우

AWS의 테크니컬 트레이너로서 쿠버네티스 기술에 많은 관심을 갖고 있습니다. 요즘 가장 핫한 기술 중 하나인 쿠버네티스 책의 번역을 같이할 수 있도록 기회를 만들어주신 든든한 동료들과 에이콘출판사에 감사드립니다. 쿠버네티스가 한국에 잘 알려지고 많이 사용하게 조금이라도 도움이 되기를 바랍니다.

—최진영

옮긴이 소개

강세용

백앤드, 모바일, 웹 등 다양한 개발 경험을 바탕으로 AWS Korea에서 개발 전문 솔루션즈 아키텍트로 활동하고 있다. 개발자들이 AWS를 효과적으로 사용할 수 있도록 다양한 활동과 지원을 하며, DevOps, 마이크로서비스 아키텍처 가이드와 같은 업무를 하고 있다.

김상필

AWS Korea에서 솔루션즈 아키텍트로 일해왔고, 현재 클라우드 아키텍트로 재직 중이다. 지난 10년 동안 퍼블릭 클라우드를 도입하는 엔터프라이즈 기업들의 도입 여정을 지켜보면서 기술적인 조언을 하는 역할을 해오고 있다.

김진웅

인프라 엔지니어로 시작해 클라우드 엔지니어, 데브옵스, SRE 업무를 거쳐 현재 AWS Korea Professional Services 팀에서 고객의 모더나이제이션(Modernization) 여정을 돕는 클라우드 아키텍트 업무를 수행하고 있다.

박진우

데이터 엔지니어로 네이버 검색, 애널리틱스, 전사 통계를 개발하고 리드했다. 지금은 AWS에서 스타트업 고객의 클라우드 여정을 돕고 있으며 분석, 머신러닝 분야의 전문가로 활동하고 있다.

최진영

개발자 및 강사로, 스타트업 창업자 및 CTO로서 경험이 있다. 이 경험과 기술을 기반으로 지금은 AWS에서 테크니컬 트레이너로 고객이 클라우드를 잘 사용할 수 있도록 알려주는 일을 하고 있다.

목차

목차
  • 1장. 도커 및 컨테이너 기초
    • 기술 요구 사항
    • 컨테이너화의 필요성 이해
      • 쿠버네티스에서 도커를 지원 중단하는 이유
      • 도커 소개
    • 도커 이해하기
      • 컨테이너는 일시적이다
      • 도커 이미지
      • 이미지 레이어
      • 영구 데이터
      • 컨테이너에서 실행 중인 서비스에 액세스
    • 도커 설치
      • 도커 설치 준비
      • Ubuntu에 도커 설치
      • 도커 권한 부여
    • 도커 CLI 사용
      • docker help
      • docker run
      • docker ps
      • docker start and stop
      • docker attach
      • docker exec
      • docker logs
      • docker rm
    • 요약
    • 문제

  • 2장. KinD를 이용한 쿠버네티스 배포
    • 기술 요구 사항
    • 쿠버네티스 컴포넌트 및 오브젝트 소개
      • 클러스터와 상호 작용
    • 개발 클러스터 사용
      • 기본 KinD 쿠버네티스 클러스터로 작업하기
      • 노드 이미지 이해
      • KinD 및 도커 네트워킹
      • 중첩 인형 추적
    • KinD 설치
      • KinD 설치 - 사전 조건
        • kubectl 설치
      • KinD 바이너리 설치
    • KinD 클러스터 만들기
      • 단순 클러스터 생성
      • 클러스터 삭제
      • 클러스터 설정 파일 생성
      • 다중 노드 클러스터 설정
      • 컨트롤 플레인 및 Kubelet 옵션 커스터마이징
      • 사용자 지정 KinD 클러스터 만들기
      • Calico 설치
      • 인그레스 컨트롤러 설치
    • KinD 클러스터 검토
      • KinD 스토리지 오브젝트
      • 스토리지 드라이버
      • KinD 스토리지 클래스
      • KinD의 스토리지 프로비저너 사용
    • 인그레스용 커스텀 로드밸런서 추가
      • 설치 사전 요구 사항
      • KinD 클러스터 설정 생성하기
      • 사용자 지정 HAProxy 컨테이너 배포
      • HAProxy 트래픽 흐름 이해
      • kubelet 장애 시뮬레이션
    • 요약
    • 문제

  • 3장. 쿠버네티스 부트캠프
    • 기술 요구 사항
    • 쿠버네티스 컴포넌트 개요
      • 컨트롤 플레인 살펴보기
      • 쿠버네티스 API 서버
      • Etcd 데이터베이스
      • kube-scheduler
      • kube-controller-manager
      • cloud-controller-manager
    • 작업자 노드 컴포넌트 이해
      • kubelet
      • kube-proxy
      • 컨테이너 런타임
    • API 서버와 상호 작용
      • 쿠버네티스 kubectl 유틸리티 사용
      • Verbose 옵션 이해
      • 일반 kubectl 명령어
    • 쿠버네티스 리소스 소개
      • 쿠버네티스 매니페스트
      • 쿠버네티스의 리소스는 무엇인가?
      • 쿠버네티스 리소스 검토
        • 컨피그맵
        • 엔드포인트
        • 이벤트
        • 네임스페이스
        • 노드
        • 퍼시스턴트 볼륨 클레임
        • 퍼시스턴트 볼륨
        • 파드
        • 레플리케이션 컨트롤러
        • 리소스쿼터
        • 시크릿
        • 서비스어카운트
        • 서비스
        • 커스텀리소스데피니션
        • 데몬셋
        • 디플로이먼트
        • 레플리카셋
        • 스테이트풀셋
        • HorizontalPodAutoscalers
        • 크론잡
        • 인그레스
        • 네트워크폴리시
        • 파드 시큐리티 폴리시
        • 클러스터롤바인딩
        • 클러스터롤
        • 롤바인딩
        • CSI 드라이버
        • CSI 노드
        • 스토리지 클래스
    • 요약
    • 문제

  • 4장. 서비스, 로드밸런서, ExternalDNS 그리고 글로벌 밸런싱
    • 기술 요구 사항
    • 요청에 대한 워크로드 노출
      • 서비스 작동 방식 이해
        • 서비스 생성
        • DNS를 사용해 서비스 해결
      • 다양한 서비스 유형 이해
        • ClusterIP 서비스
        • NodePort 서비스
        • 로드밸런서 서비스
        • ExternalName 서비스
    • 로드밸런서 소개
      • OSI 모델에 대해서
    • 레이어 7 로드밸런서
      • 이름 해석 및 레이어 7 로드밸런서
      • 이름 해석에 nip.io 사용
      • 인그레스 규칙 생성
    • 레이어 4 로드밸런서
      • 레이어 4 로드밸런서 옵션
      • 레이어 4 로드밸런서로 MetalLB 사용
        • MetalLB 설치
        • MetalLB 설정 파일 이해
        • MetalLB 컴포넌트
          • 스피커
          • 컨트롤러
        • 로드밸런서 서비스 생성
      • MetalLB에 여러 IP 풀 추가
        • 다중 프로토콜 사용
      • 여러 가지 프로토콜 문제
      • MetalLB와 함께 여러 프로토콜 사용
      • 공유 IP 사용
    • 엔터프라이즈를 위한 로드밸런서 강화
    • 서비스 이름을 외부에서 사용할 수 있도록 설정
      • external-dns 설정
      • external-dns와 CoreDNS 연동
        • CoreDNS에 ETCD 존 추가
          • ExternalDNS 연동으로 로드밸런서 서비스 생성
          • CoreDNS와 엔터프라이즈 DNS의 연동
      • 프라이머리 DNS 서버 설정
      • CoreDNS로의 DNS 전달 테스트
    • 멀티 클러스터 간의 로드밸런싱
      • 쿠버네티스 글로벌 밸런서 소개
      • K8GB의 요건
      • 클러스터에 K8GB 배포
        • K8GB 로드밸런싱 옵션 이해
        • 헬름 차트 값 사용자 정의
        • 헬름을 사용한 K8GB 설치
      • K8GB를 사용한 고가용성 애플리케이션 배포
        • 커스텀 리소스르 사용해 K8GB에 애플리케이션 추가
        • 인그레스 어노테이션을 사용해 K8GB에 애플리케이션 추가
        • K8GB의 글로벌 로드밸런싱 기능 이해
        • K8GB CoreDNS 서버의 동기화 유지
    • 요약
    • 문제

  • 5장. 클러스터 인증 연동
    • 기술 요구 사항
    • 쿠버네티스가 당신을 어떻게 아는지 이해하기
      • 외부 사용자
      • 쿠버네티스의 그룹
      • 서비스어카운트
    • OpenID Connect 이해
      • OpenID Connect 프로토콜
      • OIDC와 API의 상호 작용을 추적
        • id_token
      • 기타 인증 옵션
        • 인증서
        • 서비스어카운트
        • TokenRequest API
        • 커스텀 인증 웹훅
        • 키스톤
    • OpenID Connect에 대한 KinD 설정
      • 요구 사항에 대한 대응
      • 쿠버네티스에서의 LDAP 및 액티브 디렉터리 사용
      • 액티브 디렉터리 그룹을 RBAC 롤바인딩에 매핑
      • 쿠버네티스 대시보드 액세스
      • 쿠버네티스 CLI 액세스
      • 엔터프라이즈 규정 준수 요구 사항
      • 모든 것을 한데 모으기
      • OpenUnison 배포
      • OIDC를 사용하기 위한 쿠버네티스 API 설정
      • OIDC 연동 확인
      • kubectl과 함께 토큰 사용
    • 클라우드 관리형 클러스터와 인증을 연동하기 위한 가장 도입
      • 가장이란?
      • 보안에 관한 고려 사항
    • 가장을 위한 클러스터 구성
      • 가장 테스트
    • OpenUnison을 사용하지 않는 가장 설정
      • 가장 RBAC 정책
      • 기본 그룹
    • 클러스터에 대한 파이프라인에서 인증
      • 토큰 사용
      • 인증서 사용
      • 안티 패턴 회피
    • 요약
    • 문제

  • 6장. 롤 기반 액세스 제어 정책 및 감사
    • 기술 요구 사항
    • RBAC 소개
    • 롤이란
      • 롤 식별
      • 롤 대 클러스터롤
      • 네거티브 롤
      • 집계된 클러스터롤
      • 롤바인딩 및 클러스터 롤바인딩
        • 클러스터롤 및 롤바인딩 결합
    • 리소스에 대한 액세스 권한을 부여하기 위해 엔터프라이즈 ID를 쿠버네티스에 매핑
    • 네임스페이스 멀티테넌시 구현
    • 쿠버네티스 감사
      • 감사 정책 만들기
      • 클러스터에서 감사 활성화
    • audit2rbac를 사용한 정책 디버깅
    • 요약
    • 문제

  • 7장. 안전한 쿠버네티스 대시보드 배포
    • 기술 요구 사항
    • 대시보드에서의 사용자
      • 대시보드 아키텍처
      • 인증 방법
    • 대시보드 보안 위험 이해
      • 안전하지 않은 대시보드 배포
      • 토큰을 사용해 로그인
    • 리버스 프록시로 대시보드 배포
      • 로컬 대시보드
      • 기타 클러스터 레벨 애플리케이션
    • 오픈유니슨과 대시보드 통합
    • 요약
    • 문제

  • 8장. 개방형 정책 에이전트를 사용한 보안 확장
    • 기술 요구 사항
    • 동적 승인 컨트롤러 소개
    • OPA의 정의 및 동작
      • OPA 아키텍처
      • OPA 정책 언어, Rego
      • 게이트키퍼
        • 게이트키퍼 배포
      • 자동화된 테스트 프레임워크
    • Rego를 사용한 정책 작성
      • OPA 정책 개발
      • OPA 정책 테스트
      • 게이트키퍼에 정책 배포
      • 동적 정책 구축
      • Rego 디버깅하기
      • 기존 정책 사용
    • 메모리 제약 적용
      • 게이트키퍼 캐시 활성화
      • 테스트 데이터 모킹
      • 정책 구축 및 배포
    • 오브젝트 및 기본값 변형
    • 요약
    • 문제

  • 9장. 게이트키퍼로 노드 보안 구현
    • 기술 요구 사항
    • 노드 보안
      • 컨테이너와 VM 간의 차이점 이해
      • 컨테이너 브레이크아웃
      • 적절한 컨테이너 설계
    • 게이트키퍼로 노드 보안 적용
      • 파드 보안 정책
      • PSP와 게이트키퍼의 차이점
      • 노드 보안 정책 승인
      • 노드 보안 정책 배포 및 디버깅
        • 보안 컨텍스트 기본값 생성
        • 클러스터 정책 적용
        • 제약 조건 위반 디버깅
        • 멀티테넌트 클러스터의 스케일링 정책 배포
    • 요약
    • 문제

  • 10장. 팔코, 데브옵스 AI, ECK를 통한 감사
    • 기술 요구 사항
    • 감사 살펴보기
    • 팔코 소개
    • 팔코 설정 파일 살펴보기
      • 헬름 밸류 파일
      • 헬름 밸류 커스터마이징
      • 팔코 규칙 설정 파일
        • 규칙 이해
        • 조건(필드 및 값) 이해
        • 매크로 사용
        • 목록 이해하기
      • 사용자 지정 규칙 생성 및 추가
        • 기존 규칙 수정
        • 신규 규칙 만들기
    • 팔코 배포
      • 팔코사이드킥 소개
      • 팔코사이드킥 설치
      • 쿠브리스의 이해
      • 쿠브리스의 설치
      • 쿠브리스를 사용한 함수 배포
    • 데브옵스 AI
      • 이벤트에 대한 자동 응답 이해
        • NGINX 서버 배포 및 연결 테스트
        • 파드에 대한 공격 시뮬레이션
      • 팔코 이벤트 관측
        • FalcoSideKick-UI 사용
      • 로깅 시스템 배포
        • 신규 네임스페이스 생성
        • ECK 오퍼레이터 배포
        • 일래스틱서치, 파일비트, 키바나 배포
      • 로그를 보기 위한 ECK 구성 요소 사용
      • 키바나 인덱스 생성
      • 이벤트 탐색
      • 시각화
      • 대시보드 생성
      • 팔코 이벤트 유형에 대한 시각화 생성
    • 요약
    • 문제

  • 11장. 워크로드 백업
    • 기술 요구 사항
    • 쿠버네티스 백업에 대한 이해
    • etcd 백업 수행
      • 필요한 인증서 백업
      • etcd 데이터베이스 백업
    • VMware 벨레로 소개 및 설정
      • 벨레로 요구 사항
      • 벨레로 CLI 설치
      • 벨레로 설치
        • 백업 스토리지 위치
        • MinIO 배포
        • MinIO 및 콘솔 노출
        • S3 대상 설정 생성
    • 벨레로를 사용한 워크로드 백업
      • 일회성 클러스터 백업 실행
      • 클러스터 백업 스케줄링
      • 사용자 지정 백업 생성
    • CLI를 사용한 벨레로 관리
      • 일반적인 벨레로 명령 사용
        • 벨레로 오브젝트 목록
        • 벨레로 오브젝트 세부 정보 검색
        • 오브젝트 생성 및 삭제
    • 백업에서 복원
      • 복원 작업
        • 백업에서 배포 복원
      • 네임스페이스 백업
        • 장애 시뮬레이션
      • 네임스페이스 복원
      • 백업을 사용한 신규 클러스터 워크로드 생성
        • 클러스터 백업
        • 신규 클러스터 구축
      • 신규 클러스터에 백업 복원
        • 신규 클러스터에 벨레로 설치
        • 신규 클러스터에서 백업 복원
        • 신규 클러스터 삭제
    • 요약
    • 문제

  • 12장. 이스티오 소개
    • 기술 요구 사항
    • 서비스 메시에 신경을 써야 하는 이유는 무엇일까?
      • 워크로드 관측성
      • 트래픽 관리
        • 블루/그린 배포
        • 카나리 배포
      • 문제가 발생하기 전에 문제 찾기
      • 보안
    • 이스티오 개념 소개
    • 이스티오 구성 요소 이해
      • istiod를 사용해 컨트롤 플레인을 단순하게 만들기
      • istiod 파드 브레이킹
      • Pilot - 사이드카 관리
      • Galley - 구성 검증
      • Citadel - 인증서 관리
      • Mixer - 보안 키퍼
    • 이스티오-인그레스 게이트웨이에 대한 이해
    • 이스티오-이그레스 게이트웨이에 대한 이해
  • 이스티오 설치
    • 이스티오 다운로드
    • 프로필을 사용한 이스티오 설치
  • 이스티오 리소스 소개
    • 권한 부여 정책
      • 예 1: 모든 액세스 거부 및 허용
      • 예 2: 워크로드에 GET 메서드만 허용
      • 예 3: 특정 소스의 요청 허용
      • 게이트웨이
      • 가상 서비스
    • 대상 규칙
      • 피어 인증
      • 인증 요청
      • 서비스 항목
      • 사이드카
      • Envoy 필터
  • 관측성을 제공하는 애드온 구성 요소 배포
    • 프로메테우스 설치
  • Jaeger 설치
    • Kiali 설치
  • 서비스 메시에 애플리케이션 배포
    • 첫 번째 애플리케이션을 메시에 배포하기
      • Kiali를 사용한 메시 워크로드 관찰
      • Kiali 개요 화면
      • 그래프 뷰 사용
      • 애플리케이션 뷰 사용
      • 워크로드 뷰 사용
      • 서비스 뷰 사용
      • 이스티오 구성 뷰
  • 요약
  • 문제

  • 13장. 이스티오에서 애플리케이션 빌드 및 배포
    • 기술 요구 사항
    • 마이크로서비스와 모놀리스의 비교
      • 마이크로서비스와 모놀리식 아키텍처에 대한 나의 이야기
      • 애플리케이션 아키텍처 비교
        • 모놀리식 애플리케이션 설계
        • 마이크로서비스 설계
        • 모놀리스와 마이크로서비스 중에서 선택
        • 이스티오를 사용한 마이크로서비스 관리 지원
    • 모놀리스 배포하기
      • 모놀리스를 클러스터 외부에 노출
      • 고정 세션 구성
      • Kiali와 오픈유니슨의 통합
    • 마이크로서비스 구축
      • Hello World 배포하기
      • 우리 서비스에 인증 통합
      • 우리 서비스에 액세스 권한 부여
      • 서비스를 누가 사용하고 있는지 알고 싶다면
      • 사용자 자격 부여
        • 서비스 승인
        • 이스티오와 함께 OPA 사용
      • 다른 서비스 호출하기
        • OAuth2 토큰 교환 사용
        • 서비스 인증하기
        • 수표 작성 서비스 배포 및 실행
        • 가장 사용
        • 위임 사용
        • 서비스 간 토큰 전달
        • 단순 가장 사용
    • API 게이트웨이가 필요한가?
    • 요약
    • 문제

  • 14장. 플랫폼 프로비저닝
    • 기술 요구 사항
    • 파이프라인 설계
      • 독단적 플랫폼
      • 파이프라인 보안
      • 플랫폼 요구 사항 구축
      • 기술 스택 선택
    • 클러스터 준비
      • cert-manager 배포
      • 도커 컨테이너 레지스트리 배포
      • 오픈유니슨 및 게이트키퍼 배포
    • 깃랩 배포
      • 예제 프로젝트 만들기
    • Tekton 배포
      • Hello World 만들기
      • 자동으로 빌드하기
    • ArgoCD 배포
    • 오픈유니슨을 사용한 프로젝트 온보딩 자동화
      • 깃옵스 전략 설계
      • 깃랩 통합
      • TektonCD 대시보드 통합
      • ArgoCD 통합
      • 오픈유니슨 업데이트
    • 애플리케이션 배포
      • 쿠버네티스에서 애플리케이션 생성
      • 개발자에게 접근하기
      • 개발 매니페스트 배포
      • Tekton 파이프라인 배포
      • 파이프라인 실행
      • 프로덕션으로 프로모션
    • 요약
    • 문제
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안