istio kiali 內部介紹

2022-05-17 04:25:08 字數 3908 閱讀 8022

使用如下命令檢視 kiali pod 詳情:

kubectl edit pod -n istio-system $(kubectl get pods -n istio-system | grep -i kiali | awk

'')

kiali pod 內只有乙個容器,名稱為 kiali。該容器在啟動的過程中會執行容器內 kiali 程序,該程序會載入 /kiali-configuration/config.yaml 配置檔案,該 config.yaml 檔案定義了 kiali 程序執行時行為。pod 部分詳情如下:

spec:

containers:

-command:

- /opt/kiali/kiali

- -config

- /kiali-configuration/config.yaml

- -v

- "3"

kiali pod 內 /kiali-configuration/config.yaml 配置檔案是通過掛載 configmap 獲取到的,如下:

volumemounts:

- mountpath: /kiali-configuration

name: kiali-configuration

configmap 資訊如下:

volumes:  -

configmap:

defaultmode:

420name: kiali

name: kiali

-configuration

可以通過語句檢視 kiali configmap 內容:

kubectl edit configmap -n istio-system kiali
kiali configmap 部分內容如下:

apiversion: v1

data:

config.yaml: |auth:

openid: {}

...kind: configmap

metadata:

annotations:

...

由上面可知,configmap 最終會以 config.yaml 檔案的形式掛載到 kiali pod 中的 /kiali-configuration 目錄下。

檢視pod

[root@k8s-master ~]# kubectl get pods -n istio-system |grep

kiali

kiali-667b888c56-8h7cp 1/1 running 1 3h26m

進入 kiali pod 檢視

[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 內容如下:

[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.

26ingress_enabled:

false

namespace: istio-system

node_selector: {}

override_ingress_yaml:

metadata: {}

pod_annotations:

sidecar.istio.io/inject: "

false

"pod_labels: {}

priority_class_name:

""replicas:

1resources: {}

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

view code

該配置檔案定義了 kiali 行為,下面分別介紹如下:

首先宣告 istio 自身以及 istio 外掛程式在 k8s 哪個命名空間下:

# istio 自身

istio_namespace: istio-system

其次介紹 kiali 鑑權方式:

auth:

openid: {}

openshift:

client_id_prefix: kiali

strategy: anonymous # 通過匿名使用者登入

再次介紹 kiali deployment 可以訪問的 k8s 命名空間:

deployment:

accessible_namespaces:

- '**' # 沒有限制,可訪問任何命名空間

接著介紹 kiali 對外服務的埠號和訪問路徑:

server:

metrics_enabled:

true

metrics_port:

9090

port:

20001

web_root: /kiali

istio kiali 內部介紹

使用如下命令檢視 kiali pod 詳情 kubectl edit pod n istio system kubectl get pods n istio system grep i kiali awk kiali pod 內只有乙個容器,名稱為 kiali。該容器在啟動的過程中會執行容器內 ki...

istio kiali 親和性排程

在開始 kiali 親和性排程之前,先演示乙個簡單的例子介紹 pod 選擇排程到指定 node 使用命令檢視當前所有 k8s 節點 root k8s master kubectl get nodes name status roles age version k8s master ready mas...

內部類的介紹 匿名內部類

顧名思義 沒有名字的內部類,其實就是沒有類名的區域性內部類 一切特徵都與區域性內部類相同 這句話請記住 必須繼承乙個父類或者實現乙個介面 心得 為什麼介面不能直接new,直接例項化 其實我覺得是可以的,但是不建議樣做,為什麼呢,我們平常都是new介面的實現類,或者叫做子類把,因為介面的方法,在子類中...