發表文章

目前顯示的是有「kubernetes」標籤的文章

ArgoCD - The first sight

圖片
ArgoCD 是一款open source的 gitOps工具,用git repositories 作為application 狀態的來源 for kubernetes deployment。並能經由track updates on branch, tags, etc 去觸發 CI/CD automation。 GitOps由名字去拆想去猜想,會是git 與ops (operation) GitOps是一種管理kubernetes cluster與持續交付application的一種方式。利用git 作為infrastructure與application設定來源,與 service agent持續監測是否有設定上的變更,而進行資源操作。 這裡以ArgoCD開源軟體為例,ArgoCD application controller負責跟kubernetes溝通、確認status並且查看是否符合git repo所描述的內容並作更動。 開發人員可以透過git repo的commit/merge來觸發 build, test. 維運人員可透過UI/CLI方式觀察狀態以及部署。 reference: https://argoproj.github.io/argo-cd/

Kubernetes - The First sight

圖片
Kubernetes (簡寫 k8s) 提供一個有彈性的分散式系統框架,處理failover, scaling, canary deployment 等。包含load balancing, storage, auto-rollouts and rollbacks, auto bin packing(裝箱最佳化,指硬體資源分配上), self-healing, secret and config management。 Kubernetes components (Control Plane, Node, Addons) 當deploy k8s, 就是一組cluster, 包含跑containerized application的worker machines 稱為nodes。Worker node掌控Pods (每個pods包含running containers),並藉由control plane 去管理。原則上prod environment 會跨多台電腦,單一cluster 跑在多個nodes上來達到HA(High Availability)跟fault-tolerance. Control Plane Components - 當有events被偵測到時,Control Plane 會針對 deployments的資訊去對cluster做動作,例如起new pod。操作的components有 kube-apiserver 則是操作Control Plane的介面 etcd 儲存cluster parameter data kube-scheduler 定觀察pods與node的狀態 kube-controller-manger - 在controller process中又分這幾種類型 Node controller  job controller  endpoint controller  service account & token controller cloud-controller-manager - 可讓cluster與cloud provider API與cloud平台做互動,可以互動類型如下 Node Controller 檢查cloud provider 上node的狀態 Route controll...