首页 资讯 社群 我的社区 搜索

istio网格可视化kiali部署

LM123
2019-05-30 17:40:26

前提:

已经安装了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 --这里需要FQ --还可以使用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

用户评论