前提:
已經安裝了kubernetes
已經熟悉如何安裝istio
熟悉kubernetes 和 istio 基本使用
注意文章紅色加粗字體
能上網
tip
kubernetes 安裝:centos7 使用kubeadm 快速部署 kubernetes 國內源
istio安裝:kubernetes + istio進行流量管理
為什么要安裝kiali? kiali能干些什么?
參考文檔寫的比我詳細,這里只是說一下自己此時此刻使用時的感受的理解
為什么要安裝kiali
開箱即用的服務管理工具,以及服務管理和跟蹤
kiali能干些什么
1、服務的拓撲圖
2、結合 grafana 直接管理virtualservice配置
3、服務的健康檢查和顯示
安裝環境:
Darwin bogon 17.7.0 Darwin Kernel Version 17.7.0: Wed Feb 27 00:43:23 PST 2019; root:xnu-4570.71.35~1/RELEASE_X86_64 x86_64
部署kiali:
1、安裝kubernetes
2、安裝istio
3、安裝helm --這里需要翻牆 --還可以使用helm提供的一鍵安裝腳本不過腳本也是要下載壓縮包的
下載 Helm wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz # 解壓 Helm tar -zxvf helm-v2.9.1-linux-amd64.tar.gz # 復制客戶端執行文件到 bin 目錄下 cp linux-amd64/helm /usr/local/bin/
4、在istio命名空間 istio-system 里面創建一個secret 作為kiali認證憑據
USERNAME=$(echo -n 'admin' | base64) PASSPHRASE=$(echo -n 'admin' | base64) NAMESPACE=istio-system kubectl create namespace $NAMESPACE cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Secret metadata: name: kiali namespace: $NAMESPACE labels: app: kiali type: Opaque data: username: $USERNAME passphrase: $PASSPHRASE EOF
5、使用helm安裝 kiali
# 使用阿里雲鏡像安裝並把默認倉庫設置為阿里雲上的鏡像倉庫 helm init --upgrade --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts #cd 進入到istio 安裝文件夾 cd /data/software/istio-1.1.5 #執行下面的兩個命令,, 注意:最后生成的 istio.yaml 文件位置, 我的是放在了 /data/software/vs-yaml 目錄下 helm template \ --set kiali.enabled=true \ --set "kiali.dashboard.jaegerURL=http://$(kubectl get svc tracing --namespace istio-system -o jsonpath='{.spec.clusterIP}'):80" \ --set "kiali.dashboard.grafanaURL=http://$(kubectl get svc grafana --namespace istio-system -o jsonpath='{.spec.clusterIP}'):3000" \ install/kubernetes/helm/istio \ --name istio --namespace istio-system > /data/software/vs-yaml/istio.yaml #部署 yaml文件 kubectl apply -f /data/software/vs-yaml/istio.yaml
6、檢查kiali pod狀態
[root@k8s-master software]# kubectl get pod -n istio-system |grep kiali kiali-d4d886dd7-vflv5 1/1 Running 0 3d
7、本地測試
先查看 kiali 對應的service 已經使用的端口 ,然后通過curl 請求 svcIp:prot 訪問 返回下面內容表示通了
[root@k8s-master istio-1.1.5]# kubectl get svc -n istio-system kiali -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR kiali ClusterIP 10.109.8.214 <none> 20001/TCP 3d app=kiali [root@k8s-master istio-1.1.5]# curl 10.109.8.214:20001/kiali/console <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><base href="/kiali/"/><script type="text/javascript" src="./env.js"></script><link rel="manifest" href="./manifest.json"/><link rel="shortcut icon" href="./kiali_icon_lightbkg_16px.png"/><title>Kiali Console</title><link href="./static/css/main.57535d24.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script type="text/javascript" src="./static/js/main.f15fe5d6.js"></script></body></html>[root@k8s-master istio-1.1.5]#
8、部署virtualservice指向kiali 的service
gateway 配置文件我就不貼了,,這里放一下 virtualservice 吧
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: kiali namespace: default spec: gateways: - qingfeng-gateway hosts: - kiali.selfservice.com http: - match: - uri: prefix: / route: - destination: host: kiali.istio-system.svc.cluster.local port: number: 20001
驗證結果:
1、訪問再部署步驟中 virtualservice配置的hosts
2、kiali用戶名密碼都是 admin
3、界面
參考資料:
istio官網安裝kiali文檔:https://istio.io/zh/docs/tasks/telemetry/kiali/
kiali介紹:https://www.colabug.com/4923057.html
helm介紹:https://www.hi-linux.com/posts/21466.html
問題整理:
暫無