0

我想将 envoy 代理作为 sidecar 添加到现有的 Kubernetes 部署中。我尝试关注多篇博客文章,但这似乎没有帮助。我想知道是否有人做过,如果有,怎么做?

谢谢!

4

2 回答 2

1

您必须重新启动部署。

来自 istio手册

如果您使用手动 sidecar 注入,请使用以下命令

$ kubectl apply -f <(istioctl kube-inject -f bookinfo.yaml)

istioctl kube-inject 命令用于在创建部署之前手动修改 bookinfo.yaml 文件,如此所述。

如果您使用启用了自动 sidecar 注入的集群,请使用 istio-injection=enabled 标记默认命名空间

$ kubectl 标签命名空间默认 istio-injection=enabled

然后只需使用 kubectl 部署服务

$ kubectl apply -f bookinfo.yaml

于 2018-08-10T01:04:15.493 回答
1

补充一下李坤的回答,如果你的情况是 kubernetes 集群已经有很多服务在运行,那么将autoInjection策略设置为disabled默认会更安全,并让服务所有者明确设置它要使用 istio 侧车。

为此,您必须:

  • 设置 Istio(通过 helm 安装)helm 安装标志--global.proxy.autoInject=disabled --sidecarInjectorWebhook.enabled=true
  • 然后在您的命名空间中,设置kubectl label namespace bar istio-injection=enabled

--sidecarInjectorWebhook.enabled=truelabeling your namespace: 意味着 istio sidecar injector webhook 已为您的命名空间激活。但是,由于您指定了global.proxy.autoInject=disabled,它不会注入任何 pod。因此,服务所有者必须明确定义 pod 的注释(在您的部署 yaml 文件中),如下所示:

  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "true"

要检查您的 istio 的 sidecar 注入策略,

kubectl get cm istio-sidecar-injector -n istio-system -o yaml

看一下data.configvalue,它应该包含policy: disableor policy: enabled

参考: - https://istio.io/docs/setup/kubernetes/sidecar-injection/#policy - 亲自动手(我试过了)

于 2018-08-16T03:27:17.753 回答