如果已将 VMware Container Networking 升级到新版本,则还必须升级已注册的 Antrea Kubernetes 集群中的 Antrea-NSX Interworking 部署。
过程
- 运行以下 kubectl 命令以删除注册作业和 antrea-interworking 部署。
kubectl delete job register -n vmware-system-antrea --ignore-not-found
kubectl delete deployment antrea-interworking -n vmware-system-antrea --ignore-not-found
注: 请勿删除此命名空间中的
vmware-system-antrea
命名空间、ConfigMaps 和密钥。
- 运行以下 kubectl 命令,将 interworking.yaml 文件提交到 Kubernetes API 服务器,并触发升级。
kubectl apply -f interworking.yaml
注: 只有
interworking.yaml 必须提交。升级过程不需要
bootstrap-config.yaml 文件。
- 运行以下 kubectl 命令,列出
vmware-system-antrea
命名空间中的所有 Pod。
kubectl get pods -o wide -n vmware-system-antrea
观察 register-xxx Pod 的状态是否为
正在运行。由于
Antrea Kubernetes 集群已注册到
NSX,因此 register-xxx Pod 会跳过注册过程,并且其状态很快更改为
已完成。旧 interworking-yyy Pod 的状态更改为
正在终止,而新 interworking-zzz Pod 的状态更改为
正在运行。
如果新 interworking-zzz Pod 的状态为正在运行,并且就绪容器为 4/4,则无需重新启动容器,并且升级将会成功。
#Example output:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
interworking-7764988ddd-wnvcg 4/4 Running 0 29s 192.168.x.y example-node-10 <none> <none>
- 运行以下 kubectl 命令,确认新的 interworking-zzz Pod 正在使用新映像,并且映像 URL 与预期相同。
确保将“interworking-7764988ddd-wnvcg”Pod 名称替换为您在上一步的
kubectl get pods 命令输出中看到的实际 Pod 名称。
kubectl get pods -o yaml interworking-7764988ddd-wnvcg -n vmware-system-antrea | grep image:
# Example output:
image: vmware.io/antrea/interworking:0.11.0
image: vmware.io/antrea/interworking:0.11.0
image: vmware.io/antrea/interworking:0.11.0
image: vmware.io/antrea/interworking:0.11.0
image: vmware.io/antrea/interworking:0.11.0
image: vmware.io/antrea/interworking:0.11.0
image: vmware.io/antrea/interworking:0.11.0
image: vmware.io/antrea/interworking:0.11.0