启用了Istio sidecar自动注入,无需标记命名空间



我有一个场景,需要在不标记命名空间的情况下将istio端注入到工作负载中。我无法标记命名空间的原因是,在我的集群中,命名空间是通过自动进程创建的,而由于安全原因,目前我无法更改该进程。因此,我们想了解是否有一种方法可以在不标记命名空间的情况下自动将istio-sidecar注入到工作负载中。

我已经尝试和测试过的资源。

  1. 在部署/pod定义中使用上的sidecar.istio.io/inject="true"注释。Note: the annotation will only work with if the namespace is labelled and for this reason I really don't why do we even have this annotation. For more information please visit: https://github.com/istio/istio/issues/6476#issuecomment-1023817004

  2. 手动注入有效,但操作开销太大,因此不是首选方法。

  3. DiscoverySelector构造as仅适用于名称空间,而不适用于kubernetes内的deployment/pods对象。

Istio版本

client version: 1.12.2
control plane version: 1.12.1

上述问题已解决。

实现上述目的的方法是在pod/deployment定义中将sidecar.istio.io/inject="true"用作label,而不是用作annotation

的正确定义应该看起来像这个

apiVersion: v1
kind: Pod
metadata:
name: labeled-true
namespace: policy-disabled
labels:
sidecar.istio.io/inject: "true"
spec:
containers:
- image: docker.io/citizenstig/httpbin
imagePullPolicy: IfNotPresent
name: httpbin

不像这个

apiVersion: v1
kind: Pod
metadata:
name: labeled-true
namespace: policy-disabled
annotations:
sidecar.istio.io/inject: "true"
spec:
containers:
- image: docker.io/citizenstig/httpbin
imagePullPolicy: IfNotPresent
name: httpbin

相关内容

  • 没有找到相关文章

最新更新