商品編號:DJAG0N-A900H3OHO

那些文件沒有告訴你的AWS EKS:解析Kubernetes背後的奧秘(iThome鐵人賽系列書)(軟精裝)

$537
$680
折價券
  • P幣

    刷星展PChome聯名卡週四加碼回饋P幣2%

  • P幣

    全盈+PAY單筆消費滿1200回饋80P幣(限量)

  • 登記送

    【全家】單筆滿$350純取貨/取貨付款訂單登記送冰仙女紅茶兌換券乙張(限量)

付款方式
出貨
  • PChome 倉庫出貨,24小時到貨
配送
宅配滿$490免運,超取滿$350免運
  • 宅配到府(本島/低溫)
    滿$699免運
  • 宅配到府(本島/常溫)
    滿$490免運
  • 超商取貨(常溫)
    滿$350免運
  • 超商取貨(低溫)
    滿$699免運
  • i郵箱(常溫)
    滿$290免運
商品詳情
作者:
ISBN:
9786263337145
出版社:
出版日期:
2024/01/31
  • 內文簡介

  • EKS 從不會到入門,從入門到精通
    第一本完整探討 EKS 本土書籍
    透過問題分析與討論讓你培養問題解決的脈絡

    本書內容改編自第 14 屆 iThome 鐵人賽 DevOps 組的優選系列文章《那些文件沒告訴你的 AWS EKS》。
    本書從建立 EKS cluster 開始,由「為什麼」為引言反思AWS是如何引用原生 Kubernetes 功能並設計,並溯源 Kubernetes 的原理,進而學習底層 Linux 及網路相關知識。此外,每章節提供逐步除錯驗證,照著步驟實作也能學習到除錯概念。

    全書提供 18 個「為什麼」,使用「五個為什麼(Five whys)方法論一層層從 AWS、Kubernetes、容器,最終至作業系統,沿著因果關係順著網上探討釐清整體脈絡。這些「為什麼」們包含了數個 EKS 上實務常見問題,讀者除了能熟悉 AWS 環境及 Kubernetes 限制,也同時釐清作業系統與網路脈絡,提升問題排除的能力,進而持續精進「打破砂鍋問到底」的研究精神。

    【目標讀者】
    • 想要掌握 Kubernetes 概念和原理的工程師
    • 想從 Junior 晉升到 Senior 的 DevOps/SRE 工程師
    • 沒有使用過 AWS 雲端環境入門者
    • 喜歡親自動手驗證的工程師
  • 作者簡介
    王茂林(Mao-Lin Wang/focaaby)
    曾擔任過 DevOps 工程師及 AWS Cloud Support Engineer,並獲取 AWS EKS 服務 Subject-matter expert 認證。近年來專注於網路、容器化及 Kubernetes 雲端原生技術。

    體會AWS 環境疊加Kubernetes 複雜環境學習不易,期望分享 Kubernetes 於雲端環境相關知識,提供更多資源以降低於 Kubernetes 的門檻。
    目錄
    CHAPTER 0 為什麼寫這本書
    0.1 誰適合本書
    0.2 本書內容
      0.2.1 會包括以下內容
     0.2.2 你需要準備什麼?
    0.3 如何使用這本書
    0.4 「為什麼」這麼重要
    0.5 實務操作

    CHAPTER 1 建立 EKS 叢集環境
    1.1 版本
    1.2 建立環境
    1.3 其它方便的設定

    CHAPTER 2 CloudWatch Logs 及 CloudWatch Logs Insights 簡介
    2.1 CloudWatch Logs 服務專有名詞
    2.2 CloudWatch Logs Insights 查詢語法
     2.2.1 CloudWatch 控制台
     2.2.2 AWS CLI 命令

    CHAPTER 3 為什麼 kubectl可以存取 EKS 叢集
    3.1 叢集身分驗證
    3.2 AWS IAM Authenticator for Kubernetes
    3.3 驗證EKS 叢集預設使用AWS IAM Authenticator for Kubernetes
     3.3.1 kubectl
     3.3.2 驗證控制平面記錄檔
     3.3.3 aws-iam-authenticator server 原始碼
    3.4 流程

    CHAPTER 4 為什麼 EKS 工作節點可以自動加入 EKS 叢集
    4.1 EKS node group
    4.2 Amazon EKS optimized Amazon Linux AMIs
    4.3 kubelet 啟動程序(bootstrap) 初始化步驟
    4.4 驗證 kubelet TLS bootstrapping 及自動化核准發證設定
     4.4.1 kubelet 設定檔
     4.4.2 kube-apiserver
     4.4.3 kube-controller-manager
     4.4.4 建立一個 EKS 節點

    CHAPTER 5 為什麼 EKS 叢集可以識別預設 CNI plugin 為 Amazon VPC CNI plugin
    5.1 工作節點 - kubelet 及 CNI
     5.1.1 Kubernetes 1.22 版本
     5.1.2 Kubernetes 1.27 版本
    5.2 驗證EKS-optimized AMI 是否預設設定Amazon VPC CNI plugin 設定檔案
     5.2.1 未加入 EKS 叢集 EC2
     5.2.2 加入 EKS 叢集,執行 Amazon VPC CNI plugin 的EC2
    5.3 Amazon VPC CNI plugin 的啟動流程
    5.4 是誰安裝了 VPC CNI plugin
    5.5 總結

    CHAPTER 6 為什麼 CoreDNS 可以解析 VPC 內的域名及外部域名
    6.1 kubelet 設定檔
    6.2 Pod's DNS Policy
    6.3 驗證 EKS 叢集內 DNS 解析流程
     6.3.1 預設 Pod dnsPolicy 設定
     6.3.2 從 Pod 內發送 DNS 請求
     6.3.3 CoreDNS Pod 本身的 dnsPolicy 設定
    6.4 EKS 叢集內 DNS 請求流程
    6.5 結論

    CHAPTER 7 為什麼 EKS add-on 可以管理 Kubernetes plugin
    7.1 更新 Amazon VPC CNI plugin 為 EKS add-ons
    7.2 Server-Side Apply
    7.3 驗證 EKS 叢集 add-ons 使用 Server-Side Apply
     7.3.1 第一次 eksctl create addon
     7.3.2 第二次eksctl create addon 使用參數–force
    7.4 managedFields
     7.4.1 Fully managed:所有 Field Management 指定了 f: 但沒有 k:,則代表 Fully managed,任何修改都會造成衝突
     7.4.2 Partially managed:如果 Field Management key 有指定值,修改 key 則會造成衝突
    7.5 總結

    CHAPTER 8 為什麼 EKS 叢集可以讓 Pod 部署至 Fargate
    8.1 建立測試 Pod 於 Fargate 環境上
    8.2 驗證部署至 EC2 工作節點與 Fargate 的 Pod 差異
    8.3 驗證控制平面記錄檔(一)
    8.4 什麼是 Mutate webhook
    8.5 0500-amazon-eks-fargate-mutation.amazonaws.com 是怎麼來的
    8.6 驗證控制平面記錄檔(二)
    8.7 總結

    CHAPTER 9 為什麼 EKS 能將 IAM roles 與 Kubernetes service accounts 整合(IAM roles for service accounts, IRSA)
    9.1 建立使用 IRSA 的 Pod
    9.2 IAM、OpenID Connect(OIDC)和 Kubernetes 關係
     9.2.1 IAM 與 OpenID Connect(OIDC)
     9.2.2 OpenID Connect(OIDC)與 Kubernetes
    9.3 驗證 IRSA 流程
     9.3.1 驗證EKS 叢集API server 設定IAM OIDC 作為identity provider
     9.3.2 驗證Pod 經webhook mutate
     9.3.3 Pod 掛載 OIDC JWT token
     9.3.4 OIDC JWT 與 STS 驗證流程
    9.4 總結

    CHAPTER 10 為什麼 Managed node groups 可以保持應用程式可用性
    10.1 實驗(一)
     10.1.1 建立 Managed node groups 及 Self-managed node groups
     10.1.2 比對 Label 的差異
     10.1.3 比對 kubelet systemd unit 設定檔差異
     10.1.4 比對 user-data 來源
     10.1.5 為什麼兩種 node group 都可以自動加入 EKS 叢集
    10.2 實驗(二)
     10.2.1 建立Kubernetes Deployment object 並終止其中一Managed 節點
     10.2.2 驗證 managed node group 行為
     10.2.3 為什麼不是使用 eksctl 命令 scale in,而是使用ASG 命令與 managed node group 互通 ?
     10.2.4 ASG lifecycle hook

    CHAPTER 11 為什麼透過 CloudFormation template 建立的 self-managed node group 無法自動加入至叢集
    11.1 CloudFormation template

    CHAPTER 12 為什麼 CDK 部署 EKS 叢集會比較慢
    12.1 建立環境 - 透過 CDK 建置 EKS 叢集
    12.2 分析
    12.3 總結

    CHAPTER 13 為什麼 Fluent Bit/Fluentd 可以收集 EKS 叢集 Pod 以及節點記錄檔
    13.1 常見 Kubernetes 記錄檔架構
     13.1.1 節點層級
     13.1.2 叢集層級記錄檔架構
     13.1.3 直接從應用程式上傳記錄檔
    13.2 以CloudWatch Agent for Container Insights Kubernetes Monitoring 為例
     13.2.1 為什麼收集/var/log/containers/
     13.2.2 CloudWatch Agent
    13.3 建置環境
    13.4 驗證
     13.4.1 驗證 CloudWatch Agent 及指標

    CHAPTER 14 為什麼 Container insight 指標 node_network_total_bytes 與 EC2 指標 NetworkIn/NetworkOut 不一致
    14.1 建置環境
    14.2 驗證
    14.3 指標定義
    14.4 網路封包流向
    14.5 總結

    CHAPTER 15 為什麼 EKS 工作節點容易佔用 IP 導致 subnets IP 位址不夠
    15.1 檢視測試叢集環境
    15.2 每個 Instance Type 能關聯的 ENI 數量及 IP 數量上限
    15.3 預設Amazon VPC CNI plugin 的行為:多建一個ENI,關聯數個IP 位址
    15.4 WARM_ENI_TARGET、WARM_IP_TARGET 及MINIMUM_ IP_TARGET 環境變數
    15.5 監控
    15.6 總結

    CHAPTER 16 為什麼 security group 可以關聯至單獨的 EKS Pod - Security groups for pods
    16.1 建置環境
    16.2 SGFP 流程
     16.2.1 VPC interface trunking
    16.3 驗證 SGFP 流程
     16.3.1 vpc-resource-mutating-webhook 是怎麼來的
     16.3.2 驗證節點由 VPC resource controller 更新節點 label
     16.3.3 驗證 Pod 經 webhook mutate
     16.3.4 驗證節點使用 vlan 路由規則
     16.3.5 驗證 branch ENI 及 trunk ENI 建立時間
    16.4 總結

    CHAPTER 17 為什麼使用 SGFP 使用 liveness/readiness probes 需要設定環境變數DISABLE_TCP_EARLY_DEMUX
    17.1 環境變數 DISABLE_TCP_EARLY_DEMUX
    17.2 TCP Early Demux 的行為
    17.3 問題
    17.4 總結

    CHAPTER 18 為什麼 EKS 使用 NLB 作為 Kubernetes service 會遇到 connection timeout
    18.1 建立測試環境
    18.2 EKS 如何註冊Target Group 至Service
    18.3 封包從 Pod 經由節點至 NLB 路徑
    18.4 分析封包
    18.5 NLB client 保留 IP 問題
    18.6 替代方案

    CHAPTER 19 為什麼 EKS 在更新 Kubernetes Deployment 時會有 HTTP 502 錯誤
    19.1 建立環境
    19.2 更新 image 流程中發生了什麼事
    19.3 Kubernetes Service 與 Pod 流程
    19.4 為什麼會有 HTTP 502 錯誤
    19.5 如何避免問題
     19.5.1 preStop hook
     19.5.2 terminationGracePeriodSeconds
    19.6 Pod Readiness Gates
    19.7 總結

    CHAPTER 20 為什麼 EKS 控制平面可以升級而無停機時間
    20.1 建立環境
     20.1.1 健康檢查 script
    20.2 驗證
     20.2.1 Pod aws-cli 記錄檔
     20.2.2 控制平面記錄檔
     20.2.3 CloudTrail 記錄
    20.3 EKS 控制平面架構
    20.4 流程
     20.4.1 為什麼會有 connection timeout 錯誤

    附件 參考文件
