二, 跨语言微服务框架 - Istio环境搭建
当我们知道Istio是一个好东西,能够帮助我们快速实现微服务化中的一些关键节点,那么下一步就需要考虑怎么使用Istio了,Istio现在版本是和Kubernetes强关联在一起的,如果大家还不是太了解Kubernetes可以先从笔者的文章中了解,通过Kubernetes生态Istio可以非常方便的进行部署和使用。
附上:
喵了个咪的博客:w-blog.cn
Istio官方地址:https://preliminary.istio.io/zh
Istio中文文档:https://preliminary.istio.io/zh/docs/
PS : 此处基于当前最新istio版本1.0.3版本进行搭建和演示
一. Kubernetes准备工作
搭建部署Istio时需要先准备好Kubernetes环境,笔者这边使用的是Rancher进行环境的搭建,可以参考笔者的以下博文:
Docker应用容器引擎介绍与搭建 - 喵了个咪博客空间 - 开源中国
Kubernetes(二) - 使用Rancher部署K8S集群(搭建Rancher) - 喵了个咪博客空间 - 开源中国
Kubernetes(三) - 使用Rancher部署K8S集群(搭建Kubernetes) - 喵了个咪博客空间 - 开源中国
Docker应用容器引擎介绍与搭建 - 喵了个咪的博客 - CSDN博客
Kubernetes(二) - 使用Rancher部署K8S集群(搭建Rancher) - 喵了个咪的博客 - CSDN博客
Kubernetes(三) - 使用Rancher部署K8S集群(搭建Kubernetes) - 喵了个咪的博客 - CSDN博客
- 这里需要着重提醒的是关于在部署的时候需要修改Kubernetes模板配置项,之后配置之后后面的Sidecar自动注入才能使用,否则只能手动入住Sidecar.
- 需要找到Kubernetes Admission controllers选项,如下
NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,ResourceQuota
在指定位置添加两个选项
MutatingAdmissionWebhook,ValidatingAdmissionWebhook
如下
NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota
这样才启动了admissionregistration API
- 最后在创建集群的时候选择我们事先准备好的环境模板即可.
然后按照笔者之前的文章部署k8s即可:
PS : 这里使用的K8S版本为1.11,推荐使用1.10以上的版本
二. 部署Istio
PS : 1.0.3版本官方已经完全把docker仓库使用了docker.io舍弃了grc.io就不需要我们去翻墙或者复制镜像了(不在推荐使用1.0.3以前的版本)
首先去官方git下载对应的版本包(liunx 和 mac 要分开)
Releases · istio/istio · GitHub
> tar -zxvf istio-1.0.3-linux.tar.gz
2.1 安装istioctl
如果手动注入sidecar的话需要使用这个命令,自动注入的话不装这个也行:
> sudo cp istio-1.0.3/bin/istioctl /usr/local/bin/
2.2 安装Istio核心组件
简单的安装只需要通过运行官方提前准备好的yaml即可,如果有定制需求(有些内部组件不需要可以使用helm进行yaml构建)
> kubectl apply -f istio-1.0.3/install/kubernetes/istio-demo.yaml
> kubectl get svc -n istio-system
> kubectl get pods -n istio-system
PS : 这边会有三个0/1的是正常的,主要是三个task只有到达指定时间才会运行或一次性脚本
三. 结尾
此时istio就已经搭建完成,通过这种方式搭建的istio是一整套没有删减的容器组,包括grafaba + prometheus等(存在磁盘和处理资源的问题),如果有需求独立在外层部署这些组件的需求就需要修安装yaml进行了解学习修改,本套文章后续也会讲解怎么把一些非核心组件在外层部署(每个版本都会有一些区别需要小心)。
PS : 大家也许遇到了无法访问外网的问题可以关注笔者后续的Egress流量控制或参考 Istio Prelim 1.1 / 控制 Egress 流量
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
单元测试(一)——SpringBoot建立单元测试
单元测试(一)——SpringBoot建立单元测试 单元测试(二)——Junit4+EasyMock建立单元测试 单元测试(三)——建立多线程单元测试 在Spring项目中,对于controller、service、dao各层都需要建立单元测试项。对应不同的分层,我们可以使用junit和mock不同的方式。然而有些情况会需要启动spring容器来测试业务逻辑在容器内能否正常运行,针对此情况可参考如下单元测试方式。 SpringBoot增加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test<artifactId> <scope>test</scope> </dependency> 建立测试基类 新建JUnitBaseTest.java package com.lucas.device; import org.junit.After; import org...
- 下一篇
TarsGo支持Protocol Buffer
Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++,Java,PHP,Nodejs,Golang语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。 它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理。目前该框架在腾讯内部,各大核心业务都在使用,颇受欢迎,基于该框架部署运行的服务节点规模达到上万个。 Tars 于2017年4月开源,并于2018年6月加入Linux 基金会,项目地址 https://github.com/TarsCloud 。 TarsGo 是Tars 的Go语言实现版本, 于2018年9月开源, 项目地址 https://github.com/TarsCloud/TarsGo Tars协议是一种类c++标识符的语言,用于生成具体的服务接口文件,Tars文件是Tars框架中客户端和...
相关文章
文章评论
共有0条评论来说两句吧...