在Mac上安装Istio并使用,有丰富的监控Kiali、Grafana、Jaeger
我最新最全的文章都在南瓜慢说 www.pkslow.com,文章更新也只在官网,欢迎大家来喝茶~~
1 简介
之前在文章《服务网格Istio入门-详细记录Kubernetes安装Istio并使用》已经详细地介绍了如何在Linux系统上在Kubernetes安装并使用Istio,但毕竟服务器是要钱的,几毛钱一小时,是我格局小了,但我还是想在Mac上安装使用。
2 安装Istio
我的电脑已经安装了Kubernetes了,可以参考《Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂》,现在直接安装Istio。
下载对应的安装包:
$ curl -L https://istio.io/downloadIstio | sh -
目录如下:
把bin目录下的istioctl添加到PATH。
$ export ISTIO_HOME=/Users/larry/Software/istio/istio-1.10.3
$ export PATH=$PATH:$ISTIO_HOME/bin
检测是否可以执行安装:
$ istioctl x precheck
No issues found when checking the cluster. Istio is safe to install or upgrade!
没有问题,就可以开始安装了:
$ istioctl install
因为要下载镜像,所以需要花一点时间,成功安装如下:
可以做一些简单的检查:
# 检查istio-system命令空间下的Pod
$ kubectl get pod -n istio-system
# 检查资源
$ kubectl api-resources | grep istio
结果如下:
3 使用istio
3.1 注入代理
Istio默认不会给其它Pod注入代理,需要给Namespace添加对应的标签才可以:
$ kubectl label namespace default istio-injection=enabled
但对于现有的Pod,也还是不会注入的,没关系,我们来使用官方提供的示例,新创建一些资源:
$ kubectl apply -f istio-1.10.3/samples/bookinfo/platform/kube/bookinfo.yaml
因为是第一次启动,要下载镜像,所以要花比较长的时间,如下面命令观察:
$ watch 'kubectl get pod -l app -l version'
几分钟后,终于搞定:
可以看到每个Pod都有两个Container,一个是应用的,一个是代理的。
3.2 安装监控插件
为了更好地可视化地监控应用,我们来安装一些插件:
$ kubectl apply -f istio-1.10.3/samples/addons
同样的等待:
$ watch 'kubectl get pod -n istio-system'
大概5分钟左右,成功启动了:
可以看到许多很常见的监控软件:Grafana、Prometheus等。
3.3 在外部访问资源
Istio给我们提供了Gateway的功能,我们给应用创建一个Gateway对外暴露服务:
$ kubectl apply -f istio-1.10.3/samples/bookinfo/networking/bookinfo-gateway.yamlgateway.networking.istio.io/bookinfo-gateway createdvirtualservice.networking.istio.io/bookinfo created$ kubectl get gatewayNAME AGEbookinfo-gateway 17s$ kubectl get virtualservices.networking.istio.ioNAME GATEWAYS HOSTS AGEbookinfo ["bookinfo-gateway"] ["*"] 29s
因为我很早之前就安装了Ingress Controller(Kubernetes用Helm安装Ingress并踩一下使用的坑),为了防止冲突,把原来的给删掉:
# 安装命令,不执行# helm install azure-ingress azure/nginx-ingress# 删除Ingress Controllerhelm delete azure-ingress
然后就可以正常访问应用了:http://localhost/productpage
我们可以多点击几次,多刷新几次,可以多产生一些流量,以便后续查看监控。
3.4 查看监控
同样,我们也需要在外部访问监控的内容,访问kiali如下,会直接帮我们打开浏览器:
$ istioctl dashboard kialihttp://localhost:20001/kiali
可以查看完整清晰的流量走向图,知道有什么组件,它们之间的调用关系是怎样的:
查看特定的组件productpage,会以它为中心显示与它直接关联的应用和关系:
当然,也可以查看Grafana:
$ istioctl dashboard grafana
界面如下:
查看Jaeger:
$ istioctl dashboard jaeger
界面如下:
查看Prometheus:
$ istioctl dashboard prometheus
界面如下:
总结
Istio给我们提供了很多有用的特性,光监控方面就非常丰富,更多细节我们后续再讨论吧。
在Mac上安装Istio并使用,有丰富的监控Kiali、Grafana、Jaeger的更多相关文章
- 在Mac上安装IntelliJ IDEA
这篇文章旨在介绍如何在Mac系统上安装IntelliJ IDEA,至于IntelliJ IDEA的介绍和使用方法,大家另行查阅,本篇的文章不再详细阐述. 简短解说,IntelliJ IDEA是可以用来 ...
- Mac上安装brew
用过ubuntu系统的都知道,上面有一个命令apt-get 很方便可以快速的安装很多软件 特别lamp环境 都是一键安装. 在mac上也有类似的命令 brew brew用法可以访问官网地址 http ...
- mac 上安装服务,查看服务,重启和关闭
首先了解下的Mac的 homebrew ,官网:https://brew.sh/index_zh-cn.html 简单的说: Homebrew 能干什么? 答:使用 Homebrew 安装 Apple ...
- Mac上安装brew 包管理工具
Mac 上的包管理工具对于开发者来说是一件非常方便的工具,能够有效的对包进行管理. 所以这篇博客就来简单的讲一下brew 的安装和一些基础命令. brew 全称叫做Homebrew . 1. 首先来说 ...
- Mac上安装Charles进行抓包全流程设置
安装 -- 官网下载最新版的Charles版本,按照提示安装即可 破解 -- https://blog.csdn.net/qq_25821067/article/details/79848589. M ...
- 【mac上安装&配置&使用git】
转自:https://www.jianshu.com/p/7edb6b838a2e 目录 安装git 创建ssh key.配置git 提交本地项目到GitHub 一.安装Git MAC 上安装Git主 ...
- Mac上安装PHP、Apache、MySQL
Mac自带php5.6版本,要升级到php7.3 步骤如下 1,brew 安装php ,如果没有安装,访问https://brew.sh/index_zh-cn安装在终端输入以下内容,不用指定安装ph ...
- Mac上安装第三方应用显示包资源破坏解决办法
Mac上安装第三方应用显示包资源破坏解决办法 步骤1:Spotlight搜索(快捷键:command+空格或右上角搜索的符号):搜索 “终端”步骤2:直接复制粘贴 sudo spctl --maste ...
- 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装
一.mac上安装docker 1.下载 通过这个链接下载:https://download.docker.com/mac/stable/Docker.dmg 2.安装 将 Moby 的鲸鱼图标拖拽到 ...
随机推荐
- Kubernetes在生产环境中的一些讨论
pod是所有一切资源的中心,毫无疑问是Kubernetes中最重要的资源.毕竟, 每个应用都运行在pod中.为了确保知道如何开发能充分利用应用所在环境资源的应用,最后再从应用的角度来仔细看一下pod. ...
- 27、异常处理(except)
27.1.什么是异常: 1.异常介绍: 异常就是程序运行时发生错误的信号,在程序出错的时候,则会产生一个异常,若程序没有处理它,则会抛出该异常, 程序的运行也会随之终止,在python中,错误触发的异 ...
- 【IllegalArgumentException】: object is not an instance of declaring class
java.lang.IllegalArgumentException: object is not an instance of declaring class 日前在调试动态代理的例子中,出现以上报 ...
- Mysql:mysql5.7长时间不连接失效问题
问题 mysql5数据库连接超时问题:待机一晚上后,第二天早上第一次登录总是失败. 查看日志发现如下错误: "com.mysql.jdbc.exceptions.jdbc4.Communic ...
- 第三章 - CPU缓存结构和java内存模型
CPU 缓存结构原理 CPU 缓存结构 查看 cpu 缓存 速度比较 查看 cpu 缓存行 cpu 拿到的内存地址格式是这样的 CPU 缓存读 根据低位,计算在缓存中的索引 判断是否有效 0 去内存读 ...
- Java实验项目三——面向对象定义职工类和日期类
Program:按照如下要求设计类: (1)设计一个日期类,用于记录年.月.日,并提供对日期处理的常用方法. (2)设计一个职工类,该职工类至少具有下面的属性:职工号,姓名,性别,生日,工作部门,参加 ...
- 递推算法,AI衍生
引言 最近在刷leetcode算法题的时候,51题很有意思: 题目是这样的: n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击.给你一个整数 n ,返回 ...
- QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系
摘要 我们使用的标准 C++,其设计的对象模型虽然已经提供了非常高效的 RTTI 支持,但是在某些方面还是不够灵活.比如在 GUI 编程方面,既需要高效的运行效率也需要强大的灵活性,诸如删除某窗口时可 ...
- 小哈学Python ----XML
XML XML是实现不同语言或程序之间进行数据交换的协议,XML文件格式如下: <data> <country name="Liechtenstein"> ...
- Git submodule 拉取子模块
$ git clone https://code.Xcode.com.client.git Cloning into 'vipkid-pc-client'... Username for 'https ...