关键词:
istio 安装前提:
kubernetes 1.7.3及以上,并开启RBAC
kubernetes 1.9 以上,支持自动安装sidecar injection
环境要求:
1、开启serviceaccount
2、网络组件
3、有dns
下载源码包:
cd /usr/local/src/
wget https://github.com/istio/istio/releases/download/0.7.1/istio-0.7.1-linux.tar.gz
tar -zxf istio-0.7.1-linux.tar.gz
安装
cd istio-0.7.1
cp bin/istioctl /usr/local/sbin/
kubectl apply -f install/kubernetes/istio.yaml
如果要启动tls
kubectl apply -f install/kubernetes/istio-auth.yaml
所有项目在namespace istio-system查看
image名称,可以提前下载
docker.io/istio/proxy:0.7.1
docker.io/istio/mixer:0.7.1
docker.io/istio/pilot:0.7.1
docker.io/istio/istio-ca:0.7.1
查看是否安装成功
kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingress LoadBalancer 10.111.150.31 <pending> 80:31691/TCP,443:30512/TCP 4h
istio-mixer ClusterIP 10.100.150.25 <none> 9091/TCP,15004/TCP,9093/TCP,9094/TCP,9102/TCP,9125/UDP,42422/TCP 4h
istio-pilot ClusterIP 10.108.203.112 <none> 15003/TCP,15005/TCP,15007/TCP,15010/TCP,8080/TCP,9093/TCP,443/TCP 4h
注: 如果集群不支持load banlance,EXTERNAL-IP 就是pending状态。可以设置NodePort或者端口转发实现访问
查看pod是否正常
kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-ca-5d495f8897-dvpg6 1/1 Running 0 4h
istio-ingress-5b5db76895-wqndc 1/1 Running 0 4h
istio-mixer-db9f8d47d-7gn9h 3/3 Running 0 4h
istio-pilot-84fcc8d4d7-lk9n2 2/2 Running 0 4h
如果是1.9版本,还有pod :istio-sidecar-injector-
部署应用
注:应用必须是 HTTP/1.1 or HTTP/2.0, 因为HTTP/1.0 是不支持的
如果是1.9版本,开启了pod(istio-sidecar-injector),可以直接使用kubectl create命令
kubectl label namespace <namespace> istio-injection=enabled
kubectl create -n <namespace> -f <your-app>.yaml
如果没安装Istio-sidecar-injector,必须手动添加kubectl create -f <(istioctl kube-inject -f <your-app>.yaml)
卸载
1、安装的时候 启用 sidecar injector
kubectl delete -f install/kubernetes/istio-sidecar-injector-with-ca-bundle.yaml
2、没有tls认证:
kubectl delete -f install/kubernetes/istio.yaml
3、有tls认证:
kubectl delete -f install/kubernetes/istio-auth.yaml
使用举例
这里以helloworld举例 目录位置istio-0.7.1/samples/helloworld
因为集群版本是1.8,没有内置injector,需要手动更改yaml
istioctl kube-inject -f helloworld.yaml -o helloworld-istio.yaml
使用新的yaml文件,部署服务kubectl create -f helloworld-istio.yaml
获取ingress url 和端口
export HELLOWORLD_URL=$(kubectl get po -l istio=ingress -o ‘jsonpath=.items[0].status.hostIP‘):$(kubectl get svc istio-ingress -o ‘jsonpath=.spec.ports[0].nodePort‘)
查看服务是否正常curl http://$HELLOWORLD_URL/hello
注: 因为集群没有loadbalance,只能用nodeport访问
获取node ipkubectl get po -l istio=ingress -n istio-system -o ‘jsonpath=.items[0].status.hostIP‘
获取node portkubectl get svc istio-ingress -n istio-system -o ‘jsonpath=.spec.ports[0].nodePort‘
现在访问curl http://$HELLOWORLD_URL/hello
发现规则是轮询到每个节点
route-rule编写
1、只能访问v1, route-rule-all-v1.yaml
apiVersion: config.istio.io/v1alpha2
kind: RouteRule
metadata:
name: helloword-default
spec:
destination:
name: helloworld
route:
- labels:
version: v1
2、只能访问v2, route-rule-all-v2.yaml
apiVersion: config.istio.io/v1alpha2
kind: RouteRule
metadata:
name: helloword-default
spec:
destination:
name: helloworld
route:
- labels:
version: v2
istio命令
删除规则istioctl delete routerules helloword-default
查看规则istioctl get routerules
初步了解redux(代码片段)
...大家提供一些参考 好的,使用redux最开始的一步就是安装 查看详情
一张图快速了解istio中的envoyfilter(代码片段)
EnvoyFilter简介EnvoyFilter提供了一种机制来定制IstioPilot生成的Envoy配置。使用EnvoyFilter修改某些字段的值,添加特定的过滤器,甚至添加全新的侦听器、集群等等。这个功能必须谨慎使用,因为不正确的配置可能会破坏整... 查看详情
istio1.12:安装和快速入门(代码片段)
前言Istio使用功能强大的Envoy服务代理扩展了Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio与Kubernetes和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥测和安全性。下载Istio0.Istio版本... 查看详情
想变得更强吗?5分钟带你了解云原生核心--istio(上)(代码片段)
为什么需要istio?我们在使用k8s集群的时候,k8s虽然强大,但是也有弱点,比如我们要是想控制灰度发布,需要进行大量的配置,徒手硬敲金丝雀,流量控制,权限控制,这种事情还是留给年轻人吧…我们要是想控制通信重试,限流,熔断,倾斜... 查看详情
深入了解istio:调整max_body_size(代码片段)
nginx可以设置client_max_body_size,那么在istio场景下如何调整客户端的最大请求大小呢?解决方案可以配置EnvoyFilter:apiVersion:networking.istio.io/v1alpha3kind:EnvoyFiltermetadata:name:limit-request-sizenamespace:istio-systemspec:workloadSelector:labels:istio... 查看详情
深入了解istio:调整max_body_size(代码片段)
nginx可以设置client_max_body_size,那么在istio场景下如何调整客户端的最大请求大小呢?解决方案可以配置EnvoyFilter:apiVersion:networking.istio.io/v1alpha3kind:EnvoyFiltermetadata:name:limit-request-sizenamespace:istio-systemspec:workloadSelector:labels:istio... 查看详情
深入了解istio:调整max_body_size(代码片段)
nginx可以设置client_max_body_size,那么在istio场景下如何调整客户端的最大请求大小呢?解决方案可以配置EnvoyFilter:apiVersion:networking.istio.io/v1alpha3kind:EnvoyFiltermetadata:name:limit-request-sizenamespace:istio-systemspec:workloadSelector:labels:istio... 查看详情
深入了解istio:调整max_body_size(代码片段)
nginx可以设置client_max_body_size,那么在istio场景下如何调整客户端的最大请求大小呢?解决方案可以配置EnvoyFilter:apiVersion:networking.istio.io/v1alpha3kind:EnvoyFiltermetadata:name:limit-request-sizenamespace:istio-system 查看详情
istio1.12:安装和快速入门(代码片段)
前言Istio使用功能强大的Envoy服务代理扩展了Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio与Kubernetes和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥测和安全性。[外链图片转存失... 查看详情
istio1.1尝鲜记(代码片段)
...,公司的技术大佬赶出了这篇尝鲜教程,其中包括环境、安装、可能遇到的问题及解决方式等,希望对大家有所帮助。环境已经安装了Kubernetes集群,有1个master和4个node。操作系统都是CentOSLinux7。 下载Istio安装文件curl-Lhttps://g... 查看详情
istio1.0安装(代码片段)
1.istio1.0安装创建istio目录[[email protected]-110~]#mkdiristio[[email protected]~]#cdistio1.1获取安装包链接:https://pan.baidu.com/s/1HQsXvN3Rgo5F7C9XYkhZng提取码:uqwk解压:tar-zxvfistio-1.0.0-linux.tar.gz1.2安装 查看详情
自学tensorflow——1.框架初步了解以及构建简单的计算图计算(代码片段)
...数据在python和c++(tensorflow底层)传输的时间浪费。2.tensorflow安装 pipinstalltensorflow即可,如果想用gpu版的,需要先安装CUDA和cuDNN,然后在pipinstalltensorflow-gpu3.实战a+b程序 首先导入tensorflow模块:importtensorflowastf 定义a,b两个tf... 查看详情
istio入门(代码片段)
...本教程中,我们将介绍服务网格的基础知识,并了解它如何实现分布式系统架构。我们将主要关注Istio,它是服务网格的一种具体实现。在此过程中,我们将介绍Istio的核心架构。2.什么是服务网格?在过去的几十年... 查看详情
想变得更强吗?5分钟带你了解云原生核心--istio(上)(代码片段)
为什么需要istio?我们在使用k8s集群的时候,k8s虽然强大,但是也有弱点,比如我们要是想控制灰度发布,需要进行大量的配置,徒手硬敲金丝雀,流量控制,权限控制,这种事情还是留给年轻人吧…我们要是想控制通信重试,限流,熔断,倾斜... 查看详情
爬虫初步了解(代码片段)
一、爬虫的概念:口语版:也叫网络蜘蛛,它是批量下载网络资源的程序专业版:网络爬虫是伪装成客户端与服务端进行数据交互的程序二、爬虫的应用:1.数据采集例:收集数据,大数据2.搜索引擎例:百度,谷歌搜索引擎都属... 查看详情
react(初步了解)(代码片段)
1.什么是react? 1.1.React是一个用于构建用户界面的javacript库 1.2.React主要用于构建UI,很多人认为React是MVC中的V(视图) 1.3.React是拥有较高的性能,代码逻辑非常简单2.react特性? 2.1.声明式设计 2.2.高效 React通... 查看详情
istio原理解析(代码片段)
...录:istio定义为什么需要istioistio的主要功能istio架构安装istioistio之envoyistio之pointistio之mixeristio访问外网问题Istio定义一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来建立已部署服务网络,具备负... 查看详情
初步了解vue源码(代码片段)
1、源码学习目录本项目所剖析的Vue.js源码版本是目前最新的版本,版本号为v2.6.11,其代码目录如下: 从上面的目录结构可以看出,Vue的整个项目包含了类型检测相关、单元测试相关、与平台无关的核心代码以及跨平台... 查看详情