跳到內容

將 Kubernetes Deployment 轉換為 Knative Service

本主題說明如何將 Kubernetes Deployment 轉換為 Knative Service。

優點

轉換為 Knative Service 具有下列優點

  • 當執行個體閒置時,會縮放到 0,因此可減少服務執行個體的佔用空間。
  • 由於 Knative Service 的內建自動調整功能,因此可提升效能。

判斷您的工作負載是否適合 Knative

一般來說,如果您的 Kubernetes 工作負載適合 Knative,則可以移除許多資訊清單,以建立 Knative Service。

您需要考慮三個方面

  • 所有工作都是由 HTTP 觸發。
  • 容器是無狀態的。所有狀態都儲存在其他位置,或可以重新建立。
  • 您的工作負載只使用 Secret 和 ConfigMap 磁碟區。

轉換範例

以下範例顯示 Kubernetes Nginx Deployment 和 Service,並顯示如何轉換為 Knative Service。

Kubernetes Nginx Deployment 和 Service

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-nginx
  labels:
    run: my-nginx
spec:
  ports:
  - port: 80
    protocol: TCP
  selector:
    run: my-nginx

Knative Service

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: my-nginx
spec:
  template:
    spec:
      containers:
      - image: nginx
        ports:
        - containerPort: 80

我們使用分析和 Cookie 來了解網站流量。為了該目的,您使用我們網站的相關資訊會與 Google 分享。了解更多。