Merge pull request #2 from rootsongjc/master

update_20190526
pull/364/head
董宗磊 2019-05-26 18:58:34 +08:00 committed by GitHub
commit 1c9f4838f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
280 changed files with 282 additions and 282 deletions

View File

@ -69,20 +69,22 @@
- **与我联系**扫描下面的二维码关注Jimmy Song 的<u>个人微信公众号</u>CloudNativeGo云原生应用架构
<p align="center">
<img src="https://github.com/rootsongjc/kubernetes-handbook/blob/master/images/cloud-native-go-wechat-qr-code.jpg?raw=true" alt="云原生应用架构微信公众号二维码"/>
<img src="images/cloud-native-go-wechat-qr-code.jpg" alt="云原生应用架构微信公众号二维码"/>
</p>
- **ServiceMesher**ServiceMesher 社区公众号,下承 Kubernetes、上接 Serverless云原生应用的通信层旨在加强行业内部交流促进开源文化构建推动 Kubernetes、Service Mesh、Serverless 等云原生技术在企业落地,发布活动及业界最前沿资讯。[加入组织](http://www.servicemesher.com/contact/)。
<p align="center">
<img src="https://ws1.sinaimg.cn/large/00704eQkgy1fshv989hhqj309k09k0t6.jpg" alt="ServiceMesher微信公众号二维码"/>
<img src="images/servicemesher-wechat-public.jpg" alt="ServiceMesher微信公众号二维码"/>
</p>
## 读者反馈
以下是部分读者反馈,希望更多人[加入我们](http://www.servicemesher.com),共同打造中国质量最高的云原生社区!
![Kubernetes handbook 读者反馈](https://ws2.sinaimg.cn/large/006tKfTcgy1g0oxheyjxfj31bc0u0kej.jpg)
![Kubernetes handbook 读者反馈](images/feedback.jpg)
## 云原生出版物
@ -98,6 +100,7 @@
为云原生干杯🍻!使用微信扫一扫请我喝一杯☕️
<p align="center">
<img src="https://github.com/rootsongjc/kubernetes-handbook/blob/master/images/wechat-appreciate-qrcode.jpg?raw=true" alt="微信赞赏码"/>
<img src="images/wechat-appreciate-qrcode.jpg" alt="微信赞赏码"/>
</p>

View File

@ -93,7 +93,7 @@
* [Secret配置](guide/secret-configuration.md)
* [管理namespace中的资源配额](guide/resource-quota-management.md)
* [命令使用](guide/command-usage.md)
* [Docker用户过到kubectl命令行指南](guide/docker-cli-to-kubectl.md)
* [Docker用户过到kubectl命令行指南](guide/docker-cli-to-kubectl.md)
* [kubectl命令概览](guide/using-kubectl.md)
* [kubectl命令技巧大全](guide/kubectl-cheatsheet.md)
* [使用etcdctl访问kubernetes数据](guide/using-etcdctl-to-access-kubernetes-data.md)

View File

@ -130,7 +130,7 @@ CNCF 年度报告的原文主要是汇报了 CNCF 一年来的所展开的活动
自2015年底 CNCF 创立之初 Kubernetes 成为其首个托管项目以来截止到2018年底CNCF 已经托管了[32个开源项目](https://www.cncf.io/projects/),随着越来越多的项目加入到 CNCF为了更好的管理这些项目为这些项目划分不同的成熟度等级就成了迫在眉睫的事情。
![CNCF 项目成熟度级别](https://ws2.sinaimg.cn/large/006tNc79ly1g04s0oznytj31tg0ok7ca.jpg)
![CNCF 项目成熟度级别](../images/006tNc79ly1g04s0oznytj31tg0ok7ca.jpg)
根据《Crossing the Chasm》一书中的技术采用生命周期理论CNCF 将其托管的项目划分为三个等级:
@ -146,7 +146,7 @@ CNCF 通过为项目设置成熟度水平是来建议企业应该采用哪些项
通过 [KCSP](https://www.cncf.io/certification/kcsp/) 意味着企业具有为其他企业或组织提供 Kubernetes 支持、咨询、专业服务和培训的资质。 2018年又有46家企业通过了[KCSP](https://www.cncf.io/certification/kcsp/)通过该认证的企业累计达到76家。
![KCSP](https://ws3.sinaimg.cn/large/006tNc79ly1g04tl97vm4j318v0h7dpt.jpg)
![KCSP](../images/006tNc79ly1g04tl97vm4j318v0h7dpt.jpg)
**如何通过 KCSP**

View File

@ -5,9 +5,9 @@
- 对于管理 Windows node 的生产级支持。
- 重写了 kubectl 的文档,并为其专门启用新域名 <https://kubectl.docs.kubernetes.io/>,该文档本身类似 Gitbook 的形式,使用 Resource Config 的形式组织,集成了 [kustomize](https://github.com/kubernetes-sigs/kustomize),还有了自己的 logo 和吉祥物 kubee-cuddle。
![大鱿鱼kubectl log](https://ws2.sinaimg.cn/large/006tKfTcly1g1gbdpsdbgj303c03cwel.jpg)
![大鱿鱼kubectl log](../images/006tKfTcly1g1gbdpsdbgj303c03cwel.jpg)
![Kubernetes 吉祥物 kubee-cuddle](https://ws1.sinaimg.cn/large/006tKfTcly1g1gbjvx2ugj305k05mmx9.jpg)
![Kubernetes 吉祥物 kubee-cuddle](../images/006tKfTcly1g1gbjvx2ugj305k05mmx9.jpg)
- kubectl 插件机制发布稳定版本。
- Persistent Local Volume GA。

View File

@ -46,13 +46,13 @@
下图是 Google trend 中过去一年来全球搜索 Kubernetes 的趋势图。
![Kubernetes 搜索趋势(来自 Google trends)](https://ws2.sinaimg.cn/large/006tNc79ly1fzne6y4f2ej31q60fedho.jpg)
![Kubernetes 搜索趋势(来自 Google trends)](../images/006tNc79ly1fzne6y4f2ej31q60fedho.jpg)
从图中可以看出 Kubernetes 在全球搜索趋势在2018年底已经达到了最巅峰2019年可能会开始走下降趋势。
下图是最近5年来 Kubernetes 关键词的百度指数。
![Kubernetes 的百度指数](https://ws1.sinaimg.cn/large/006tNc79ly1fznegoocmvj31y00hmgon.jpg)
![Kubernetes 的百度指数](../images/006tNc79ly1fznegoocmvj31y00hmgon.jpg)
上图来自百度指数,可以大体概括 Kubernetes 关键字在中国的搜索情况,同 Kubernetes 在全球的搜索情况一样,可能已经过了巅峰期。
@ -60,7 +60,7 @@
以 Kubernetes 为核心来运维上层应用诞生了一种名为”Kubernetes Native“的新型运维方式真正践行 DevOps 理念的产物,开发者将于软件的运维逻辑写成代码,利用 Kubernetes 的**控制器模式Controller Pattern**和 [CRD](../concepts/crd.md) 来扩展 Kubernetes 的 API各种 Operator 层出不穷,[awesome-operators](https://github.com/operator-framework/awesome-operators) 列举了目前所有的 Operator。例如我们熟悉的 [Istio](https://istio.io) 中就有50个 CRD。
![Istio 中的 CRD](https://ws2.sinaimg.cn/large/006tNc79ly1fzna87wmfij30u00zc4qp.jpg)
![Istio 中的 CRD](../images/006tNc79ly1fzna87wmfij30u00zc4qp.jpg)
CNCF 生态中的诸多应用都已支持 Kubernetes Operator可以说 Operator 将成为云原生中默认的软件动态运行时管理工具,参考 CoreOS已被 RedHat 收购RedHat 已被 IBM 收购) CTO Brandon Philips 的这篇文章 [Introducing the Operator Framework: Building Apps on Kubernetes](https://www.redhat.com/en/blog/introducing-operator-framework-building-apps-kubernetes)。
@ -68,15 +68,15 @@ CNCF 生态中的诸多应用都已支持 Kubernetes Operator可以说 Operat
下图展示的是 2019 Q1 的软件架构趋势,(图片来自 [Architecture and Design InfoQ Trends Report - January 2019](https://www.infoq.com/articles/architecture-trends-2019))我们可以看到 Service Mesh 还处于创新者阶段,如果从软件生命周期的全阶段来看,它还只是刚刚进入很多人的眼帘,对于这张的新兴技术,在蚂蚁金服的支持的下创办了 [ServiceMesher 社区](http://www.servicemesher.com)。
![2019 Q1 软件架构趋势 - 来自 InfoQ](https://ws4.sinaimg.cn/large/006tNc79ly1fzor2k6f7wj313j0u0dl3.jpg)
![2019 Q1 软件架构趋势 - 来自 InfoQ](../images/006tNc79ly1fzor2k6f7wj313j0u0dl3.jpg)
![ServiceMesher 社区 Logo](https://ws2.sinaimg.cn/large/006tNc79ly1fznadbp63qj31jt0beq9s.jpg)
![ServiceMesher 社区 Logo](../images/006tNc79ly1fznadbp63qj31jt0beq9s.jpg)
既然 Kubernetes 已经开始变得无聊2018年落地 Kubernetes 已经不是初创公司的事情了,很多大公司甚至传统企业都开始试水或者大规模落地,在 Kubernetes 进一步成熟之时,以 Kubernetes 为基础向上发展,开辟新的战场就能收获更多的业务场景和需求。
Kubernetes 并不直接对外提供业务能力,而是作为应用运行的底层平台,在应用和平台间还有一个 Gap这需要中间件的能力来补充。
![ServiceMesher社区2018年活动一览](https://ws4.sinaimg.cn/large/006tNc79ly1fzm9vs4o3aj31s00u0x6p.jpg)
![ServiceMesher社区2018年活动一览](../images/006tNc79ly1fzm9vs4o3aj31s00u0x6p.jpg)
- 2018年5月ServiceMesher 社区由蚂蚁金服发起成立。
- 2018年5月30日[Envoy最新官方文档中文版发布——由Service Mesh爱好者倾情奉献](http://www.servicemesher.com/envoy/)。
@ -121,7 +121,7 @@ Kubernetes 并不直接对外提供业务能力,而是作为应用运行的底
我们再看 CNCF 的 [Landscape](https://landscape.cncf.io/),其中右下部分有一个单列的 Serverless 单元,详见 <https://landscape.cncf.io/>
![CNCF Landscape 中的 Serverless 单元](https://ws4.sinaimg.cn/large/006tNc79ly1fznbh3vfbwj310f0jxgxj.jpg)
![CNCF Landscape 中的 Serverless 单元](../images/006tNc79ly1fznbh3vfbwj310f0jxgxj.jpg)
我们再看下 Kubernetes、Service Mesh、Serviceless 三者之间的关系:

View File

@ -13,7 +13,7 @@ Kubernetes 社区的贡献、交流和治理方式相关的内容都保存在 <h
- 社区成员的角色分类与职责
- 社区贡献的 Kubernetes 资源图标
![Kubernetes 资源图标示例](https://ws1.sinaimg.cn/large/006tNc79ly1fzmnolp5ghj30z90u0gwf.jpg)
![Kubernetes 资源图标示例](../images/006tNc79ly1fzmnolp5ghj30z90u0gwf.jpg)
## 生态环境

View File

@ -34,7 +34,6 @@
"-highlight", "prism", "prism-themes",
"sitemap-general",
"lightbox",
"adsense",
"ga"
],
"pluginsConfig": {
@ -57,7 +56,7 @@
"size": "small"
},
"tbfed-pagefooter": {
"copyright": "<p><a href=https://github.com/alipay/sofa-mesh>SOFAMesh - 基于 Istio 的大规模服务网格解决方案</a> | <a href=https://github.com/alipay/sofa-mosn>SOFAMosn - Golang 版的高性能 Service Mesh Sidecar 代理</a></p><p><a href=https://ws4.sinaimg.cn/large/006tNbRwly1fw3ku0cwuhj304g056dgk.jpg data-lightbox=2fd927ee-fa64-4eca-8ed5-6bd72b573a3c>点击关注【云原生应用架构】公众号回复【加群】加入学习群</a> | <a href=https://jimmysong.io/jobs/>加入蚂蚁金服金融科技,构建金融级云原生基础设施</a></p>Copyright © <a href=https://jimmysong.io>jimmysong.io</a> 2017-2019",
"copyright": "<p><a href=https://jimmysong.io/about>私信我获取KubeCon China 2019门票折扣码和报名SOFAStack Cloud Native Workshop</a></p><p><a href=https://gw.alipayobjects.com/mdn/site_comm/afts/img/A*HA0uRIfs6UIAAAAAAAAAAABjARQnAQ data-lightbox=2fd927ee-fa64-4eca-8ed5-6bd72b573a3c>点击关注【云原生应用架构】公众号回复【加群】加入学习群</a> | <a href=https://jimmysong.io/jobs/>加入蚂蚁金服金融科技,构建金融级云原生基础设施</a></p>Copyright © <a href=https://jimmysong.io>jimmysong.io</a> 2017-2019",
"modify_label": " Updated at ",
"modify_format": "YYYY-MM-DD HH:mm:ss"
},
@ -76,13 +75,6 @@
"sitemap-general": {
"prefix": "https://jimmysong.io/kubernetes-handbook/"
},
"adsense": {
"client": "ca-pub-4029167986768912",
"slot": "2445941692",
"format": "auto",
"element": ".page-inner section",
"position": "bottom"
},
"ga": {
"token": "UA-93485976-1"
}

View File

@ -4,7 +4,7 @@
下文部分来自Joe Duffy的博客[Hello, Pulumi](http://joeduffyblog.com/2018/06/18/hello-pulumi/)
![云原生编程语言Pulumi](https://ws1.sinaimg.cn/large/00704eQkgy1fsm4v0a6qwj30xc0m8t9d.jpg)
![云原生编程语言Pulumi](../images/00704eQkgy1fsm4v0a6qwj30xc0m8t9d.jpg)
TL;DR 有了Pulumi38页的手动操作说明将变成了38行代码。25000行YAML配置变成了使用真实编程语言的500行语句。

View File

@ -6,7 +6,7 @@ CNCF云原生计算基金会是Linux基金会旗下的一个基金会
下图是我根据CNCF章程绘制的组织架构图。
![CNCF组织架构图](https://ws2.sinaimg.cn/large/006tKfTcgy1ft5pe433f6j31kw0s3nnl.jpg)
![CNCF组织架构图](../images/006tKfTcgy1ft5pe433f6j31kw0s3nnl.jpg)
## 1. CNCF的使命
@ -345,7 +345,7 @@ CNCF社区坚信云原生计算包含三个核心属性
- 在标准化子系统的边界处定义良好的API
- 应用程序生命周期管理的最小障碍
![云原生的理想分层架构](https://ws2.sinaimg.cn/large/006tKfTcly1ft3zgjlisxj30n70ffjth.jpg)
![云原生的理想分层架构](../images/006tKfTcly1ft3zgjlisxj30n70ffjth.jpg)
因为上述时间表已经有些过时了CNCF成立已经有三年时间了正在规划新的方案。

View File

@ -4,7 +4,7 @@ CNCF 根据“[鸿沟理论](https://www.jianshu.com/p/a305fa93580b)”将其托
> “[鸿沟理论](https://www.jianshu.com/p/a305fa93580b)”是由Geoffrey A. Moore提出的高科技产品的市场营销理论。新技术要想跨越鸿沟必须能够实现一些跨越式的发展**拥有某一些以前不可能实现的功能**,具有某种内在价值并能够**赢得非技术人员的**青睐。
![CNCF 项目的成熟度分类](https://ws1.sinaimg.cn/large/006tNc79ly1g1yzc5xre6j30o20a8q3t.jpg)
![CNCF 项目的成熟度分类](../images/cncf-graduation.jpg)
目前处于沙箱、孵化中、已毕业项目的数量比例为51613详见 <https://cncf.io/projects>。其中沙箱sandbox项目因为其处于早期阶段并没有直接在上面的链接页面中列出而是一个单独的 [Sandbox](https://www.cncf.io/sandbox-projects/) 页面,因为 CNCF 为 sandbox 阶段的项目会谨慎背书。
@ -20,7 +20,7 @@ CNCF 中托管的开源项目要符合云原生定义:
下图演示了开源项目加入 CNCF 后的整个运作流程。
![CNCF中的项目运作](https://ws4.sinaimg.cn/large/006tNc79ly1g1yz80ag98j31cs0n2gr7.jpg)
![CNCF中的项目运作](../images/006tNc79ly1g1yz80ag98j31cs0n2gr7.jpg)
## 开源项目如何加入 CNCF
@ -99,3 +99,4 @@ CNCF 的开源项目遵循如下图所示的成熟度演进。
- [鸿沟理论 - jianshu.com](https://www.jianshu.com/p/a305fa93580b)
- [CNCF Graduation Criteria v1.2 - github.com](https://github.com/cncf/toc/blob/master/process/graduation_criteria.adoc)

View File

@ -6,7 +6,7 @@ CNCF作为一个厂商中立的基金会致力于Github上的快速成长的
下图是CNCF的全景图。
![CNCF landscape](https://ws3.sinaimg.cn/large/006tNbRwly1fxmx633ymqj31dp0u0kjn.jpg)
![CNCF landscape](../images/006tNbRwly1fxmx633ymqj31dp0u0kjn.jpg)
该全景图不断更新中原图请见https://github.com/cncf/landscape

View File

@ -44,11 +44,11 @@
但就2017年为止Kubernetes的主要使用场景也主要作为应用开发测试环境、CI/CD和运行Web应用这几个领域如下图[TheNewStack](http://thenewstack.io)的Kubernetes生态状况调查报告所示。
![Workloads running on Kubernetes](https://ws3.sinaimg.cn/large/0069RVTdgy1fv5mxr6fxtj31kw11q484.jpg)
![Workloads running on Kubernetes](../images/0069RVTdgy1fv5mxr6fxtj31kw11q484.jpg)
另外基于Kubernetes的构建PaaS平台和Serverless也处于爆发的准备的阶段如下图中Gartner的报告中所示
![Gartner技术爆发趋势图2017](https://ws4.sinaimg.cn/large/0069RVTdgy1fv5my2jtxzj315o0z8dkr.jpg)
![Gartner技术爆发趋势图2017](../images/0069RVTdgy1fv5my2jtxzj315o0z8dkr.jpg)
当前各大公有云如Google GKE、微软Azure ACS、亚马逊EKS2018年上线、VMWare、Pivotal、腾讯云、阿里云等都提供了Kubernetes服务。
@ -84,7 +84,7 @@ CNCF云原生计算基金会给出了云原生应用的三大特征
[CNCF](https://cncf.io)所托管的应用目前已达12个即朝着这个目标发展其公布的[Cloud Native Landscape](https://github.com/cncf/landscape),给出了云原生生态的参考体系。
![Cloud Native Landscape v1.0](https://ws3.sinaimg.cn/large/0069RVTdgy1fv5myp6ednj31kw0w0u0x.jpg)
![Cloud Native Landscape v1.0](../images/0069RVTdgy1fv5myp6ednj31kw0w0u0x.jpg)
**使用Kubernetes构建云原生应用**
@ -181,7 +181,7 @@ Linker的部署十分简单本身就是一个镜像使用Kubernetes的[Dae
给开发者带来最大的配置和上线的灵活性践行DevOps流程改善研发效率下图这样的情况将更少发生。
![Deployment pipeline](https://ws4.sinaimg.cn/large/0069RVTdgy1fv5mzj8rj6j318g1ewtfc.jpg)
![Deployment pipeline](../images/0069RVTdgy1fv5mzj8rj6j318g1ewtfc.jpg)
我们知道Kubernetes中的所有应用的部署都是基于YAML文件的这实际上就是一种**Infrastructure as code**完全可以通过Git来管控基础设施和部署环境的变更。
@ -246,7 +246,7 @@ Spark现在已经非官方支持了基于Kubernetes的原生调度其具有
下图是我们刚调研准备使用Kubernetes时候的调研方案选择。
![Kubernetes solutions](https://ws3.sinaimg.cn/large/0069RVTdgy1fv5mzywc83j31fk1i8qg4.jpg)
![Kubernetes solutions](../images/0069RVTdgy1fv5mzywc83j31fk1i8qg4.jpg)
对于一个初次接触Kubernetes的人来说看到这样一个庞大的架构选型时会望而生畏但是Kubernetes的开源社区帮助了我们很多。

View File

@ -1,6 +1,6 @@
# Kubernetes与云原生应用概览
几个月前Mesos已经宣布支持Kubernetes而在2017年10月份的DockerCon EU上Docker公司宣布官方同时支持Swarm和Kubernetes容器编排Kubernetes已然成为容器编排调度的标准。
2017年9月Mesos宣布支持Kubernetes而在2017年10月份的DockerCon EU上Docker公司宣布官方同时支持Swarm和Kubernetes容器编排Kubernetes已然成为容器编排调度的标准。
作为全书的开头首先从历史、生态和应用角度介绍一下Kubernetes与云原生应用深入浅出高屋建瓴没有深入到具体细节主要是为了给初次接触Kubernetes的小白扫盲具体细节请参考链接。

View File

@ -15,13 +15,13 @@
一句话解释什么是云原生应用:云原生应用就是为了在云上运行而开发的应用
![Kubernetes 云原生的操作系统](https://ws1.sinaimg.cn/large/00704eQkgy1frr4z08j6oj31p20w2n6n.jpg)
![Kubernetes 云原生的操作系统](../images/00704eQkgy1frr4z08j6oj31p20w2n6n.jpg)
要运行这样的应用必须有一个操作系统就像我们运行PC或手机应用一样而Kubernetes就是一个这样的操作系统。
我们再来看下操作系统宝库哪些层次。
![操作系统层次](https://ws1.sinaimg.cn/large/00704eQkgy1frr52hl4eaj31qy15en74.jpg)
![操作系统层次](../images/00704eQkgy1frr52hl4eaj31qy15en74.jpg)
- 硬件管理可以管理CPU、内存、网络和存储
- 设备接口、虚拟化工具、实用工具
@ -30,7 +30,7 @@
下面是CNCF给出的云原生景观图。
![云原生景观图](https://ws1.sinaimg.cn/large/00704eQkgy1frr53j3aiuj32fs1dc7wi.jpg)
![云原生景观图](../images/00704eQkgy1frr53j3aiuj32fs1dc7wi.jpg)
该图中包括云原生的各种层次的提供者和应用,通过该图可以组合出一些列的云原生平台。
@ -52,7 +52,7 @@ Kubernetes发展已经有3年多的时间了它已经基本成为了容器编
这是KubeVirt的架构图。
![KubeVirt架构图](https://ws1.sinaimg.cn/large/00704eQkgy1frr54de5oyj31qw14qn2x.jpg)
![KubeVirt架构图](../images/00704eQkgy1frr54de5oyj31qw14qn2x.jpg)
我们看到图中有两个是Kubernetes原生的组件API server和kubelet我们创建了virt-controller就是为了创建CRD的controller它扩展了kube-controller的功能用于管理虚拟机的生命周期同时在每个节点上都用DaemonSet的方式运行一个virt-handler这个handler是用于创建虚拟机的处理器每个节点上即可用运行虚拟机也可以运行容器只要这个节点上有virt-handler就可以运行和调度虚拟机。
@ -64,7 +64,7 @@ Kubernetes的资源隔离也能保证对集群资源的最大化和最优利用
下图中展示了Kubernetes中的资源隔离层次。
![Kubernetes中的资源隔离](https://ws1.sinaimg.cn/large/00704eQkgy1frr54ztql2j329q0zwwlf.jpg)
![Kubernetes中的资源隔离](../images/00704eQkgy1frr54ztql2j329q0zwwlf.jpg)
- 容器
- Pod命名空间的隔离共享网络每个Pod都有独立IP使用Service Account为Pod赋予账户
@ -80,13 +80,13 @@ Kubernetes中的基本资源类型分成了三类
在最近一届的KubeCon & CloudNativeCon上Operator已经变得越来越流行。下面是OpenEBS的一个使用Operator的例子。
![OpenEBS 控制平面架构](https://ws1.sinaimg.cn/large/00704eQkgy1frr56m7z2sj31y010y17y.jpg)
![OpenEBS 控制平面架构](../images/00704eQkgy1frr56m7z2sj31y010y17y.jpg)
OpenEBS是一款容器化存储它基于Ceph构建容器化存储最大的好处就是复用Kubernetes的资源类型简化存储应用的部署将单体的存储拆分为“微服务化”的存储即每个应用在声明PV的时候才会创建存储并与PV的生命周期一样都是独立于应用的。
OpenEBS的存储也是分控制平面和数据平面的下图是OpenEBS的架构图。
![OpenEBS 的存储卷管理](https://ws1.sinaimg.cn/large/00704eQkgy1frr57nm2mnj31xk11qqej.jpg)
![OpenEBS 的存储卷管理](../images/00704eQkgy1frr57nm2mnj31xk11qqej.jpg)
黄色部分是OpenEBS的组件除了kube-dashboard它是使用Kubernetes的各种原语和CRD来创建的架构跟Kubernetes本身也很类似。
@ -94,13 +94,13 @@ OpenEBS的存储也是分控制平面和数据平面的下图是OpenEBS的架
上面说到了Operator的一个应用下面再来看一个我们之前在Kubernetes中部署Hadoop YARN和Spark的例子。
![Hadoop YARN 迁移到 Kubernetes的示例](https://ws1.sinaimg.cn/large/00704eQkgy1frr58ebf2lj323o11219r.jpg)
![Hadoop YARN 迁移到 Kubernetes的示例](../images/00704eQkgy1frr58ebf2lj323o11219r.jpg)
![Spark on Yarn with Kubernetes](https://ws1.sinaimg.cn/large/00704eQkgy1frr59gzzwsj32gg16k4qp.jpg)
![Spark on Yarn with Kubernetes](../images/00704eQkgy1frr59gzzwsj32gg16k4qp.jpg)
Kubernetes始于12因素应用的PaaS平台它是微服务的绝佳部署管理平台基于它可以应用多种设计模式。它的未来将变成什么样呢
![云原生与12因素应用](https://ws1.sinaimg.cn/large/00704eQkgy1frr5arzvetj31no12mdre.jpg)
![云原生与12因素应用](../images/00704eQkgy1frr5arzvetj31no12mdre.jpg)
- Service Mesh解决微服务治理问题
- Auto Pilot自动驾驭能力服务自动扩展智能运维
@ -114,7 +114,7 @@ Kubernetes始于12因素应用的PaaS平台它是微服务的绝佳部署管
甚至出现了像ballerina这样的云原生编程语言它的出现就是为了解决应用开发到服务集成之间的鸿沟的。它有以下几个特点。
![云原生编程语言](https://ws1.sinaimg.cn/large/00704eQkgy1frr5c8bwmtj31ou152qc3.jpg)
![云原生编程语言](../images/00704eQkgy1frr5c8bwmtj31ou152qc3.jpg)
- 使用云原生语义的DSL
- 注解式配置
@ -123,13 +123,13 @@ Kubernetes始于12因素应用的PaaS平台它是微服务的绝佳部署管
要完成云的集成CI/CD或者用一个词代替来说就是GitOps的需求越来越强烈。
![Gitkube](https://ws1.sinaimg.cn/large/00704eQkgy1frr5bulhuhj329m10iwua.jpg)
![Gitkube](../images/00704eQkgy1frr5bulhuhj329m10iwua.jpg)
### Kubernetes没有做什么
看下这张图中的两个服务它们使用的是kube-proxy里基于iptables的原生的负载均衡并且服务间的流量也没有任何控制。
![Kuberentes中的流量管理](https://ws1.sinaimg.cn/large/00704eQkgy1frr5dsurx6j320i140tpf.jpg)
![Kuberentes中的流量管理](../images/00704eQkgy1frr5dsurx6j320i140tpf.jpg)
Kubernetes缺少的最重要的一个功能就是微服务的治理微服务比起单体服务来说使得部署和运维起来更加复杂对于微服务的可观测性也有更高的要求同时CI/CD流程Kubernetes本身也没有提供。
@ -141,7 +141,7 @@ Service Mesh是一个专用的基础设施层它能够将微服务的治理
这是Istio Service Mesh的架构图。
![Istio Service Mesh架构图](https://ws1.sinaimg.cn/large/00704eQkgy1frr5exqm7kj320u18mh2t.jpg)
![Istio Service Mesh架构图](../images/00704eQkgy1frr5exqm7kj320u18mh2t.jpg)
- Pilot提供用户接口用户可以通过该接口配置各种路由规则Pilot还可以通过适配器获取平台上各种服务之间的管理Evnoy这个使用Sidecar方式部署到每个应用pod中的进程会通过Pilot中的Envoy API获得平台上各个服务之间的管理同时也会应用用户配置的路由规则。
- Mixer获取各种平台属性服务间通讯时会先访问Mixer兼容各平台的属性信息如quota、访问控制和策略评估将服务间的访问信息记录后上报到mixer形成遥测报告。
@ -149,7 +149,7 @@ Service Mesh是一个专用的基础设施层它能够将微服务的治理
Service Mesh实际上为了解决社会分工问题它本身是为了解决微服务的治理。
![Service Mesh架构](https://ws1.sinaimg.cn/large/00704eQkgy1frr5fxzoltj32f81akqr2.jpg)
![Service Mesh架构](../images/00704eQkgy1frr5fxzoltj32f81akqr2.jpg)
Pilot和控制平面是为了运维人员准备的。
@ -157,7 +157,7 @@ Pilot和控制平面是为了运维人员准备的。
Isito在每个上下游服务之间部署一个EnvoyEnvoy中有几个基本的服务发现服务监听器即Envoy要转发的流量端口Endpoint是要转发的目的地Cluster是一系列Endpoint用来做负载均衡Route是定义各种路由规则每个Envoy进程里可以设置多个Listener。
![Envoy proxy架构图](https://ws1.sinaimg.cn/large/00704eQkgy1frr5gloob0j31vi18017p.jpg)
![Envoy proxy架构图](../images/00704eQkgy1frr5gloob0j31vi18017p.jpg)
---

View File

@ -2,7 +2,7 @@
[Calico](https://www.projectcalico.org/) 原意为”有斑点的“,如果说一只猫为 calico cat 的话,就是说这是只花猫,也叫三色猫,所以 calico 的 logo 是只三色猫。
![Calico](https://ws1.sinaimg.cn/large/006tNc79gy1fz65bt7ieej30c90bsgn2.jpg)
![Calico](../images/006tNc79gy1fz65bt7ieej30c90bsgn2.jpg)
## 概念

View File

@ -14,7 +14,7 @@ KV 存储数据库用存储以下状态:
下图是 Cilium 的组件示意图Cilium 是位于 Linux kernel 与容器编排系统的中间层。向上可以为容器配置网络,向下可以向 Linux 内核生成 BPF 程序来控制容器的安全性和转发行为。
![Cilium 组件(来自 Cilium 官网)](https://ws3.sinaimg.cn/large/006tNbRwly1fwztvhg0gmj318z143tdv.jpg)
![Cilium 组件(来自 Cilium 官网)](../images/006tNbRwly1fwztvhg0gmj318z143tdv.jpg)
管理员通过 Cilium CLI 配置策略信息,这些策略信息将存储在 KV 数据库里Cilium 使用插件(如 CNI与容器编排调度系统交互来实现容器间的联网和容器分配 IP 地址分配,同时 Cilium 还可以获得容器的各种元数据和流量信息,提供监控 API。
@ -109,7 +109,7 @@ Available Commands:
将该配置保存成 JSON 文件,在使用 `cilium policy import` 命令即可应用到 Cilium 网络中。
![Cilium 网络配置策略](https://ws1.sinaimg.cn/large/006tNbRwly1fwzreaalj6j30dz0dy3z3.jpg)
![Cilium 网络配置策略](../images/006tNbRwly1fwzreaalj6j30dz0dy3z3.jpg)
如图所示,此时 `id` 标签为其他值的容器就无法访问 `id=app1` 容器,策略配置中的 `toPorts` 中还可以配置 HTTP `method``path`,实现更细粒度的访问策略控制,详见 [Cilium 官方文档](https://cilium.readthedocs.io/en/stable/gettingstarted/docker/)。

View File

@ -4,7 +4,7 @@ Cilium是一个纯开源软件没有哪家公司提供商业化支持
Cilium的基础是一种名为BPF的新Linux内核技术它可以在Linux本身动态插入强大的安全可见性和控制逻辑。由于BPF在Linux内核中运行因此可以应用和更新Cilium安全策略而无需对应用程序代码或容器配置进行任何更改。
![Cilium](https://ws4.sinaimg.cn/large/006tNbRwly1fwqi98i51ij30sc0j80zn.jpg)
![Cilium](../images/006tNbRwly1fwqi98i51ij30sc0j80zn.jpg)
基于微服务的应用程序分为小型独立服务,这些服务使用**HTTP**、**gRPC**、**Kafka**等轻量级协议通过API相互通信。但是现有的Linux网络安全机制例如iptables仅在网络和传输层即IP地址和端口上运行并且缺乏对微服务层的可见性。

View File

@ -10,7 +10,7 @@
Kubernetes设计理念和功能其实就是一个类似Linux的分层架构如下图所示
![Kubernetes 分层架构示意图](https://ws4.sinaimg.cn/large/006tNc79ly1fzniqvmi51j31gq0s0q5u.jpg)
![Kubernetes 分层架构示意图](../images/006tNc79ly1fzniqvmi51j31gq0s0q5u.jpg)
* 核心层Kubernetes最核心的功能对外提供API构建高层的应用对内提供插件式应用执行环境
* 应用层部署无状态应用、有状态应用、批处理任务、集群应用等和路由服务发现、DNS解析等

View File

@ -124,7 +124,7 @@ service ImageService {
- [cri-o](https://github.com/kubernetes-incubator/cri-o)同时兼容OCI和CRI的容器运行时
- [cri-containerd](https://github.com/containerd/cri-containerd):基于[Containerd](https://github.com/containerd/containerd)的Kubernetes CRI 实现
- [rkt](https://coreos.com/rkt/):由CoreOS主推的用来跟docker抗衡的容器运行时
- [rkt](https://coreos.com/rkt/)由CoreOS主推的用来跟docker抗衡的容器运行时
- [frakti](https://github.com/kubernetes/frakti)基于hypervisor的CRI
- [docker](https://www.docker.com)kuberentes最初就开始支持的容器运行时目前还没完全从kubelet中解耦docker公司同时推广了[OCI](https://www.opencontainers.org/)标准
- [Clear Containers](https://github.com/clearcontainers)由Intel推出的同时兼容OCI和CRI的容器运行时

View File

@ -34,7 +34,7 @@ PV 属于集群中的资源。PVC 是对这些资源的请求,也作为对资
### 绑定
动态配置的情况下,用户创建或已经创建了具有特定存储量的 `PersistentVolumeClaim` 以及某些访问模式。master 中的控制环路监视新的 PVC寻找匹配的 PV如果可能并将它们绑定在一起。如果为新的 PVC 动态调配 PV则该环路将始终将该 PV 绑定到 PVC。否则用户总会得到他们所请求的存储但是容量可能超出要求的数量。一旦 PV 和 PVC 绑定后,`PersistentVolumeClaim` 绑定是排他性的,不管它们是如何绑定的。 PVC 跟 PV 绑定是一对一的映射。
动态配置的情况下,用户创建或已经创建了具有特定存储量的 `PersistentVolumeClaim` 以及某些访问模式。master 中的控制环路监视新的 PVC寻找匹配的 PV如果可能并将它们绑定在一起。如果为新的 PVC 动态调配 PV则该环路将始终将该 PV 绑定到 PVC。否则用户总会得到他们所请求的存储但是容量可能超出要求的数量。一旦 PV 和 PVC 绑定后,`PersistentVolumeClaim` 绑定是排他性的,不管它们是如何绑定的。 PVC 跟 PV 绑定是一对一的映射。
如果没有匹配的卷,声明将无限期地保持未绑定状态。随着匹配卷的可用,声明将被绑定。例如,配置了许多 50Gi PV的集群将不会匹配请求 100Gi 的PVC。将100Gi PV 添加到群集时,可以绑定 PVC。

View File

@ -1,6 +1,6 @@
# 从外部访问Kubernetes中的Pod
前面几节讲到如何访问kubneretes集群本文主要讲解访问kubenretes中的Pod和Serivce的集中方式,包括如下几种:
前面几节讲到如何访问kubneretes集群本文主要讲解访问kubenretes中的Pod和Serivce的几种方式,包括如下几种:
- hostNetwork
- hostPort

View File

@ -1,4 +1,4 @@
# docker用户过到kubectl命令行指南
# docker用户过到kubectl命令行指南
对于没有使用过 kubernetes 的 docker 用户,如何快速掌握 kubectl 命令?

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 KiB

Some files were not shown because too many files have changed in this diff Show More