istio网格可视化kiali部署
前提:
已经安装了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
问题整理:
暂无