第一次k8s on GCP

這是給從未使用過k8s的人進行了解文章,以使用方式介紹為主。

首先我們到k8s Engine。

我們點選 建立,然後我們選擇 GKE Autopilot,基本上兩個選項的差異是你需不需要自己調整node(vm)的設定, GKE Autopilot會相對來說更簡化設定,以體驗來說我們先使這個會更方便。

可以看得出來省了很多步驟(綠色勾勾部分),我們直接按 建立 即可

這個步驟會處理比較久,請耐心等候。

而規格的價格分別是這樣

然後我之後我們真的要開始建構pod了,點選部署後選擇你要的docker image。

這邊的image我是在這裡完成的

然後確定之後,又是等待…

成功之後會像這樣

開好之後我們要再將這個服務對外統一開放,我們進到工作附載後,找到公開鈕

然後者要填入你的服務開的port即可。

然後回到頁面上可以看到pod已經會增減了


根據需求調整單個服務的資源

工作負載 > app-name > yaml > 編輯。

  1. 調整spec
    1. replicas
    2. 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
Tags:, ,

Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。