istio环境搭建for macbook
首先需要搭建docker+k8s环境,如何搭建这里就不再赘述,可以自行搜索。
打开命令行,运行命令:
curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.1.3 sh -
获取最新版本istio并解压,
接着进入istio目录:
cd istio-1.1.
该目录下包含:
- 在
install/
目录中包含了 Kubernetes 安装所需的.yaml
文件 samples/
目录中是示例应用istioctl
客户端文件保存在bin/
目录之中。istioctl
的功能是手工进行 Envoy Sidecar 的注入。istio.VERSION
配置文件
将istioctl加入PATH环境变量,这样就可以在任何地方运行该命令:
export PATH=$PWD/bin:$PATH
此时需要安装helm,来安装istio到kubernetes集群:
brew install kubernetes-helm
安装完成之后,进一步安装tiller:
先给tiller新建一个serviceaccount:
kubectl apply -f install/kubernetes/helm/helm-service-account.yaml
然后使用helm安装tiller:
helm init --service-account tiller
tiller安装完成之后,安装istio-init来对istio进行初始化,主要是一些CRD的创建:
helm install install/kubernetes/helm/istio-init --name istio-init --namespace istio-system
等一段时间之后,使用如下命令查看,是否有53个CRD被创建:
kubectl get crds | grep 'istio.io\|certmanager.k8s.io' | wc -l
53
接着创建istio相关组件,由于istio的ingressgateway的Service默认配置为LoadBalancer,集群环境没有在云提供商的平台上,所以需要改成NodePort对外提供访问。所以要用以下命令进行安装:
helm install install/kubernetes/helm/istio --name istio --namespace istio-system --set gateways.istio-ingressgateway.type=NodePort
如果你的机器内存不足,可以将pilot的内存降低,在上面命令再加一个参数:
--set pilot.resources.requests.memory="512Mi"
当上面命令成功运行之后,可以通过kubectl命令查看pod和svc的状态:
kubectl get svc -n istio-system
结果如下:
kubectl get pods -n istio-system
结果如下:
此时,istio已经成功安装到集群。
如果想要使用istio的sidecar自动注入功能,我们还需要以下配置:
首先,查看kubernetes的apiserver启动参数:--admission-control是否包含MutatingAdmissionWebhook和ValidatingAdmissionWebhook两项,如果没有需要添加。
然后,要给需要使用自动注入功能的namespace加label
kubectl label namespace default istio-injection=enabled
这时,部署到default中的pod都会自动加上sidecar。
这时,istio的环境就已经搭建完成。
官方针对使用istio的Kubernetes环境还有几项要求:
1、针对创建的Service,启动的ports下得所有name都要遵循命名规则:<协议>[-<后缀>-],其中<协议>
部分可选择范围包括 grpc
、http
、http2
、https
、mongo
、redis
、tcp
、tls
以及 udp
,Istio 可以通过对这些协议的支持来提供路由能力。例如 name: http2-foo
和 name: http
都是有效的端口名,但 name: http2foo
就是无效的。如果没有给端口进行命名,或者命名没有使用指定前缀,那么这一端口的流量就会被视为普通 TCP 流量(除非显式的用 Protocol: UDP
声明该端口是 UDP 端口)
2、所有部署相关的Pod必须在containers.ports中使用containerPort明确指定监听的端口列表,未列出的端口将不会经过istio的Proxy。如果是Deployment、StatefulSet、ReplicationController、DaemonSet等也一样。
3、所有的Pod不论是否公开端口,都必须关联到至少一个Service上,如果一个 Pod 绑定多个Service,这些服务不能在同一端口上使用不同协议,例如 HTTP 和 TCP。
4、Deployment 、StatefulSet、ReplicationController、DaemonSet等应带有 app
以及 version
标签:在使用其进行 Pod 部署的时候,建议显式的为其加上 app
以及 version
标签。每个部署都应该有一个有意义的 app
标签和一个用于标识其版本的 version
标签。app
标签在分布式追踪的过程中会被用来加入上下文信息。Istio 还会用 app
和 version
标签来给遥测指标数据加入上下文信息。
5、Application UID:不能使用RunAsUser: 用户运行Pod
6、NET_ADMIN
功能: 如果集群中实施了 Pod 安全策略,除非使用 Istio CNI 插件,否则 Pod 必须具有NET_ADMIN
功能。请参阅必需的 Pod 功能。
istio环境搭建for macbook的更多相关文章
- PHP开发环境搭建
链接: Q&A1.Mac下的PHP环境搭建 Mac 下如何搭建 PHP 开发环境? [PHP] Mac下homebrew安装及php.mysql.nginx环境安装及配置个人PHP开发环境的选 ...
- mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
一.mac OS X下Java项目环境搭建 因为某些原因新入手了台最新版的MacBook Pro,意味着今天要花一天时间安装各种软件以及项目环境搭建╮(╯▽╰)╭ 项目环境搭建步骤: 1.安装jdk ...
- appium ios 真机自动化环境搭建
近期由于工作需要,本小菜在弄appium+ios+iphone真机的移动自动化,在网上找寻各种资料,发现针对IOS方面的资料少之又少,公司其它部门的弄过的同事也寥寥无几,即使有,也是安卓方面的.本次书 ...
- 渣渣菜鸡的 ElasticSearch 源码解析 —— 环境搭建
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/25/es-code01/ 软件环境 1.Intellij Idea:2018.2版本 2. ...
- cozmo 入坑日记及开发环境搭建
前几日,朋友在群里发了一个机器人的小视频,视频里机器人可以对话,可以推箱子,开心以后会哈哈大笑,非常有趣. 详细了解里一下,这是个叫 cozmo 的智能机器人,可以配合 SDK 用 python 编程 ...
- Appium之环境搭建
Appium:是开源.跨平台.多语言支持的移动应用自动化工具 测试对象主要有:① 原生app ② 混合app(h5 + web前端基础) ③ 移动web app 测试对象APPy运行平台: ① io ...
- 【CUDA 基础】0.0 腾讯云CUDA环境搭建
title: [CUDA 基础]0.0 腾讯云CUDA环境搭建 categories: CUDA Freshman tags: CUDA 环境搭建 toc: true date: 2018-02-13 ...
- openshift 4.3 Istio的搭建(istio 系列一)
openshift 4.3 Istio的搭建 本文档覆盖了官方文档的Setup的所有章节 目录 openshift 4.3 Istio的搭建 安装Istio openshift安装Istio 更新is ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
随机推荐
- rank() partition by 排名次
rank()排名 partition by分组与group by相比各有优势,在这里就省略100字.... 以下为案例: create table student -- 学生表(sid integer ...
- Ubuntu 18.04 安装 Apache, MySQL, PHP7, phpMyAdmin
https://blog.csdn.net/sanve/article/details/80770675
- 在MVC中Dashboard基础入门操作
DevExpress中的Dashboard这个图形插件真的很好用, 只需要在设计器绑定数据就行了,完全不用写后台代码.我也是刚学这个插件,可能还有一些我没有了解的知识点,忘各位大佬不吝赐教.我写这篇博 ...
- 一入OI深似海 1 —— 偶然遇见,命运选择
记得还是三年级(还是四年级?人老了都忘了)吧, 那时候我还是个愣头青, 学校的编程班在每个班强制招人, 我就屁颠屁颠被赶去去上课了. 一开始的课完全听不懂, 导致没过多久我同班的人一个个走了, 我为了 ...
- RabbitMQ的一些有用教程
最近学习了一些RabbitMQ的知识,现在对所阅读过的一些非常优秀的教程进行总结,感谢各位博主和大神的无私奉献. 一.原理篇 https://blog.51cto.com/lookingdream/2 ...
- axios delete请求 参数
内容转载作者:https://www.cnblogs.com/pangguoming/p/8994742.html 如果服务端将参数当做 java对象来封装接收则 参数格式为:{data: param ...
- 泛型与object
一.泛型通俗的理解就是限制list集合里面的数据类型 比如List<int>,就限制LIST里面必须是int,这样放入其他就有报错(保证了安全),然后从 list里取元素,就不需要强制转化 ...
- sql中检查时间是否重叠
先画一个时间轴,方便理解. 设新的时间块,开始时间为@BeginDate,结束时间为@EndDate.数据库中的数据为BeginDate和EndDate 这样可以直观的看出来,新的时间块插入进来,只需 ...
- Luogu4492 [HAOI2018]苹果树 【动态规划】
题目分析: 思路不难想,考虑三个dp状态$f,g,d$. $g[i]$表示有$i$个点的堆的数量 $d[i]$表示有$i$个点的情况下所有的方案数中点到根的距离和 $f[i]$表示要求的答案. 不难发 ...
- 图像风格迁移(Pytorch)
图像风格迁移 最后要生成的图片是怎样的是难以想象的,所以朴素的监督学习方法可能不会生效, Content Loss 根据输入图片和输出图片的像素差别可以比较损失 \(l_{content} = \fr ...