0

我无法绕过,如何将 Linkerd sidecar 注入 docker yaml 文件并将其保存为不同的文件名。老实说,我试图通过linkerd docs但无法真正理解。以下命令无助于我理解:-

# Inject all the deployments in the default namespace.
kubectl get deploy -o yaml | linkerd inject - | kubectl apply -f -

# Injecting a file from a remote URL
linkerd inject http://url.to/yml | kubectl apply -f -

# Inject all the resources inside a folder and its sub-folders.
linkerd inject <folder> | kubectl apply -f -

我想像下面的命令一样将 linkerd sidecar 注入到 docker yaml 中,这有助于我将 istio sidecar 注入到 docker yaml 文件中并将其保存在不同的文件名中:-

istioctl kube-inject -f deployment.yaml -o deployment-injected.yaml
4

1 回答 1

1

linkerd inject修改资源以包含linkerd.io/inject: enabled注释。如果要存储此修改后的版本,可以使用简单的 shell 重定向,例如:

:; linkerd inject deploy.yml >deploy-annotated.yml

namespace "myns" injected
service "mysvc" skipped
deployment "mydeploy" injected
:; diff deploy.yml deploy-annotated.yml
17a18,19
>   annotations:
>     linkerd.io/inject: enabled
72a75,76
>       annotations:
>         linkerd.io/inject: enabled

这使用 Linkerd 的代理注入器准入控制器在 pod 创建时添加边车容器。

或者,您可以“手动”在本地注入代理,尽管通常不鼓励这样做,因为它会阻止您的应用程序自动获取新的代理版本和配置。此外,生成的配置要大得多:

:; linkerd inject --manual deploy.yml >deploy-manual.yml

namespace "myns" injected
service "mysvc" skipped
deployment "mydeploy" injected
:; du -sh deploy.yml deploy-manual.yml
4.0K    deploy.yml
8.0K    deploy-manual.yml
于 2020-04-30T23:38:00.827 回答