跳至内容

将 Kubernetes 部署转换为 Knative 服务

本主题介绍如何将 Kubernetes 部署转换为 Knative 服务。

优势

转换为 Knative 服务具有以下优势

  • 减少服务实例的占用空间,因为当实例变为空闲时,它会缩放到 0。
  • 由于 Knative 服务的内置自动扩展,因此可以提高性能。

确定您的工作负载是否适合 Knative

一般来说,如果您的 Kubernetes 工作负载适合 Knative,您可以删除许多清单以创建 Knative 服务。

您需要考虑三个方面

  • 所有完成的工作都由 HTTP 触发。
  • 容器是无状态的。所有状态都存储在其他地方,或者可以重新创建。
  • 您的工作负载仅使用 Secret 和 ConfigMap 卷。

转换示例

以下示例显示了 Kubernetes Nginx 部署和服务,并展示了如何将其转换为 Knative 服务。

Kubernetes Nginx 部署和服务

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 服务

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

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将与 Google 共享,以实现该目的。 了解更多。