購物須知
寄送時間
全台灣24h到貨,遲到提供100元現金積點。全年無休,週末假日照常出貨。例外說明
送貨方式
透過宅配送達。除網頁另有特別標示外,均為常溫配送。
消費者訂購之商品若經配送兩次無法送達,再經本公司以電話與Email均無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
送貨範圍
限台灣本島與離島地區註,部分離島地區包括連江馬祖、綠島、蘭嶼、琉球鄉…等貨件,將送至到岸船公司碼頭,需請收貨人自行至碼頭取貨。注意!收件地址請勿為郵政信箱。
註:離島地區不配送安裝商品、手機門號商品、超大材商品及四機商品。
執照證號&登錄字號
本公司食品業者登錄字號A-116606102-00000-0
關於退貨
  • PChome24h購物的消費者,都可以依照消費者保護法的規定,享有商品貨到次日起七天猶豫期的權益。(請留意猶豫期非試用期!!)您所退回的商品必須回復原狀(復原至商品到貨時的原始狀態並且保持完整包裝,包括商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性)。商品一經拆封/啟用保固,將使商品價值減損,您理解本公司將依法收取回復原狀必要之費用(若無法復原,費用將以商品價值損失計算),請先確認商品正確、外觀可接受再行使用,以免影響您的權利,祝您購物順心。
  • 如果您所購買商品是下列特殊商品,請留意下述退貨注意事項:
    1. 易於腐敗之商品、保存期限較短之商品、客製化商品、報紙、期刊、雜誌,依據消費者保護法之規定,於收受商品後將無法享有七天猶豫期之權益且不得辦理退貨。
    2. 影音商品、電腦軟體或個人衛生用品等一經拆封即無法回復原狀的商品,在您還不確定是否要辦理退貨以前,請勿拆封,一經拆封則依消費者保護法之規定,無法享有七天猶豫期之權益且不得辦理退貨。
    3. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,一經您事先同意後始提供者,依消費者保護法之規定,您將無法享有七天猶豫期之權益且不得辦理退貨。
    4. 組合商品於辦理退貨時,應將組合銷售商品一同退貨,若有遺失、毀損或缺件,PChome將可能要求您依照損毀程度負擔回復原狀必要之費用。
  • 若您需辦理退貨,請利用顧客中心「查訂單」或「退訂/退款查詢」的「退訂/退貨」功能填寫申請,我們將於接獲申請之次日起1個工作天內檢視您的退貨要求,檢視完畢後將以E-mail回覆通知您,並將委託本公司指定之宅配公司,在5個工作天內透過電話與您連絡前往取回退貨商品。請您保持電話暢通,並備妥原商品及所有包裝及附件,以便於交付予本公司指定之宅配公司取回(宅配公司僅負責收件,退貨商品仍由特約廠商進行驗收),宅配公司取件後會提供簽收單據給您,請注意留存。
  • 退回商品時,請以本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋),原封包裝後交付給前來取件的宅配公司;如果本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋)已經遺失,請您在商品原廠外盒之外,再以其他適當的包裝盒進行包裝,切勿任由宅配單直接粘貼在商品原廠外盒上或書寫文字。
  • 若因您要求退貨或換貨、或因本公司無法接受您全部或部分之訂單、或因契約解除或失其效力,而需為您辦理退款事宜時,您同意本公司得代您處理發票或折讓單等相關法令所要求之單據,以利本公司為您辦理退款。
  • 本公司收到您所提出的申請後,若經確認無誤,將依消費者保護法之相關規定,返還您已支付之對價(含信用卡交易),退款日當天會再發送E-mail通知函給您。