我最新最全的文章都在南瓜慢说 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的更多相关文章

  1. 在Mac上安装IntelliJ IDEA

    这篇文章旨在介绍如何在Mac系统上安装IntelliJ IDEA,至于IntelliJ IDEA的介绍和使用方法,大家另行查阅,本篇的文章不再详细阐述. 简短解说,IntelliJ IDEA是可以用来 ...

  2. Mac上安装brew

    用过ubuntu系统的都知道,上面有一个命令apt-get 很方便可以快速的安装很多软件 特别lamp环境 都是一键安装. 在mac上也有类似的命令 brew brew用法可以访问官网地址  http ...

  3. mac 上安装服务,查看服务,重启和关闭

    首先了解下的Mac的 homebrew ,官网:https://brew.sh/index_zh-cn.html 简单的说: Homebrew 能干什么? 答:使用 Homebrew 安装 Apple ...

  4. Mac上安装brew 包管理工具

    Mac 上的包管理工具对于开发者来说是一件非常方便的工具,能够有效的对包进行管理. 所以这篇博客就来简单的讲一下brew 的安装和一些基础命令. brew 全称叫做Homebrew . 1. 首先来说 ...

  5. Mac上安装Charles进行抓包全流程设置

    安装 -- 官网下载最新版的Charles版本,按照提示安装即可 破解 -- https://blog.csdn.net/qq_25821067/article/details/79848589. M ...

  6. 【mac上安装&配置&使用git】

    转自:https://www.jianshu.com/p/7edb6b838a2e 目录 安装git 创建ssh key.配置git 提交本地项目到GitHub 一.安装Git MAC 上安装Git主 ...

  7. Mac上安装PHP、Apache、MySQL

    Mac自带php5.6版本,要升级到php7.3 步骤如下 1,brew 安装php ,如果没有安装,访问https://brew.sh/index_zh-cn安装在终端输入以下内容,不用指定安装ph ...

  8. Mac上安装第三方应用显示包资源破坏解决办法

    Mac上安装第三方应用显示包资源破坏解决办法 步骤1:Spotlight搜索(快捷键:command+空格或右上角搜索的符号):搜索 “终端”步骤2:直接复制粘贴 sudo spctl --maste ...

  9. 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装

    一.mac上安装docker 1.下载 通过这个链接下载:https://download.docker.com/mac/stable/Docker.dmg 2.安装 将 Moby 的鲸鱼图标拖拽到  ...

随机推荐

  1. Pytest学习笔记6-自定义标记mark

    前言 在pytest中,我们可以使用mark进行用例的自定义标记,通过不同的标记实现不同的运行策略 比如我们可以标记哪些用例是生产环境执行的,哪些用例是测试环境执行的,在运行代码的时候指定对应的mar ...

  2. Ubuntu安装部署Kafka

    Ubuntu安装部署Kafka 环境: Ubuntu 18.04.4 LTS ,JDK1.8,kafka_2.12-2.3.1 确保已经安装了JDK,JDK安装过程不再赘述.可参考文章xxxx 一.下 ...

  3. Kubernetes的认证机制

    1.了解认证机制 API服务器可以配置一到多个认证的插件(授权插件同样也可以).API服务器接收到的请求会经过一个认证插件的列表,列表中的每个插件都可以检查这个请求和尝试确定谁在发送这个请求.列表中的 ...

  4. Elasticsearch中的Term查询和全文查询

    目录 前言 Term 查询 exists 查询 fuzzy 查询 ids 查询 prefix 查询 range 查询 regexp 查询 term 查询 terms 查询 terms_set 查询 t ...

  5. 12、elk的使用(2)

    12.8.收集日志: 因为logstash安装在从节点上,所以这里收集的主要是从节点上的服务日志: 1.收集系统日志: (1)配置文件: vim /etc/logstash/conf.d/system ...

  6. 树莓派4B-SPI读写flash-FM25CL16B(同时支持FM25CL64等其它系列Flash)

    1.树莓派SPI介绍 4B的引脚如下图所示: 其中Pin19.21.23是SPI0,接口定义如下所示: 时钟(SPI CLK, SCLK) 主机输出.从机输入(MOSI) 主机输入.从机输出(MISO ...

  7. Java:TreeMap中LinkedHashMap和Map中HashMap的区别

    一般情况下,我们用的最多的是HashMap,在Map 中插入.删除和定位元素,HashMap 是最好的选择. 但如果您要bai按自然顺序或自定义顺序遍历键,那么TreeMap会更好.如果需要输出的顺序 ...

  8. Django基础-02篇 Models的属性与字段

    1.models字段类型 AutoField():一个IntegerField,根据可用ID自动递增.如果没指定主键,就创建它自动设置为主键. IntegerField():一个整数: FloatFi ...

  9. [刘阳Java]_MySQL数据优化总结_查询备忘录

    数据库优化是在后端开发中必备技能,今天写一篇MySQL数据优化的总结,供大家看看 一.MySQL数据库优化分类 我们通过一个图片形式来看看数据优化一些策略问题 不难看出,优化有两条路可以选择:硬件与技 ...

  10. 深入理解javascript按值传递与按引用传递

    https://segmentfault.com/a/1190000012829900