K8S - Development - Replicas

前言 這篇的主題是建立 development 並且確認 development 在各個狀況會如何調度資源,如果需要跳到別的部分的 k8s 筆記,請透過下方連結跳轉~ K8S - 基礎學習筆記目錄 建立 Development apiVersion: apps/v1 # 定義這個物件的類型為 Deployment kind: Deployment # 設定這個 Deployment 的 metadata(唯一識別資訊) metadata: name: py-backend-test-deployment # 設定這個 Deployment 的 spec(規格) spec: # 定義這個 Deployment 要運行的 Pod 的數量 replicas: 2 # 定義這個 Deployment 如何去選擇要管理的 Pod # 對應到 Pod 的 metadata.labels selector: matchLabels: app: py-backend-test # 定義這個 Deployment 要管理的 Pod 的模板 template: # 定義這個 Pod 的 metadata(唯一識別資訊) # 這邊的 metadata.labels 會對應到 Deployment 的 selector.matchLabels metadata: labels: app: py-backend-test spec: containers: - name: py-backend-test image: sekixu/py-backend-test:latest resources: limits: memory: "512Mi" cpu: "500m" requests: memory: "256Mi" cpu: "250m" ports: - containerPort: 8000 指令 # 套用寫好的 yaml 檔建立 development kubectl apply -f development.backend.yaml # 取得 development 資訊 kubectl get pods # example: # NAME READY UP-TO-DATE AVAILABLE AGE # py-backend-test-deployment 2/2 2 2 12s # 取得由 development 建立的 pods 資訊 kubectl get pods # example: # NAME READY STATUS RESTARTS AGE # py-backend-test-deployment-64c6765877-6mm7b 1/1 Running 0 21s # py-backend-test-deployment-64c6765877-mx5zx 1/1 Running 0 21s 資源調度 嘗試刪除掉其中一個 pods 並觀察 pod 數量,可以發現下面範例 6mm7b 結尾的 container 被刪除後,development 自動幫我們建立了 28xtj 結尾的 pod。 ...

2024-11-20 · 217 words · SekiXu

K8S - Pods

前言 這篇的主題是建立 pod 並且與你建立的 pod 互動,如果需要跳到別的部分的 k8s 筆記,請透過下方連結跳轉~ K8S - 基礎學習筆記目錄 建立 Pods apiVersion: v1 # 定義這個物件的類型為 Pod kind: Pod # 設定這個 Pod 的 metadata(唯一識別資訊) metadata: name: py-backend-test # 設定這個 Pod 的 spec(規格) spec: # 定義這個 Pod 要運行的容器 containers: # 定義容器的內容,可以把他想像成 docker-compose 的設定 - name: py-backend-test image: sekixu/py-backend-test:latest # 定義容器的資源限制,避免這個容器使用過多資源影響到其他容器 resources: # 定義容器的最大資源限制 limits: memory: "512Mi" cpu: "500m" # 定義容器的最小資源限制 requests: memory: "256Mi" cpu: "250m" ports: # 定義容器要開啟的 Port - containerPort: 8000 指令 # 套用寫好的 yaml 檔建立 pods kubectl apply -f pod.backend.yaml # 取得 pods 資訊 kubectl get pods # example: # NAME READY STATUS RESTARTS AGE # py-backend-test 1/1 Running 0 119m # 設定 pods 的 port mapping,讓你可以在本機測試 kubectl port-forward py-backend-test 8000:8000 # --- # 其他指令: logs, exec, delete # 查看 pod logs kubectl logs -f py-backend-test # 進入 pod kubectl exec -it py-backend-test bash # 直接指定 pod name 移除 pods kubectl delete pod py-backend-test # 指定檔案移除透過該檔案建立的 pods kubectl delete -f pod.backend.yaml 結語 透過這篇可以看到大部分的操作都跟 docker 差不多,但是只會 pods 的話還沒有碰到 k8s 最精華的資源調度,下一篇就來講負責資源調度的 development ! ...

2024-11-20 · 163 words · SekiXu

K8S - 基礎學習筆記目錄

前言 這個文章將會一步一步帶你把一個簡單的前後端分離的服務部署上本地的 K8S(with Docker CE),參考教學文章為 guangzhengli/k8s-tutotials,感謝這個作者開了這個相當好懂的 K8S 教學 Repo。 這個文章內所有的步驟,都會透過我自己的 Repo matsuno.seki/eks-cicd-template 來實作一遍,大家也可以自己開一個 Repo,針對想練習的部分實作看看! 章節 在這個文章我會跳過服務建立的部分,大家可以動動腦袋把自己的服務編成 container 推上 docker hub 後一起實作看看,另外在每個步驟後面的括號都是我自己為了更好理解打上去的註解,如果哪邊有錯或是誤解的話可以跟我說~ 建立 pods(set of containers) k8s - Pods 建立 deployment(auto pods management) k8s - development - replicas 建立 service(pods proxy) 建立 ingress controller(service gateway) 參考文件 guangzhengli/k8s-tutotials

2024-11-20 · 46 words · SekiXu