이미 소장하고 있다면 판매해 보세요.
|
1장. 소개
__CoreDNS란 무엇인가? ____CoreDNS, 컨테이너, 마이크로서비스 ____CoreDNS 제약 사항 ____CoreDNS, 쿠버네티스, CNCF 2장. DNS 소개 __도메인 이름 시스템이란? __도메인 이름과 네임스페이스 __도메인, 위임 및 영역 __리소스 레코드 __DNS 서버 및 권한 __해석기 __해석과 재귀 __캐싱 __리소스 레코드 ____NAME ____TTL ____CLASS __리소스 레코드 유형 ____A 레코드 ____AAAA 레코드 ____CNAME 레코드 ____MX 레코드 ____NS 레코드 ____SRV 레코드 ____PTR 레코드 ____SOA 레코드 __주석 영역 데이터 파일 3장. CoreDNS 설정 __CoreDNS 설치 __CoreDNS 명령어 옵션 __코어파일 구문 ____환경 변수 ____재사용 가능 코드 조각 ____임포트 ____서버 블록 ____질의 처리 __플러그인 ____루트 플러그인 ____파일 플러그인 ____보조 플러그인 ____전달 플러그인 ____캐시 플러그인 ____오류 플러그인 ____로그 플러그인 __공통 설정 옵션 ____대체 ____tls ____전송 __샘플 DNS 서버 설정 ____캐싱 전용 DNS 서버 ____주 DNS 서버 ____보조 DNS 서버 4장. 영역 데이터 관리 __파일 플러그인 __자동 플러그인 __Git 연동 자동 플러그인 __호스트 플러그인 __route53 플러그인 5장. 서비스 검색 __서비스 검색 소개 __서비스 검색 문제 해결 __CoreDNS 및 etcd를 통한 서비스 검색 ____etcd 플러그인 ____타 서비스 검색 옵션 __서비스 검색 및 컨테이너 오케스트레이션 6장. 쿠버네티스 __기본 개념 __쿠버네티스 네트워킹 ____클러스터 IP 서비스 ____헤드리스 서비스 __쿠버네티스 DNS 사양 __CoreDNS 통합 __기본 구성 __스텁 도메인 및 페더레이션 __클러스터 DNS 배포 리소스 ____역할 기반 액세스 제어 ____서비스 ____배포 __오토스케일링 __향상된 구성 __쿠버네티스 플러그인 __CoreDNS 확장 프로그램 ____포드 옵션 ____와일드카드 질의 ____자동 경로 및 Dreaded ndots:5 ____영역 전송 지원 ____외부 서비스 노출 ____사용 가능한 레코드 수정 7장. 질의 및 응답 조작 __템플릿 플러그인 __재작성 플러그인 ____EDNS0 옵션에 대한 재작성 플러그인 사용 ____다중 재작성 규칙 __메타데이터 플러그인 __DNS 보안 확장을 사용한 응답 서명 ____DNSSEC 서명 주 영역 관리 ____dnssec 플러그인을 사용한 즉각적인 DNSSEC 서명 __사례 연구: 인포블록스의 BloxOne 위협 방어 ____사용자 식별 ____정책 적용 8장. 모니터링 및 문제 해결 __prometheus 플러그인 __로그 플러그인 __dnstap 플러그인 __오류 플러그인 __추적 플러그인 __디버그 플러그인 9장. 사용자 정의 서버 구축 __외부 플러그인을 사용한 CoreDNS 컴파일 ____도커를 사용한 빌드 ____워크스테이션에서의 빌드 방법 ____plugin, cfg 수정 ____메인 함수로 대체하는 방법 __사용자 정의 플러그인 작성 ____유일한 플러그인 ____메트릭, 추적, 메타데이터와 통합 |
John Belamaric
Cricket Liu
나정호의 다른 상품
|
★ 이 책에서 다루는 내용 ★
■ DNS 이론: DNS 네임스페이스, 도메인 이름, 도메인 및 영역 ■ CoreDNS 서버 구성 방법 ■ CoreDNS를 사용해 기본에서 고급 영역 데이터 관리 및 제공 ■ etcd와 쿠버네티스를 사용한 CoreDNS 서비스 검색 구성 ■ 쿠버네티스와의 통합 ■ 플러그인 체인을 통과하는 질의와 응답 조작 ■ DNS 서비스의 가용성과 성능 모니터링, 문제 해결 ■ CoreDNS 사용자 정의 버전 빌드와 플러그인 작성 ★ 이 책의 대상 독자 ★ ■ 쿠버네티스와 같은 환경을 관리하는 DNS 기반 서비스 검색이 필요한 컨테이너 환경의 관리자 ■ 컨테이너에서 실행할 수 있는 작고 유연한 DNS 서버를 찾는 DNS 관리자 ■ 다음과 같은 DNS 서버를 찾는 DNS 관리자 - AWS Route 53과 통합 - 질의 및 응답에 따라 유연한 재작성 지원 - DNS over 전송 계층 보안과 범용 원격 프로시저 지원 ■ CoreDNS 플러그인을 작성해 사용자 지정 DNS 기능을 구현하려는 개발자 ★ 이 책의 구성 ★ 1장, ‘소개’에서는 CoreDNS의 사용 이유와 한계를 포함해 다른 DNS 서버와 어떻게 다른지를 설명한다. 또한 클라우드 네이티브 Computing Foundation과 관계가 깊은 CoreDNS의 역사를 다룬다. 2장, ‘DNS 소개’에서는 기본 DNS 이론과 DNS 서버 및 해석기의 역할, DNS 네임스페이스의 구조, 다양한 리소스 레코드의 구문 및 의미를 포함해 도메인 이름 서버가 작동하는 방식을 살펴본다. 3장, ‘CoreDNS 설정’에서는 CoreDNS 서버 설정(Configure)에 흥미를 불러 일으킬 수 있는 내용을 준비했다. CoreDNS는 영역 데이터를 관리하는 다양한 방법을 지원한다. 영역 데이터 파일과 같이 DNS 관리자에게 친숙한 방법과 Git 사용 같은 현대적인 방법, 호스트 테이블 같은 복고적인 방법도 있다. 4장, ‘영역 데이터 관리’에서는 앞서 언급한 내용을 모두 다룬다. 5장, ‘서비스 검색’에서는 서비스 검색의 기본 사항과 CoreDNS 및 etcd를 사용해 동적 환경에서 서비스 검색을 수행하는 방법을 설명한다. 6장, ‘쿠버네티스’에서는 먼저 쿠버네티스의 기본 사항을 설명하고 CoreDNS의 가장 일반적인 사용 사례 중 하나인 쿠버네티스와의 통합을 다룬다. 7장, ‘질의 및 응답 조작’에서는 요청 및 응답을 조작하는 데 가장 일반적으로 사용되는 플러그인을 설명한다. 8장, ‘모니터링 및 문제 해결’에서는 CoreDNS를 모니터링하고 질의 및 응답을 로깅하고 문제를 진단하는 데 도움이 되는 플러그인(Plugin)을 다룬다. 9장, ‘사용자 정의 서버 구축’ CoreDNS 코드는 라이브러리로 쉽게 사용할 수 있도록 구조화돼 있다. 즉, 자신만의 main 루틴을 만들고 전체 CoreDNS 코드를 라이브러리로 처리할 수 있다. 9장에서는 이러한 옵션을 모두 다룬다. ★ 지은이의 말 ★ 이 책을 보자마자 가장 먼저 떠오르는 질문은 "DNS 서버는 특별한 것이 있는가?" 다. 현재 선택할 수 있는 DNS 서버는 정말 많다. 먼저 DNS 서버의 시초인 BIND(Berkeley Internet Name Domain)가 있다. BIND는 1980년대부터 조금씩 쓰이기 시작했고, 작성된 모든 DNS 표준을 지원한다. Microsoft DNS 서버는 Active Directory 환경에서 널리 사용되는 DNS 서버다. NLnet Labs 및 Knot의 NSD는 신뢰할 수 있는 DNS 서버이며, NLnet Labs의 Unbound는 빠르고 간결한 재귀(Recursion) DNS 서버다. 그렇다면 CoreDNS는 이러한 DNS 서버가 제공하지 않는 무엇을 제공하는가? CoreDNS는 Go로 작성됐는데, Go는 메모리-세이프(Memory-safe) 프로그래밍 언어다. 그게 왜 중요할까? BIND 기반 DNS 인프라를 운영하고 버퍼 오버런(Overrun) 때문에 100대의 DNS 서버를 최대한 빨리 업그레이드해야 한다면 이 부분이 중요한 역할을 할 것이다. C 및 C++언어로 작성된 스트라이프(Stripe)방식의 DNS 서버의 취약점은 버퍼 오버플로우(Overflow) 또는 오버런, 댕글링(Dangling) 포인터 때문에 발생한다. 메모리-세이프된 Go로 작성된 CoreDNS에서는 이러한 부분이 발생하지 않는다. Go로 작성된 프로그램은 동시성 또는 병렬 실행을 지원할 수도 있는데, 멀티프로세싱(Multiprocessing) 또는 멀티태스킹(Multitasking) 시스템에서 더 많은 성능을 끌어내는 데 유용할 수 있다. BIND 성능은 멀티프로세서(Multiprocessor) 시스템에서 확장되기 어려운데, CoreDNS의 성능은 프로세서 수에 따라 확장돼 더 많은 일을 할 수 있게 된다. Go는 C 또는 C++보다 약간 느리게 실행되는 경향이 있기 때문에 성능을 향상하는 것이 중요하다. 대부분은 문제가 되지 않는다. 중요한 것은 Go는 CoreDNS에 제공하는 워크로드(Workload)를 잘 처리할 수 있다는 것이다. 아마도 CoreDNS가 제공하는 가장 중요한 기능은 컨테이너(Container) 인프라와 etcd, 쿠버네티스와 같은 오케스트레이션(Orchestration) 시스템과 통신할 수 있는 부분이다. ★ 옮긴이의 말 ★ CoreDNS는 클라우드 네이티브 환경에 알맞은 DNS 서버로 클라우드 네이티브 컴퓨팅 재단(CNCF, Cloud Native Computing Foundation)에서 졸업한 프로젝트다. 기본적인 DNS 명세를 준수해 범용성과 유연성 때문에 쿠버네티스 등 다양한 클러스터 환경에서 사용할 수 있고 아파치 라이센스를 명시한 완전한 오픈소스로 무료로 사용할 수 있다. CoreDNS의 장점은 Go 언어로 작성돼 설정이 빠르고 간단하다는 것이다. 또한 플러그인을 모듈 형태로 작성하고 컨피그맵에 반영해 DNS 서비스 검색에 대한 설정을 손쉽게 변경할 수 있으며, 플러그인을 연이어 적용 가능한 체인 구조로 다양하게 구성할 수 있다. 물론 이러한 플러그인을 통해 메트릭 모니터링 역시 손쉽게 연동할 수 있다. CoreDNS는 쿠버네티스와 프로메테우스, Etcd 등 유명한 오픈소스와의 플러그인을 비롯해 메이저 클라우드사인 AWS, MS Azure, GCP에서 제공 중인 DNS 서비스와의 플러그인 연동을 통해 뛰어난 호환성을 가지고 다양한 환경에서 사용이 가능하다. 특히 쿠버네티스 클러스터의 기본 DNS로 내장돼 있기 때문에 클러스터 내부 도메인 기반으로 바인딩된 서비스의 ClusterIP나 자주 변경되는 POD의 IP를 대신해 조회가 가능한 용도로 많이 사용된다. 그래서 쿠버네티스상에서의 서비스 검색 기능을 기본적으로 구현할 수 있어 마이크로서비스 아키텍처에 걸맞게 구성하고 관리할 수 있다. 역자는 쿠버네티스를 기반으로 컨테이너 플랫폼을 구축, 운영한 경험을 토대로 CoreDNS를 처음 접하고 시작하는 분들께 도움되고자 번역을 진행했다. 번역 과정에서 CoreDNS에는 많은 버전 변화가 있었고, CNCF 생태계와 함께 다양한 유관 프로젝트와 툴이 지금 이 시간에도 계속 개발되고 있기에 이 부분을 최대한 반영하려고 노력했다. 이 책은 DNS의 이론과 함께 실습 중심으로 CoreDNS의 구성 요소와 특징을 설명하며, 가상서버와 쿠버네티스 환경에서 CoreDNS 관련 기능을 명령어 기반으로 직접 수행할 수 있기에 CoreDNS를 사용해보고자 하는 다양한 사용자에게 도움이 될 것이다. |
|
3년 전 CoreDNS가 보잘것없는 초창기일 때, 누가 이렇게 환상적인 책을 만들 것이라고 생각했겠는가? 자신만의 특수 DNS 서버를 사용하거나 구축하는 데 이 책은 반드시 필요한 동반자다. - 미에크 기벤 (Miek Gieben, CoreDNS 창시자)
|