使用 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
-
创建一个包含以下内容的 YAML 文件
其中apiVersion: operator.knative.dev/v1alpha1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: version: "<new-version>"
<new-version>
是您要升级到的 Knative 版本。 -
通过运行以下命令应用 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 的先前版本
-
创建一个包含以下内容的 YAML 文件
其中apiVersion: operator.knative.dev/v1alpha1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: version: "<previous-version>"
<previous-version>
是您要降级到的 Knative 版本。 -
通过运行以下命令应用 YAML 文件
其中kubectl apply -f <filename>.yaml
<filename>
是您在上一步骤中创建的文件的名称。
要回滚到 Knative Eventing 的先前版本
-
创建一个包含以下内容的 YAML 文件
其中apiVersion: operator.knative.dev/v1alpha1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: version: "<previous-version>"
<previous-version>
是您要降级到的 Knative 版本。 -
通过运行以下命令应用 YAML 文件
其中kubectl apply -f <filename>.yaml
<filename>
是您在上一步骤中创建的文件的名称。