心得分享&簡單介紹k8s
真奇怪
開發/維運
透過工具改善部署
容器技術
VM
Container
指令、細節就自己看&實作:P
Master
- 叢集的大腦
- 調度Pods
Minion(Nodes)
- 管理容器執行
- 指派要執行的Pods實體化
Pod
- 最小的 Immutable deploy單位
- Auto Scaling
- 自動復原機制
Service
- 透過定義Service來讓外部
的使用者訪問Pod
- 抽象化概念
Service Network
- ClusterIP : pod-to-pod
- NodePort
- LoadBlancer
Volumn
- 設定檔案存取的方式
- 讓容器紀錄狀態以便重啟時回復
ConfigMap
- 應用程式常用的參數設定
Secret
- 應用程式需要安全保存的參數設定
水平擴展
Deployment
- 回滾機制 (Rollback)
- 官方推薦
Deamonset
- 讓Pod自動跑在所有Nodes
HPA (Horizontal Pod Autoscaler)
- 依據Pod負載去做Deployment伸縮擴展
- Pod要做資源控管
期望狀態
- 透過建立k8s物件告知cluster如何運行
藉此建立一種期望狀態
反向思考: 假設服務都會掛
當一個Service有3個pods
- 叢集會盡力達到
- 狀態會經常改變
Init Container
- 避免Service倒流量到不健康的Pod
- 自動檢測與修復
Job/Cronjob
- 任務取向的服務
- 定時執行檢測
kubectl get [object]
- get po
- get svc
kubectl describe [object]
- 從cluster角度看pod運作狀況
kubectl logs [object]
- 看pod的console log
打包建立Image
> 在本地docker測試運行
> 推到 Docker Registry保存
> 寫Docker File > 建立服務 > 監控服務
> 寫Deployment部署腳本
> 建立Deployment物件
> 監控服務
GCP、GKE
- $ $ $
minikube
- 裝虛擬機>裝minikube
- minikube start
自幹
- 這裡有批機器好便宜阿!
Pod
- 建個pod先
Service
- 用Service管理幾個Pods
Deployment
- 官方建議不要裸佈Pod
實際建立服務
- Web
嘗試建立較困難服務
- Redis
- EFK
嘗試會讓系統當機的服務
- 教訓>>>>教程
- Be careful
寫yaml檔
寫yaml檔
寫yaml檔
因為很重要所以要說三次
多想想你要的服務結構
- 如何實作與撰寫yaml
上課老師的部落格
https://tachingchen.com/tw/blog/
上課的共用筆記
https://hackmd.io/9pYIJhQoTJeaAw0qSUuxJA
Online k8s
https://labs.play-with-k8s.com/