這是給從未使用過k8s的人進行了解文章,以使用方式介紹為主。
首先我們到k8s Engine。
我們點選 建立
,然後我們選擇 GKE Autopilot,基本上兩個選項的差異是你需不需要自己調整node(vm)的設定, GKE Autopilot會相對來說更簡化設定,以體驗來說我們先使這個會更方便。
可以看得出來省了很多步驟(綠色勾勾部分),我們直接按 建立
即可
這個步驟會處理比較久,請耐心等候。
而規格的價格分別是這樣
然後我之後我們真的要開始建構pod了,點選部署後選擇你要的docker image。
這邊的image我是在這裡完成的
然後確定之後,又是等待…
成功之後會像這樣
開好之後我們要再將這個服務對外統一開放,我們進到工作附載後,找到公開鈕
然後者要填入你的服務開的port即可。
然後回到頁面上可以看到pod已經會增減了
根據需求調整單個服務的資源
工作負載 > app-name > yaml > 編輯。
- 調整spec
- replicas
- resource > limits > memory
在 Autopilot 工作負載中請求 Spot Pod
要請求您的 Pod 作為 Spot Pod 運行,請使用 nodeSelector: cloud.google.com/gke-spot=true
中的標籤,GKE 會自動配置可以運行 Spot Pod 的節點。
Spot Pod 可以隨時被驅逐和終止,例如,如果 GCP 中的其他地方需要計算資源。terminationGracePeriodSeconds
當終止發生時,終止節點上的 Spot Pod 可以通過指定該字段在終止前請求最多 25 秒的寬限期,這是在盡力而為的基礎上授予的。
在站用期間給予 Spot Pod 的最大寬限期 為 25 秒。在佔用期間請求超過 25 秒terminationGracePeriodSeconds
不會授予超過 25 秒。在驅逐時,您的 Pod 會 收到 SIGTERM 信號,並且應該在寬限期內採取措施關閉。
對於 Autopilot,GKE 還會自動影響為運行 Spot Pod 而創建的節點,並使用相應的容忍度修改這些工作負載。影響會阻止標準 Pod 被調度到運行 Spot Pod 的節點上。
使用 nodeSelector 來要求 Spot Pod
您可以使用 nodeSelector 在部署中要求 Spot Pod。將 cloud.google.com/gke-spot=true
標籤添加到您的部署中,例如以下示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-app
spec:
replicas: 3
selector:
matchLabels:
app: hello-app
template:
metadata:
labels:
app: hello-app
spec:
containers:
- name: hello-app
image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
nodeSelector:
cloud.google.com/gke-spot: "true"
terminationGracePeriodSeconds: 25