NOTES
雲端、Kubernetes、SRE 的學習筆記與踩坑紀錄。
DMS Overview
整理 AWS DMS 的 Replication Instance、Endpoint、Task 類型、同構與異構遷移,以及建立遷移的步驟。
MGN 原理及使用方式 (workshop & why)
說明 AWS MGN 的初始設定、Agent 安裝、測試執行個體與 cutover 的流程和原理。
AWS Config × Conformance Pack × Aggregator 管理架構
說明 AWS Config Rule、Conformance Pack 與 Aggregator 的觀念、部署組合、參考架構與操作 SOP。
認知升級:等價交換
回顧八個月來的心態調整與四項思維練習,並以「等價交換」歸納個人與團隊層面的體悟。
PostgreSQL 的 Session 和 Connection 含義差在哪?哪個對維運更有幫助?
說明 PostgreSQL 中 connection 與 session 的差異,以及為何 active sessions 對判斷資料庫健康度更有用。
LiteLLM Pass-through Endpoint
介紹 LiteLLM 與 pass-through endpoint,並以本地 Ollama 實作 YAML passthrough 與自訂 adapter server 兩種測試。
為什麼 Cilium 需要 Startup Taint,VPC CNI 不需要?[Karpenter Startup Taint]
說明 Node Ready 的判定機制、Karpenter startupTaints,以及 Cilium 與 VPC CNI 在節點初始化上的差異。
Networking in K8s - outside world
說明 Kubernetes 中 Pod 與 Service 的 iptables/DNS 網路,以及 Egress 與 Ingress(LoadBalancer、Ingress Controller)的封包流程。
Keda 101
說明 KEDA ScaledObject 與 HPA 的分工、scale to 0 的條件,並以 cron trigger 範例示範設定與暫停方式。
Kubernetes 三大介面:CNI、CRI、CSI
說明 Kubernetes 將容器執行、網路與儲存拆成 CRI、CNI、CSI 三個介面的原因,以及 Pod 啟動時三者的串接流程。
EKS Pod Identity
比較 IRSA 與 EKS Pod Identity 的流程、Session Tags 與 ABAC 用法,並附 Terraform 設定範例。
EKS Public/Private Endpoint
比較 EKS API endpoint 在 public、public+private、private 三種設定下的存取路徑,並說明同時開啟兩者的原因。
Networking in K8s - inter-pods
整理 Kubernetes 網路模型中 Pod 內 Container 與 Pod 之間(同節點、跨節點)的封包傳輸方式,並提到 VPC CNI。
EKS ALB vs NLB
釐清 K8s Service 類型、Ingress 與 Ingress Controller 的差異,以及 AWS Load Balancer Controller 何時建立 ALB 或 NLB。
TypeScript CDK 使用紀錄
記錄 TypeScript CDK 的部署步驟、bootstrap 與 CloudFormation stack lifecycle 的運作,並與 Terraform 比較。
IAM policy resource/data diff
說明 Terraform 中 aws_iam_policy resource 與 aws_iam_policy_document data source 的差異及拆分的好處。
Karpenter Consolidation & Disruption Budget
說明 Karpenter 的 consolidationPolicy 與 disruption budgets 的作用、搭配方式,以及保守到激進三種設定範例。
Argo Helm Deployment
探討 ArgoCD 部署含 CRD 的 Helm chart 時如何處理順序,包含 SkipDryRunOnMissingResource 與 GVK、Discovery、RESTMapping 概念。
K8s Operator
以 Prometheus Operator 為例,簡述 Operator 由 CRD 與 Controller 組成以及 Controller 的運作。
VPC Secondary CIDR or 重建
比較 VPC IP 耗盡時新增 Secondary CIDR 與重建 VPC 的判斷基準,並整理 Secondary CIDR 的限制與用法。
Helm-manager
說明用 ArgoCD ApplicationSet 集中管理多 cluster 的 infra Helm charts 的動機,並整理各種 generator 的用法。
What is service mesh
說明沒有 Service Mesh 時服務間存取控制的做法與限制、Service Mesh 的功能,以及 Istio 的四種 multi-cluster 架構。
K8s Pull Image Authentication
整理 Kubernetes 拉取 image 時的 credential provider 與 imagePullSecret 兩種驗證方式、缺點,以及 v1.33 的 Service Account token 方案。
K8s Resources Remove Procedure
說明 Kubernetes Finalizer 的作用、手動刪除資源造成殘留的情境,以及正確的資源與 namespace 移除流程。
Kaniko ECR connection Issue & debug 心得
記錄讓 GitLab runner 上的 Kaniko 以 IRSA role 推送 image 到 ECR 失敗的除錯過程,最後發現是 IRSA trusted policy 設定問題。
EKS + Cilium = 解放 IP
整理 Cilium 相關名詞、在 EKS 使用 Cilium overlay 模式的運作方式,以及部署過程中遇到的 VXLAN、masquerade、hostNetwork 等問題與解法。
EKS auto mode
介紹 EKS Auto mode 與傳統 EKS 手動模式的差異、與 Fargate/EC2 node 的比較,以及 EC2 + Fargate 混合架構的取捨。
Kind cluster connection
記錄用 Kind 建立三個本地 cluster,讓兩個 ArgoCD 輪流納管同一個 target cluster 並觀察 workload 變化的測試過程。
Cognito 101
以健身房比喻說明 Cognito 的 User Pool、User Pool Client、Identity Pool,並比較 OAuth、OIDC 與 SAML。
lambda module create package = true
說明 terraform lambda module 在 create_package = true 且未指定 source_path 時出現錯誤的原因。
自動威脅情資 / n8n
記錄用 helm-manager 部署 n8n chart 的設定要點,以及 n8n 串接 Slack 發送訊息的步驟。
CDN 如何代理 origin
說明 CDN 代理 origin 的前提條件、request 歸屬,以及 Signed URL 與 Signed Cookie 的運作與差異。
憑證和 challenge 運作原理
整理憑證簽發流程、challenge 種類、client 判斷憑證可信的依據,以及憑證鏈與 CN / SAN / SNI 的差異。
SSL vs SSH
比較 SSL/TLS 與 SSH 的運作流程,以及 openssl 與 ssh-keygen 產生的金鑰用途與 CloudFront 使用 PEM 的原因。
cloudfront forward host header
說明 CloudFront custom origin 未 forward host header 時可能出現 502 的原因與 virtual hosting 背景。
EKS tf module v20 survey
整理 EKS terraform module 從 v19 升到 v20 的原因,以及 access entry 相較 aws-auth ConfigMap 的差異。