我们已经安装了一个istio,并标记为命名空间(默认)istio。Io/rev=1-8-1,该命名空间下的所有服务都指向1-14-1 istiod。现在我尝试安装新的版本,版本号是istio.io/rev=1-14-1。我只想测试一个部署pod,它指向新版本,而不是指向旧版本。
活动执行:-
- 我更新了pod上的标签。io/rev=1-14-1并创建pod,但该pod仍然指向旧版本,因为我认为命名空间优先于对象标签。
如何在pod中注入新版本的sidecar而不删除命名空间标签?
我想通过应用标签或注释来测试一些部署,这样它就可以指向新的版本,如果它工作正常,然后推出所有服务
看起来您正在尝试在控制平面上执行金丝雀升级。
试试这个:
-
创建一个新的命名空间来测试新的控制平面。如。Kubectl create ns test
-
在命名空间中应用标签,使sidecar注入使用最新的控制平面。如。Kubectl标签命名空间test istio-injection- istio。Io/rev=[替换为你想使用的控制平面版本]
-
在新的命名空间中创建新的部署,测试并验证侧车代理版本。如。Kubectl -n test apply -f deploy .yaml[depl。Yaml是用于部署的Yaml文件]
查看这里的详细示例和描述:https://istio.io/latest/docs/setup/upgrade/canary/