# GKE Class [上課資源](https://www.notion.so/VSOP-Architecting-with-Google-Kubernetes-Part-II-0a44fc04dfe045ab815f23cedf03172c) ## 課程大綱 @Brave 第一天的圖貼一下哈哈 QQ ## DAY1 ### Docker介紹 * container優點 * 映像檔小 * 啟動快 * 版本一致 * 架構 * 資源隔離 * 不共用函式庫 * 低開銷   * 容器資源限制 * Requests 最小 * Limits 最大 ### Lab實作 docker 基本操作 ### K8S  ### GKE  * auto scale 可以設定要幾台pool * Workload > Deploye 部署   能夠建立pod之間互通的路由表 #### Pod * 結構 * 包 container(s) * Label * 寫在metadata中 * deployment > Selectors > Services 選擇出相同屬性的Pod出成一個服務 #### 服務  1. image 2. VM 3. pod 4. deployment : 能夠產生多個pod出來,有replicas的保護,會維持pod的數量 5. service(包含selector) : selector按照label選取需要的服務 #### Ingress(L7 service)  ### Yaml * 必寫四項 * apiVersion * kind * metadata * spec * kuvectl apply/create -f deployment.yaml ### Namespace Pod 在同個namespace才能做溝通,即使在一樣的cluster、node中  ### Health Check 每隔一段時間去檢查pod的健康狀態,如定期http請求檢查回傳是否正常(200~400) ### Port-forward ## Component  ### volume 1. emptyDir - Pod中令container間共享資料,生命週期與Pod一致 2. hostPath - 掛載Node的本機目錄中,生命週期與Node相同 3. PV(C) - 外部(及雲端)存儲空間令Pod間共享資料  ### configMap 1. 設定檔參數以key-value方式儲存其中 2. 結合volume掛入pod 3. 設為環境變數 ### Secret 將機敏資料封裝於secret中,配合volume以暫態tmpfs加載 ## DAY2 ### 網路  #### Private Cluster  M為master node,其餘為worker node zonal:放在單一機房 multi-zone:分佈在不同機房 regional:分佈在不同機房,並且個機房皆有master node  #### DNS #### Service   #### Ingress 導流不同的external ip與網域組合  services -> ingress -> LoadBalancer  #### LoadBalancer 唯一external ip  ##### HTTPS憑證 1. gcp ingress 憑證(不支援sub-domain) 2. k8s secret 3. 自訂 ### NEG  ### 部署策略  #### 版本更新 1. Rolling Update   2. Recreate 換標籤,一次全上 - Blue/Green Strategy 4. Canary testing - 分配loadbalancer造訪 %數慢慢升版 -  ### CI/CD  Role設定 ### Service Mesh  <br>   1. 授權管理 2. 觀測流量 3. 延遲控制 #### Istio 有額外三個yaml檔案,主要以lable和gateway溝通 1. Ingress GateWay 2. Virtual Service 3. Destination Rule
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up