Istio 1.0 部署
原文链接:Istio 1.0 部署
北京时间 2018 年 8 月 1 日(建军节)凌晨 0 点,Istio 宣布推出 1.0 正式版本,并表示已可用于生产环境。这距离最初的 0.1 版本发布已过去一年多的时间。这个项目的组件相对比较复杂,原有的一些选项是靠 ConfigMap 以及 istioctl 分别调整的,现在通过重新设计的 Helm Chart
,安装选项用 values.yml
或者 helm 命令行的方式来进行集中管理了。
在安装 Istio 之前要确保 Kubernetes 集群(仅支持 v1.9
及以后版本)已部署并配置好本地的 kubectl 客户端。
1. 下载 Istio
$ wget https://github.com/istio/istio/releases/download/1.0.0/istio-1.0.0-linux.tar.gz
$ tar zxf istio-1.0.0-linux.tar.gz
$ cp istio-1.0.0/bin/istioctl /usr/local/bin/
复制代码
2. 使用 Helm 部署 Istio 服务
克隆 Istio 仓库:
$ git clone https://github.com/istio/istio.git
$ cd istio
复制代码
安装包内的 Helm 目录中包含了 Istio 的 Chart,官方提供了两种方法:
- 用 Helm 生成
istio.yaml
,然后自行安装。 - 用
Tiller
直接安装。
很明显,两种方法并没有什么本质区别,这里我们采用第一种方法来部署。
$ helm template install/kubernetes/helm/istio --name istio --namespace istio-system --set sidecarInjectorWebhook.enabled=true --set ingress.service.type=NodePort --set gateways.istio-ingressgateway.type=NodePort --set gateways.istio-egressgateway.type=NodePort --set tracing.enabled=true --set servicegraph.enabled=true --set prometheus.enabled=true --set tracing.jaeger.enabled=true --set grafana.enabled=true > istio.yaml$ kubectl create namespace istio-system
$ kubectl create -f istio.yaml
复制代码
这里说的是使用 install/kubernetes/helm/istio
目录中的 Chart 进行渲染,生成的内容保存到 ./istio.yaml
文件之中。将 sidecarInjectorWebhook.enabled
设置为 true,从而使自动注入属性生效。
部署完成后,可以检查 isotio-system
namespace 中的服务是否正常运行:
$ kubectl -n istio-system get pods -o go-template='{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'istio-citadel-f5779fbbb-brbxd
istio-cleanup-secrets-jjqg5
istio-egressgateway-6c5cc7dd86-l2c82
istio-galley-6bf8f6f4b7-twvzl
istio-ingressgateway-fbfdfc5c7-fg9xh
istio-pilot-85df58955d-g5bfh
istio-policy-74c48c8ccb-wd6h6
istio-sidecar-injector-cf5999cf8-h9smx
istio-statsd-prom-bridge-55965ff9c8-2hmzf
istio-telemetry-cb49594cc-gfd84
istio-tracing-77f9f94b98-9xvzs
prometheus-7456f56c96-xcdh4
servicegraph-5b8d7b4d5-lzhth
复制代码
- 过去的 istio-ca 现已更名
istio-citadel
。 istio-cleanup-secrets
是一个 job,用于清理过去的 Istio 遗留下来的 CA 部署(包括 sa、deploy 以及 svc 三个对象)。egressgateway
、ingress
以及ingressgateway
,可以看出边缘部分的变动很大,以后会另行发文。
3. Prometheus、Grafana、Servicegraph 和 Jaeger
等所有 Pod 启动后,可以通过 NodePort、Ingress 或者 kubectl proxy 来访问这些服务。比如可以通过 Ingress
来访问服务。
首先为 Prometheus、Grafana、Servicegraph 和 Jaeger 服务创建 Ingress:
$ cat ingress.yaml---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: prometheus
namespace: istio-system
spec:
rules:
- host: prometheus.istio.io
http:
paths:
- path: /
backend:
serviceName: prometheus
servicePort: 9090
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: grafana
namespace: istio-system
spec:
rules:
- host: grafana.istio.io
http:
paths:
- path: /
backend:
serviceName: grafana
servicePort: 3000
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: servicegraph
namespace: istio-system
spec:
rules:
- host: servicegraph.istio.io
http:
paths:
- path: /
backend:
serviceName: servicegraph
servicePort: 8088
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: tracing
namespace: istio-system
spec:
rules:
- host: tracing.istio.io
http:
paths:
- path: /
backend:
serviceName: tracing
servicePort: 80
复制代码
$ kubectl create -f ingress.yaml
复制代码
然后在你的本地电脑上添加四条 hosts
:
$Ingree_host prometheus.istio.io
$Ingree_host grafana.istio.io
$Ingree_host servicegraph.istio.io
$Ingree_host tracing.istio.io
复制代码
将 $Ingree_host
替换为 Ingress Controller 运行节点的 IP。
通过 http://grafana.istio.io
访问 Grafana 服务:
通过 http://servicegraph.istio.io
访问 ServiceGraph 服务,展示服务之间调用关系图。
http://servicegraph.istio.io/force/forcegraph.html
: As explored above, this is an interactive D3.js visualization.
http://servicegraph.istio.io/dotviz
: is a static Graphviz visualization.
http://servicegraph.istio.io/dotgraph
: provides a DOT serialization.http://servicegraph.istio.io/d3graph
: provides a JSON serialization for D3 visualization.http://servicegraph.istio.io/graph
: provides a generic JSON serialization.
通过 http://tracing.istio.io/
访问 Jaeger 跟踪页面:
通过 http://prometheus.istio.io/
访问 Prometheus 页面:
如果你已经部署了 Prometheus-operator
,可以不必部署 Grafana,直接将 addons/grafana/dashboards
目录下的 Dashboard 模板复制出来放到 Prometheus-operator 的 Grafana 上,然后添加 istio-system 命名空间中的 Prometheus 数据源就可以监控 Istio 了。
4. Mesh Expansion
Istio 还支持管理非 Kubernetes 管理的应用。此时,需要在应用所在的 VM 或者物理中部署 Istio,具体步骤请参考 Mesh Expansion
部署好后,就可以向 Istio 注册应用,如:
# istioctl register servicename machine-ip portname:port
$ istioctl -n onprem register mysql 1.2.3.4 3306
$ istioctl -n onprem register svc1 1.2.3.4 http:7000
复制代码
5. 参考
- Istio 0.8 的 Helm Chart 解析
转载于:https://juejin.im/post/5bf831c66fb9a04a102eefc6
Istio 1.0 部署相关推荐
- 阿里巴巴硅谷 Istio 专家解读Istio 1.0 发布
来源:阿里巴巴中间件 Istio 1.0 于北京时间8月1日0点正式发布!虽然比原本官网公布的发布时间晚了9个小时,但这并未影响到Istio在社区的热度. Istio 是 Service Mesh概念 ...
- Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法
Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法 参考文章: (1)Win2008上.NET4.0部署出错HTTP 错误 5 ...
- 全网最新 Skywalking 6.1.0部署进k8s 包含springcloud测试用例
skywalking-kubernetes 该项目可以迅速将skywalking 6.1.0部署进kubernetes(k8s) 包含ui oap es模块和完整的springcloud测试用例 此外 ...
- Debian 和Ubuntu Mono 3.0 部署包
Mono 3.0 刚发布,Debian 的Mono打包工作也开始了, 这篇博客<Mono 3.0 Preview Packages for Debian and Ubuntu >讲述了De ...
- Win7 IIS7 ASP.NET MVC3.0 部署问题
Win7 IIS7 ASP.NET MVC3.0 部署问题 1.应用程序池采用经典模式,framework4.0.可能存在权限问题,解决办法:在高级设置的标识设为LocalSystem. 一般mvc都 ...
- Zabbix 3.0 部署监控 [三]
Zabbix 3.0 部署监控 [三] zabbix 时间:2016年9月22日 笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们 ...
- Ubuntu12.04 Jdk1.7 Tomct7.0部署配置
Ubuntu12.04 Jdk1.7 Tomct7.0部署配置 jdk1.7 下载 http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7 ...
- Zabbix 3.0 部署监控 [二]
原文出自 http://www.abcdocker.com/abcdocker/1453 Zabbix 3.0 部署监控 [二] zabbix 一.添加监控主机及设置 1.创建主机 Agent可以干 ...
- KubeEdge 1.3.0 部署
本文介绍了如何在两台 ubuntu 16.04 64 bit 双核 CPU 虚拟机上从源码开始部署 KubeEdge 1.3.0 集群的过程,云端 Kubernetes 版本为 1.17.3,Gola ...
最新文章
- sqlserver清除日志
- form表单提交,Servlet接收并读取Excel文件
- MySQL服务启动脚本
- 【php7扩展开发三】ini配置
- lamba统计最大值,最小值,平均值,总和,个数
- PDF签名系列(1):PDF签名机制的漏洞分析
- JavaWeb应用配置文件安全解决方案
- UE4移动平台上基于物理的着色
- spark sql 查看分区_Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件
- php删除英文链接词,英语写作词汇大全:转折连接词
- iphone双重认证关闭不了怎么办_iPhone如何关闭Apple ID的双重认证
- 数据结构:顺序表的就地逆置
- 招商银行信用卡中心大数据
- MySQL---建表添加语句
- 文本样式设置/盒子模型学习笔记
- 使用C#连接SQL server数据库
- 【漏洞报送】泛微E-Office存在SQL注入漏洞(CNVD-2022-43246)
- mtk手机root,mTk手机安卓系统开发
- YzmCMS采集之如何利于Python爬虫采集全网文章
- Win2008、Win2012和Win2016操作系统设置多用户同时远程。很方便
热门文章
- sql除外语句_SQL除外
- java8foreach_Java forEach – Java 8 forEach
- python 日期格式打印_Python打印格式
- 移除Win10资源管理器中OneDrive图标
- 开课吧Java课堂:是什么是比较函数?
- 开课吧课程:什么是TreeSet类
- Spark笔记整理(一):spark单机安装部署、分布式集群与HA安装部署+spark源码编译...
- 常用算法2 - 广度优先搜索 深度优先搜索 (python实现)
- RHEL/Centos7下使用EPEL和REMI源
- Google Guava之--cache