在macos上搭建istio
来源:互联网 发布:百度软件制作 编辑:程序博客网 时间:2024/06/03 17:39
istio介绍
istio是google和ibm开发的一套基于k8s和docker技术的微服务架构,理论来自service mesh,参考资料
环境准备
# curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.23.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
minikube支持xhyve、VirtualBox、VMwareFusion、hyperV、KVM等多种虚拟机驱动器,这里我们使用VirtualBox,请读者自行下载安装。
4、下载istio
到 Istio release 页面上,根据您的操作系统下载对应的发行
启动minikube
第一次执行会自动从服务器下载minikube的镜像文件,如果下载失败,重复执行多次即可。
启动成功后可以创建实例并部署(示例创建一个tomcat8.0的实例):
kubectl run hello-minikube --image=tomcat:8.0 --port=8080
发布hello-minikube
kubectl expose deployment hello-minikube --type=NodePort
查看 pods
kubectl get pods
这个过程中会发现pod一直处于ContainerCreating状态,说明过程中出现了错误
查看logs
minikube logs
通过日志可以看出是有一个镜像gcr.io/google_containers/pause-amd64:3.0 显示拉取失败,分析原因应该是 gcr.io 这个地址被墙了 。所以需要替换该镜像,设置minikube的镜像拉取策略为本地优先获取。
# 替换镜像
$ docker pull visenzek8s/pause-amd64:3.0$ docker tag visenzek8s/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0
# 显式设置拉取策略为 IfNotPresent
$ kubectl run hello-minikube --image=tomcat:8.0 --port=8080 --image-pull-policy=IfNotPresent
把所有出错的容器的按照这种方式修改,就可以正常启动了。
#查看k8s控制台
$ minikube dashboard
启动istio
5、确认对应的 Kubernetes pod 已部署并且所有的容器都启动并运行:kubectl get pods -n istio-system
如图所示,istio已经正常启动了,如果遇到docker镜像下载失败的,可以手动去dockerstore下载相关镜像即可。
istio官方示例BookInfo启动
productpage:productpage(产品页面)微服务,调用 details 和 reviews 微服务来填充页面。
details:details 微服务包含书籍的详细信息。
reviews:reviews 微服务包含书籍的点评。它也调用 ratings 微服务。
ratings:ratings 微服务包含随书评一起出现的评分信息。
有3个版本的 reviews 微服务:
版本v1不调用 ratings 服务。
版本v2调用 ratings ,并将每个评级显示为1到5个黑色星。
版本v3调用 ratings ,并将每个评级显示为1到5个红色星。
应用程序的端到端架构如下所示
kubectl get pods
所有的pod都是running状态就表示bookinfo的样例已经成功启动
3、Minikube:Minikube 不支持外部负载均衡器。您可以使用 ingress 服务的主机 IP 和 NodePort 来访问 ingress
export GATEWAY_URL=$(kubectl get po -l istio=ingress -o 'jsonpath={.items[0].status.hostIP}'):$(kubectl get svc istio-ingress -o'jsonpath={.spec.ports[0].nodePort}')
最后在浏览器访问:http://${GATEWAY_URL}/productpage
不断刷新页面,右侧的book reviews会根据配置的流量策略切换服务
- 在macos上搭建istio
- Rails在MacOS上搭建Heroku部署环境
- macOS上搭建python环境
- 在MacOS上安装md5sum
- 在虚拟机上安装MacOS
- 在MacOS上安装md5sum
- 在MacOS上安装brew
- 在macOS上运行ImageMagick
- 在macos上安装icons
- 在macOS上安装Anaconda
- OSVersion 在 MONO MacOS 上的Bug?
- macos X在acer5572上的安装
- MySQL在MacOS上的安装记录
- Latexit在MacOS上进行公式编辑
- 在 Vmware 上安装 MacOS 10.9
- 【转】在MACOS上实现交叉编译
- 在macOS上用VirtualBox安装CentOS
- 在MacOs上配置Mesos+Zookeeper
- Android 获取WebView页面中<a>标签中的target=“_blank”属性
- struts存取session和application值
- rational rose 2007安装破解全过程
- H
- 返回零长度的数组或者集合,而不是null
- 在macos上搭建istio
- MATLAB实现的车牌定位系统
- C#串口接收数据-根据特定通信协议解析
- 快速理解<jsp:include>和<%@include%>的区别(从计算机角度理解,不是我个人随便猜解)
- DEV gridview不自动排序
- 【多线程】(二)Java.lang.Process的思考
- 底层视觉--image denoising
- 唯快不破:TCP/IP详解--IP路由选择详解 ping命令的过程
- wannafly挑战赛4 C-割草机 思维