跳至内容

使用 Knative 运算符升级

本主题介绍了如果您使用运算符安装 Knative,如何升级 Knative。如果您使用 YAML 安装,请参阅 使用 kubectl 升级.

属性 spec.version 是您在 Serving 或 Eventing 自定义资源中执行升级时需要更改的唯一字段。您无需为 patch 号指定版本,因为 Knative 运算符会匹配最新的可用 patch 号,只要您指定了版本的 major.minor。例如,您只需指定 "1.1" 即可升级到 1.1 版,无需指定确切的 patch 号。

Knative 运算符最多支持最后三个主要版本。例如,如果运算符的当前版本为 1.5,则它将捆绑并支持安装 Knative 版本 1.5、1.4、1.3 和 1.2。

注意

在以下示例中,Knative Serving 自定义资源安装在 knative-serving 命名空间中,而 Knative Eventing 自定义资源安装在 knative-eventing 命名空间中。

执行升级

要升级,请应用运算符自定义资源,并添加要升级到的 Knative 版本的 spec.version

  1. 创建一个包含以下内容的 YAML 文件

    apiVersion: operator.knative.dev/v1alpha1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      version: "<new-version>"
    
    其中 <new-version> 是您要升级到的 Knative 版本。

  2. 通过运行以下命令应用 YAML 文件

    kubectl apply -f <filename>.yaml
    
    其中 <filename> 是您在上一步骤中创建的文件的名称。

通过查看 Pod 验证升级

您可以通过查看相关命名空间中组件的 Pod 状态来确认 Knative 组件是否已成功升级。

注意

所有 Pod 都将在升级期间重新启动,并且它们的年龄将重置。

输入以下命令以查看 knative-serving 命名空间中的 Pod 信息

kubectl get pods -n knative-serving

该命令返回类似于以下的输出

NAME                                                     READY   STATUS      RESTARTS   AGE
activator-6875896748-gdjgs                               1/1     Running     0          58s
autoscaler-6bbc885cfd-vkrgg                              1/1     Running     0          57s
autoscaler-hpa-5cdd7c6b69-hxzv4                          1/1     Running     0          55s
controller-64dd4bd56-wzb2k                               1/1     Running     0          57s
net-istio-webhook-75cc84fbd4-dkcgt                       1/1     Running     0          50s
net-istio-controller-6dcbd4b5f4-mxm8q                    1/1     Running     0          51s
storage-version-migration-serving-serving-0.20.0-82hjt   0/1     Completed   0          50s
webhook-75f5d4845d-zkrdt                                 1/1     Running     0          56s

输入以下命令以查看 knative-eventing 命名空间中的 Pod 信息

kubectl get pods -n knative-eventing

该命令返回类似于以下的输出

NAME                                              READY   STATUS      RESTARTS   AGE
eventing-controller-6bc59c9fd7-6svbm              1/1     Running     0          38s
eventing-webhook-85cd479f87-4dwxh                 1/1     Running     0          38s
imc-controller-97c4fd87c-t9mnm                    1/1     Running     0          33s
imc-dispatcher-c6db95ffd-ln4mc                    1/1     Running     0          33s
mt-broker-controller-5f87fbd5d9-m69cd             1/1     Running     0          32s
mt-broker-filter-5b9c64cbd5-d27p4                 1/1     Running     0          32s
mt-broker-ingress-55c66fdfdf-gn56g                1/1     Running     0          32s
storage-version-migration-eventing-0.20.0-fvgqf   0/1     Completed   0          31s
sugar-controller-684d5cfdbb-67vsv                 1/1     Running     0          31s

通过查看自定义资源验证升级

您可以通过检查自定义资源 READY 状态是否为 True 来验证 Knative 组件的状态。

kubectl get KnativeServing knative-serving -n knative-serving

该命令返回类似于以下的输出

NAME              VERSION         READY   REASON
knative-serving   1.1.0          True
kubectl get KnativeEventing knative-eventing -n knative-eventing

该命令返回类似于以下的输出

NAME               VERSION        READY   REASON
knative-eventing   1.1.0         True

回滚到早期版本

如果升级失败,您可以回滚以将您的 Knative 还原到以前的版本。例如,如果 1.2 的升级出现问题,而您的先前版本是 1.1,则可以应用以下自定义资源以将 Knative Serving 和 Knative Eventing 还原到 1.1 版。

要回滚到 Knative Serving 的先前版本

  1. 创建一个包含以下内容的 YAML 文件

    apiVersion: operator.knative.dev/v1alpha1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      version: "<previous-version>"
    
    其中 <previous-version> 是您要降级到的 Knative 版本。

  2. 通过运行以下命令应用 YAML 文件

    kubectl apply -f <filename>.yaml
    
    其中 <filename> 是您在上一步骤中创建的文件的名称。

要回滚到 Knative Eventing 的先前版本

  1. 创建一个包含以下内容的 YAML 文件

    apiVersion: operator.knative.dev/v1alpha1
    kind: KnativeEventing
    metadata:
      name: knative-eventing
      namespace: knative-eventing
    spec:
      version: "<previous-version>"
    
    其中 <previous-version> 是您要降级到的 Knative 版本。

  2. 通过运行以下命令应用 YAML 文件

    kubectl apply -f <filename>.yaml
    
    其中 <filename> 是您在上一步骤中创建的文件的名称。

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