將 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