首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >istio kiali 内部介绍

istio kiali 内部介绍

作者头像
py3study
发布2021-01-26 14:57:12
发布2021-01-26 14:57:12
1.5K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

一、kiali 组件分析

使用如下命令查看 kiali pod 详情:

代码语言:javascript
代码运行次数:0
运行
复制
kubectl edit pod -n istio-system $(kubectl get pods -n istio-system | grep -i kiali | awk '{print $1}')

 kiali pod 内只有一个容器,名称为 kiali。该容器在启动的过程中会运行容器内 kiali 进程,该进程会加载 /kiali-configuration/config.yaml 配置文件,该 config.yaml 文件定义了 kiali 进程运行时行为。pod 部分详情如下:

代码语言:javascript
代码运行次数:0
运行
复制
spec:
  containers:
  - command:
    - /opt/kiali/kiali
    - -config
    - /kiali-configuration/config.yaml
    - -v
    - "3"

kiali pod 内 /kiali-configuration/config.yaml 配置文件是通过挂载 configmap 获取到的,如下:

代码语言:javascript
代码运行次数:0
运行
复制
    volumeMounts:
    - mountPath: /kiali-configuration
      name: kiali-configuration

configmap 信息如下:

代码语言:javascript
代码运行次数:0
运行
复制
  volumes:
  - configMap:
      defaultMode: 420
      name: kiali
    name: kiali-configuration

可以通过语句查看 kiali configmap 内容:

代码语言:javascript
代码运行次数:0
运行
复制
kubectl edit configmap -n istio-system kiali

kiali configmap 部分内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: v1
data:
  config.yaml: |
    auth:
      openid: {}
...
kind: ConfigMap
metadata:
  annotations:
...

由上面可知,configmap 最终会以 config.yaml 文件的形式挂载到 kiali pod 中的 /kiali-configuration 目录下。

查看pod

代码语言:javascript
代码运行次数:0
运行
复制
[root@k8s-master ~]# kubectl get pods -n istio-system |grep kiali
kiali-667b888c56-8h7cp                  1/1     Running   1          3h26m

进入 kiali pod 查看

代码语言:javascript
代码运行次数:0
运行
复制
[root@k8s-master ~]# kubectl exec -it -n istio-system kiali-667b888c56-8h7cp /bin/bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
[kiali@kiali-667b888c56-8h7cp kiali]$ ls /kiali-configuration/
config.yaml
[kiali@kiali-667b888c56-8h7cp kiali]$

config.yaml 文件

config.yaml 内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
[kiali@kiali-667b888c56-8h7cp kiali]$ cat /kiali-configuration/config.yaml 
auth:
  openid: {}
  openshift:
    client_id_prefix: kiali
  strategy: anonymous
deployment:
  accessible_namespaces:
  - '**'
  additional_service_yaml: {}
  affinity:
    node: {}
    pod: {}
    pod_anti: {}
  custom_dashboards:
    excludes:
    - ""
    includes:
    - '*'
  image_name: quay.io/kiali/kiali
  image_pull_policy: Always
  image_pull_secrets: []
  image_version: v1.26
  ingress_enabled: false
  namespace: istio-system
  node_selector: {}
  override_ingress_yaml:
    metadata: {}
  pod_annotations:
    sidecar.istio.io/inject: "false"
  pod_labels: {}
  priority_class_name: ""
  replicas: 1
  resources: {}
  secret_name: kiali
  service_annotations: {}
  service_type: ""
  tolerations: []
  verbose_mode: "3"
  version_label: v1.26.0
  view_only_mode: false
external_services:
  custom_dashboards:
    enabled: true
identity:
  cert_file: ""
  private_key_file: ""
istio_namespace: istio-system
login_token:
  signing_key: CHANGEME
server:
  metrics_enabled: true
  metrics_port: 9090
  port: 20001
  web_root: /kiali

该配置文件定义了 kiali 行为,下面分别介绍如下:

首先声明 istio 自身以及 istio 插件在 k8s 哪个命名空间下:

代码语言:javascript
代码运行次数:0
运行
复制
# istio 自身
istio_namespace: istio-system

其次介绍 kiali 鉴权方式:

代码语言:javascript
代码运行次数:0
运行
复制
auth:
  openid: {}
  openshift:
    client_id_prefix: kiali
  strategy: anonymous  # 通过匿名用户登录

再次介绍 kiali deployment 可以访问的 k8s 命名空间:

代码语言:javascript
代码运行次数:0
运行
复制
deployment:
  accessible_namespaces:
  - '**'  # 没有限制,可访问任何命名空间

 接着介绍 kiali 对外服务的端口号和访问路径:

代码语言:javascript
代码运行次数:0
运行
复制
server:
  metrics_enabled: true
  metrics_port: 9090
  port: 20001
  web_root: /kiali

本文参考链接:

https://blog.51cto.com/14268033/2487237

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、kiali 组件分析
    • config.yaml 文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档