linkerd 用 helm 或命名空间注入?

linkerd Inject with helm or namespace?

我似乎找不到我的问题的简单答案,

如何使用 linkerd inject 命令/选项在使用 helm 安装包时添加,例如喜欢 postgres?

我已经用另一个包完成了,但那是通过将注释命令添加到值文件并在运行 helm install 命令时提供它。

有了istio,我只需要在命名空间上添加一个标签就可以了?

所以我开始考虑使用 kubectl create namespace 命令将注释添加到我正在使用的命名空间?

但是,我似乎找不到在创建命名空间时添加任何注释的方法,除非我使用文件。

所以,我需要一种方法来使用 create 命令或在使用 helm 安装软件包时将此注释添加到命名空间?

谢谢,

我认为有几种方法可以做到这一点。这完全取决于您要实现的目标以及您希望如何管理底层基础架构。

我假设您想自动安装 helm charts。如果您打算使用 kubectl create namespace 创建命名空间,那么您可以使用 kubectl annotate <created-namespace> "linkerd.io/inject=enabled".

进行跟进

或者,您可以使用 Linkerd CLI 并使用提供的注入命令——此处的工作流程将涉及 kubectllinkerd 命令的组合,所以我不确定这是你要找的东西。尽管如此,您还是可以执行类似 kubectl create namespace <my-namespace> -o yaml | linkerd inject - | kubectl apply -f -.

的操作

最后但并非最不重要的一点是,如果您可以使用 kubectl create namespace 那么您也许可以将命名空间清单直接通过管道传输到 kubectl 并收工?您可以使用类似于以下代码段的内容:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Namespace
metadata:
  name: foo
  annotations:
    linkerd.io/inject: enabled
EOF