# Kubernetes https://www.bilibili.com/video/BV1Qv41167ck/?p=3&spm_id_from=pageDriver&vd_source=f726dd30598fe01d9fbc9c5a988d6408 https://www.youtube.com/watch?v=TlHvYWVUZyc 大致說明 https://www.bilibili.com/video/BV1Du4m137pK/?spm_id_from=333.337.search-card.all.click&vd_source=f726dd30598fe01d9fbc9c5a988d6408 ## node 裡面有很多pob ![](https://i.imgur.com/qElqa6p.png) ![](https://i.imgur.com/mM6vx92.png) kubelet代理讓pod運行 proxy控管pob互相溝通 網路 ## pod 裡面也可以多個image喔 Pod 是 Kubernetes 的最小部署單位,它是一組容器的集合,這些容器共享相同的網絡空間和存儲卷。 ![image](https://hackmd.io/_uploads/H16UMojIJl.png) ## 注意事項 https://blog.devops.dev/how-to-achieve-zero-downtime-application-with-kubernetes-ba52fdea9a9b ## 集群類型 ![image](https://hackmd.io/_uploads/rkjGlpZM0.png) ![image](https://hackmd.io/_uploads/SyhogpZfA.png) ## Replication Controller https://blog.kennycoder.io/2020/12/20/Kubernetes%E6%95%99%E5%AD%B8%E7%B3%BB%E5%88%97-Replication-Controller%E7%AE%A1%E7%90%86Pods%E7%9A%84%E6%87%89%E7%94%A8/ ## k8s 元件 https://blog.kennycoder.io/2020/03/24/Kubernetes-%E5%85%83%E4%BB%B6%E5%8E%9F%E7%90%86%E4%BB%8B%E7%B4%B9/#more ## rolling update升級問題 https://zhuanlan.zhihu.com/p/340547982 ## 總結注意 https://blog.devops.dev/how-to-achieve-zero-downtime-application-with-kubernetes-ba52fdea9a9b ## Cilium https://www.youtube.com/watch?v=mxaCuXEj3H8&ab_channel=GolangTaiwan ## pob 就是container ex: db, web ... 一般來說會有一個主要得 其他的是helper container ![](https://i.imgur.com/Zw1GrSc.png) 一般來說pob他會互相通訊 因為在同一個node 並分對應ip 跟compose差不多 但是他有一個問題 如果壞掉重建立ip會改變 所以需要service 跟compose一樣 ## controller plane (master node) 透過專有api去跟不同節點(node)交互 監測結點網路狀態 做網路附載 處理壞掉的pob 放入備用pob ![](https://i.imgur.com/EjhxQtC.png) ![](https://i.imgur.com/rh64ruy.png) ect存入持久化資料 scb是調度資源 pod放哪個component controller manager管理 node出現問題通知 ## secret ![](https://hackmd.io/_uploads/Sy65xfrNn.png) 一定要base64 ## config ![](https://hackmd.io/_uploads/Syms90VVn.png) 可以用不同方式建立 ### metadata 名稱 ### spec 規範 ### status 這部分會自動產生 他會幫你比較目前spec的規費跟目前的有沒有一致 會幫你比對跟更新 ![](https://hackmd.io/_uploads/r1D3sCVVn.png) 他會幫你放在etcd上面 ![](https://hackmd.io/_uploads/SkgWnANNh.png) ## cluster ![](https://i.imgur.com/fFYzsi5.png) ## HorizontalPodAutoscaler ## sever 最常用就是nodeport ### nodeport ![](https://i.imgur.com/j8K00k6.png) ## RBAC https://ithelp.ithome.com.tw/articles/10195944 ## 功能 ### map ![](https://i.imgur.com/eDwPJ6Z.png) 用來授權 設定對應的IMA有權限 ## workload Workload 是什麼? 在 Kubernetes 中,Workload(工作負載)指的是「執行應用程式的 K8s 資源」,例如: Deployment(負責管理 Pod,適合無狀態應用) StatefulSet(適合有狀態應用,例如 DB) DaemonSet(確保每個 Node 都有一個 Pod,例如 fluentd) Job / CronJob(一次性或定期執行的工作) ## deplayment ![image](https://hackmd.io/_uploads/B1CiNqOKkg.png) ![](https://i.imgur.com/noPBK3G.png) container往上是對應service可以看成docker-compose的 他這樣就可以不用寫死ip, 然後對應的是deplayment 所以實際上create的是service 他比較是藍圖 可以決定水平擴張 ## service ![](https://i.imgur.com/Outxkhx.png) 有點像dns可以對應不同的靜態ip, 並且也會在pob死雞後調整 所以也算是load banlner 所以她會將requ轉到最空的 ![](https://hackmd.io/_uploads/ryfiW0VE2.png) ## ingress ![](https://i.imgur.com/fWTo1mQ.png) ![](https://hackmd.io/_uploads/BygHEFRVE2.png) ![](https://hackmd.io/_uploads/SJz3KCEE2.png) 提供驗證、負載平衡、路由過濾等功能 他的controller有很多種其中一種就是nginx annotation 記得是1.18以前才要 ![](https://i.imgur.com/lOnjx3h.png) ![](https://i.imgur.com/tsmglfl.png) 之後改用ingress.class 記得都要安裝 install 對應的東西 才能有外部地址 nginx-controller 然後有對應的pods nginx-contoller 原本的ingress才會有address 這個address才會對外開放 ## statefull ![](https://hackmd.io/_uploads/B1C2PAVNh.png) 管理有狀態用的 包含elasticssearch跟 db之類的 他們不能用develpment 要用statefull 但很麻煩 所以一般會託管給其他的雲端服務 ## cert-manager kind是clausterIssuer代表他在全部namespace裡面都能用 issuer的話就不能 https://medium.com/starbugs/%E4%BD%BF%E7%94%A8-cert-manager-%E7%AE%A1%E7%90%86-k8s-tls-%E6%86%91%E8%AD%89-ab6258af9195 :https://cert-manager.io/docs/configuration/acme/dns01/ https://cert-manager.io/docs/usage/ingress/ ## volumn ![](https://hackmd.io/_uploads/HyHygRVE3.png) ## configMap && secret ![](https://hackmd.io/_uploads/HyAZl0N42.png) ## KEDA 可以依照條件去擴展 ## Grafana 監控 dcard團隊使用這個 ## Vector dcard也用這個 ## minekube 依賴虛擬機 所以需要docker 所以他其實有兩層 先docker一個k8s這樣 裡面在一堆各種組件 ## 配置方式 https://zhuanlan.zhihu.com/p/533433276 https://www.cnblogs.com/xuweiweiwoaini/p/13884112.html ## Istio https://medium.com/hobo-engineer/%E7%AD%86%E8%A8%98-%E6%B7%BA%E5%85%A5%E6%B7%BA%E5%87%BA-istio-1-%E6%9E%B6%E6%A7%8B%E7%B0%A1%E8%AA%AA-a8d6aaf6977d ###### tags: `額外工具`