Loading
close

Kiali流量监控拓扑图中找不到服务

time 更新时间:2024-02-05 14:41:14

描述

Kiali页面流量拓扑图未展示用户部署的服务。

解决方案

步骤一:确认命名空间是否选择正确

./images/nsktt_fq_01.png
确保选择服务部署对应的命名空间。

步骤二:确认服务是否有网络流量

确认服务有发起或者接收到请求,可结合pod日志进行查看:
kubectl logs <服务对应pod名称> -n <服务所在命名空间>

步骤三:确认命名空间sidecar注入标签

kubectl get namespace <服务所在命名空间> -oyaml

apiVersion: v1
kind: Namespace
metadata:
  ...
  labels:
    kubernetes.io/metadata.name: <服务所在命名空间>
    istio-injection: enabled
  name: <服务所在命名空间>
... 

如果命名空间不存在标签istio-injection=enabled,执行以下命令给命名空间打上标签。
kubectl label namespace <服务所在命名空间> istio-injection=enabled
或者如果只希望单独为服务添加注入标签开启sidecar注入,请参考步骤四中的场景2。

步骤四:确认sidecar注入相关的工作负载标签和注解

场景一:所在命名空间已有sidecar注入标签

确认pod模板没有禁止sidecar注入的标签或者注解(注解方式不推荐使用)
kubectl get deploy <服务对应的deployment名称> -n <服务所在命名空间>

...
spec:
  ...
  template:
    metadata:
      ...
      labels:
        sidecar.istio.io/inject: false 
        ...
      annotations:
        sidecar.istio.io/inject: false #注解方式不推荐使用,与标签二选一配置即可
    spec:
      ...
...

如标签或者注解为sidecar.istio.io/inject: false,编辑deployment,删除pod模板中的sidecar.istio.io/inject标签或者注解即可。
kubectl edit deploy <服务对应的deployment名称> -n <服务所在命名空间>

场景二:所在命名空间没有sidecar注入标签,希望单独为服务添加注入标签

kubectl edit deploy <服务对应的deployment名称> -n <服务所在命名空间>
编辑deployment中的pod模板,为pod添加注入标签

...
spec:
  ...
  template:
    metadata:
      ...
      labels:
        sidecar.istio.io/inject: true #推荐用法
        ...
      annotations:
        sidecar.istio.io/inject: true #注解方式不推荐使用,与标签二选一配置即可
    spec:
      ...
...

保存退出,等待服务滚动升级完成。

步骤五:标签配置正确的情况,检查pod中是否有sidecar

如果前面步骤检查都没问题,但Kiali页面仍未展示相关的流量拓扑,需要检查sidecar实际是否注入。

kubectl get pod <服务对应的pod> -o jsonpath={.spec.containers[*].name} -n <服务所在命名空间>

<服务对应的容器> ... istio-proxy

输出的容器名称有istio-proxy即已经注入了sidecar
如果istio-proxy容器不存在,可以选择对相应的deployment进行滚动升级,sidecar会自动注入。
kubectl edit deploy <服务对应的deployment名称> -n <服务所在命名空间>
编辑服务对应的deployment,推荐通过添加自定义pod模板标签的方式进行滚动升级。

...
spec:
  ...
  template:
    metadata:
      ...
      labels:
        try-inject: '12345678'   #无特殊要求,可自定义
        ...
    spec:
      ...
...

等待滚动升级完成。

步骤六:完成所有检查后,打开Kiali页面确认流量拓扑正确展示

需要注意选择查询的时间长度以及刷新周期。也可点击刷新按钮手动刷新流量拓扑。
./images/nsktt_fq_02.png

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品