Skip to content

Commit 9d79ae4

Browse files
authored
Merge pull request #1 from rootsongjc/master
Merge master branch from rootsongjc/kubernetes-handbook
2 parents 811f85c + cae67da commit 9d79ae4

File tree

105 files changed

+1903
-546
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+1903
-546
lines changed

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ BOOK_OUTPUT := _book
44
.PHONY: build
55
build:
66
gitbook build . $(BOOK_OUTPUT)
7+
cp images/apple-touch-icon-precomposed-152.png $(BOOK_OUTPUT)/gitbook/images
8+
9+
.PHONY: lint
10+
lint:
11+
htmlproofer --url-ignore "/localhost/,/172.17.8.101/,/172.20.0.113/,/slideshare.net/,/grpc.io/,/kiali.io/,/condiut.io/,/twitter.com/,/facebook.com/,/medium.com/,/google.com/,/jimmysong.io/" $(BOOK_OUTPUT)
712

813
.PHONY: serve
914
serve:
@@ -25,6 +30,7 @@ mobi:
2530
install:
2631
npm install gitbook-cli -g
2732
gitbook install
33+
gem install html-proofer
2834

2935
.PHONY: clean
3036
clean:

SUMMARY.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
* [云原生的定义](cloud-native/cloud-native-definition.md)
1010
* [CNCF - 云原生计算基金会简介](cloud-native/cncf.md)
1111
* [CNCF章程](cloud-native/cncf-charter.md)
12+
* [云原生的设计哲学](cloud-native/cloud-native-philosophy.md)
1213
* [Play with Kubernetes](cloud-native/play-with-kubernetes.md)
1314
* [快速部署一个云原生本地实验环境](cloud-native/cloud-native-local-quick-start.md)
1415
* [Kubernetes与云原生应用概览](cloud-native/kubernetes-and-cloud-native-app-overview.md)
@@ -204,6 +205,7 @@
204205
* [如何参与Istio社区及注意事项](usecases/istio-community-tips.md)
205206
* [Istio教程](usecases/istio-tutorial.md)
206207
* [Istio免费学习资源汇总](usecases/istio-tutorials-collection.md)
208+
* [深入理解Istio中的Sidecar注入与流量劫持](usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.md)
207209
* [Linkerd](usecases/linkerd.md)
208210
* [Linkerd 使用指南](usecases/linkerd-user-guide.md)
209211
* [Conduit](usecases/conduit.md)
@@ -214,6 +216,8 @@
214216
* [Envoy作为前端代理](usecases/envoy-front-proxy.md)
215217
* [Envoy mesh教程](usecases/envoy-mesh-in-kubernetes-tutorial.md)
216218
* [SOFAMesh](usecases/sofamesh.md)
219+
* [SOFAMesh中的Dubbo on x-protocol](usecases/dubbo-on-x-protocol-in-sofa-mesh.md)
220+
* [SOFAMosn](usecases/sofamosn.md)
217221
* [大数据](usecases/big-data.md)
218222
* [Spark standalone on Kubernetes](usecases/spark-standalone-on-kubernetes.md)
219223
* [运行支持Kubernetes原生调度的Spark程序](usecases/running-spark-with-kubernetes-native-scheduler.md)
@@ -252,6 +256,7 @@
252256
* [Kubernetes1.9更新日志](appendix/kubernetes-1.9-changelog.md)
253257
* [Kubernetes1.10更新日志](appendix/kubernetes-1.10-changelog.md)
254258
* [Kubernetes1.11更新日志](appendix/kubernetes-1.11-changelog.md)
259+
* [Kubernetes1.12更新日志](appendix/kubernetes-1.12-changelog.md)
255260
* [Kubernetes及云原生年度总结及展望](appendix/summary-and-outlook.md)
256261
* [Kubernetes与云原生2017年年终总结及2018年展望](appendix/kubernetes-and-cloud-native-summary-in-2017-and-outlook-for-2018.md)
257262
* [Kubernetes认证服务提供商(KCSP)说明](appendix/about-kcsp.md)

appendix/about-cka-candidate.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,6 @@
7070
- 排查工作节点(work node)故障
7171
- 排查网络故障
7272

73-
74-
> 参考[课程大纲](https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_V0.9.pdf)
75-
7673
## 考试说明和checklist
7774

7875
- 注册考试
@@ -139,8 +136,6 @@ kubectl get no −l name=hk8s−node−1 −−context=hk8s
139136
10. 取消和重订
140137
> 在预定考试日期前24小时外,取消或重订, 可以获得完整退费
141138
142-
> 参考 [CNCF_FAQ](https://www.cncf.io/certification/expert/faq/)
143-
144139
## 复习资料
145140

146141
- [Kubernetes-Learning-Resources](https://github.com/kubernauts/Kubernetes-Learning-Resources)

appendix/docker-best-practice.md

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@
55

66
## 环境配置
77

8-
[Docker1.13环境配置](https://jimmysong.io/docker-handbook/docs/docker_env)
8+
- [Docker1.13环境配置](https://jimmysong.io/docker-handbook/docs/docker_env)
99

10-
[docker源码编译](https://jimmysong.io/docker-handbook/docs/docker_compile)
10+
- [docker源码编译](https://jimmysong.io/docker-handbook/docs/docker_compile)
1111

1212

1313
## 网络管理
1414

1515
网络配置和管理是容器使用中的的一个重点和难点,对比我们之前使用的docker版本是1.11.1,docker1.13中网络模式跟之前的变动比较大,我们会花大力气讲解。
1616

17-
[如何创建docker network](https://jimmysong.io/docker-handbook/docs/create_network)
17+
- [如何创建docker network](https://jimmysong.io/docker-handbook/docs/create_network)
1818

19-
[Rancher网络探讨和扁平网络实现](https://jimmysong.io/docker-handbook/docs/rancher_network)
19+
- [Rancher网络探讨和扁平网络实现](https://jimmysong.io/docker-handbook/docs/rancher_network)
2020

21-
[swarm mode的路由网络](https://jimmysong.io/docker-handbook/docs/swarm_mode_routing_mesh)
21+
- [swarm mode的路由网络](https://jimmysong.io/docker-handbook/docs/swarm_mode_routing_mesh)
2222

23-
[docker扁平化网络插件Shrike(基于docker1.11)](https://github.com/TalkingData/shrike)
23+
- [docker扁平化网络插件Shrike(基于docker1.11)](https://github.com/TalkingData/shrike)
2424

2525
## 存储管理
2626

@@ -31,8 +31,6 @@
3131
- [torus](https://jimmysong.io/docker-handbook/docs/torus) **已废弃**
3232
- [flocker](https://jimmysong.io/docker-handbook/docs/flocker) ClusterHQ开发
3333

34-
35-
3634
## 日志管理
3735

3836
Docker提供了一系列[log drivers](https://docs.docker.com/engine/admin/logging/overview/),如fluentd、journald、syslog等。
@@ -41,13 +39,13 @@ Docker提供了一系列[log drivers](https://docs.docker.com/engine/admin/loggi
4139

4240
## 创建应用
4341

44-
官方文档:[Docker swarm sample app overview](https://docs.docker.com/engine/getstarted-voting-app/)
42+
- 官方文档:[Docker swarm sample app overview](https://docs.docker.com/engine/getstarted-voting-app/)
4543

46-
[基于docker1.13手把手教你创建swarm app](https://jimmysong.io/docker-handbook/docs/create_swarm_app)
44+
- [基于docker1.13手把手教你创建swarm app](https://jimmysong.io/docker-handbook/docs/create_swarm_app)
4745

48-
[swarm集群应用管理](https://jimmysong.io/docker-handbook/docs/swarm_app_manage)
46+
- [swarm集群应用管理](https://jimmysong.io/docker-handbook/docs/swarm_app_manage)
4947

50-
[使用docker-compose创建应用](https://jimmysong.io/docker-handbook/docs/docker_compose)
48+
- [使用docker-compose创建应用](https://jimmysong.io/docker-handbook/docs/docker_compose)
5149

5250
## 集群管理##
5351

@@ -60,17 +58,17 @@ Docker提供了一系列[log drivers](https://docs.docker.com/engine/admin/loggi
6058
- [Crane](https://github.com/Dataman-Cloud/crane):由数人云开源的基于swarmkit的容器管理软件,可以作为docker和go语言开发的一个不错入门项目
6159
- [Rancher](https://github.com/rancher/rancher):Rancher是一个企业级的容器管理平台,可以使用Kubernetes、swarm和rancher自研的cattle来管理集群。
6260

63-
[Crane的部署和使用](https://jimmysong.io/docker-handbook/docs/crane_usage)
61+
- [Crane的部署和使用](https://jimmysong.io/docker-handbook/docs/crane_usage)
6462

65-
[Rancher的部署和使用](https://jimmysong.io/docker-handbook/docs/rancher_usage)
63+
- [Rancher的部署和使用](https://jimmysong.io/docker-handbook/docs/rancher_usage)
6664

6765
## 资源限制
6866

69-
[内存资源限制](https://jimmysong.io/docker-handbook/docs/memory_resource_limit)
67+
- [内存资源限制](https://jimmysong.io/docker-handbook/docs/memory_resource_limit)
7068

71-
[CPU资源限制](https://jimmysong.io/docker-handbook/docs/cpu_resource_limit)
69+
- [CPU资源限制](https://jimmysong.io/docker-handbook/docs/cpu_resource_limit)
7270

73-
[IO资源限制](https://jimmysong.io/docker-handbook/docs/io_resource_limit)
71+
- [IO资源限制](https://jimmysong.io/docker-handbook/docs/io_resource_limit)
7472

7573
## 服务发现
7674

@@ -105,15 +103,15 @@ Docker提供了一系列[log drivers](https://docs.docker.com/engine/admin/loggi
105103

106104
## 业界使用案例
107105

108-
[京东从OpenStack切换到Kubernetes的经验之谈](https://jimmysong.io/docker-handbook/docs/jd_transform_to_kubernetes)
106+
- [京东从OpenStack切换到Kubernetes的经验之谈](https://jimmysong.io/docker-handbook/docs/jd_transform_to_kubernetes)
109107

110-
[美团点评容器平台介绍](https://jimmysong.io/docker-handbook/docs/meituan_docker_platform)
108+
- [美团点评容器平台介绍](https://jimmysong.io/docker-handbook/docs/meituan_docker_platform)
111109

112-
[阿里超大规模docker化之路](https://jimmysong.io/docker-handbook/docs/ali_docker)
110+
- [阿里超大规模docker化之路](https://jimmysong.io/docker-handbook/docs/ali_docker)
113111

114-
[TalkingData-容器技术在大数据场景下的应用Yarn on Docker](http://rootsongjc.github.io/projects/yarn-on-docker/)
112+
- [TalkingData-容器技术在大数据场景下的应用Yarn on Docker](https://jimmysong.io/posts/yarn-on-docker/)
115113

116-
[乐视云基于Kubernetes的PaaS平台建设](https://jimmysong.io/docker-handbook/docs/letv_docker)
114+
- [乐视云基于Kubernetes的PaaS平台建设](https://jimmysong.io/docker-handbook/docs/letv_docker)
117115

118116
## 资源编排
119117

@@ -123,14 +121,14 @@ Docker提供了一系列[log drivers](https://docs.docker.com/engine/admin/loggi
123121

124122
## 相关资源
125123

126-
[容器技术工具与资源](https://jimmysong.io/docker-handbook/docs/tech_resource)
124+
- [容器技术工具与资源](https://jimmysong.io/docker-handbook/docs/tech_resource)
127125

128-
[容器技术2016年总结](https://jimmysong.io/docker-handbook/docs/container_2016)
126+
- [容器技术2016年总结](https://jimmysong.io/docker-handbook/docs/container_2016)
129127

130128
## 关于
131129

132-
Author: [Jimmy Song](https://jimmysong.io/about)
130+
- Author:[Jimmy Song](https://jimmysong.io/about)
133131

134-
rootsongjc@gmail.com
132+
- Email:rootsongjc@gmail.com
135133

136134
更多关于**Docker****MicroServices****Big Data****DevOps****Deep Learning**的内容请关注[Jimmy Song's Blog](https://jimmysong.io),将不定期更新。

appendix/issues.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ kubelet启动时报错systemd版本不支持start a slice as transient unit。
3636

3737
[kubeadm init waiting for the control plane to become ready on CentOS 7.2 with kubeadm 1.6.1 #228](https://github.com/kubernetes/kubeadm/issues/228)类似。
3838

39-
另外有一个使用systemd管理kubelet的[proposal](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/kubelet-systemd.md)
40-
4139
## 4.kube-proxy报错kube-proxy[2241]: E0502 15:55:13.889842 2241 conntrack.go:42] conntrack returned error: error looking for path of conntrack: exec: "conntrack": executable file not found in $PATH
4240

4341
**导致的现象**
@@ -126,12 +124,6 @@ kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"templat
126124
- [Helm: Error: no available release name found - StackOverflow](https://stackoverflow.com/questions/43499971/helm-error-no-available-release-name-found)
127125
- [Helm 2.2.3 not working properly with kubeadm 1.6.1 default RBAC rules #2224](https://github.com/kubernetes/helm/issues/2224)
128126

129-
130-
131127
## 参考
132128

133-
[Persistent Volume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
134-
135-
[Resource Design Proposals](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/resources.md)
136-
137-
[Helm: Error: no available release name found]()
129+
- [Persistent Volume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Kubernetes1.12更新日志
2+
3+
该版本发布继续关注Kubernetes的稳定性,主要是内部改进和一些功能的毕业。该版本中毕业的功能有安全性和Azure的关键功能。此版本中还有两个毕业的值得注意的新增功能:Kubelet TLS Bootstrap和 Azure Virtual Machine Scale Sets(AVMSS)支持。
4+
5+
这些新功能意味着更高的安全性、可用性、弹性和易用性,可以更快地将生产应用程序推向市场。该版本还表明Kubernetes在开发人员方面日益成熟。
6+
7+
下面是该版本中的一些关键功能介绍。
8+
9+
## Kubelet TLS Bootstrap GA
10+
11+
我们很高兴地宣布[Kubelet TLS Bootstrap GA](https://github.com/kubernetes/features/issues/43)。在Kubernetes 1.4中,我们引入了一个API,用于从集群级证书颁发机构(CA)请求证书。此API的初衷是为kubelet启用TLS客户端证书的配置。此功能允许kubelet将自身引导至TLS安全集群。最重要的是,它可以自动提供和分发签名证书。
12+
13+
之前,当kubelet第一次运行时,必须在集群启动期间在带外进程中为其提供客户端凭据。负担是运营商提供这些凭证的负担。由于此任务对于手动执行和复杂自动化而言非常繁重,因此许多运营商为所有kubelet部署了具有单个凭证和单一身份的集群。这些设置阻止了节点锁定功能的部署,如节点授权器和NodeRestriction准入控制器。
14+
15+
为了缓解这个问题,[SIG Auth](https://github.com/kubernetes/community/tree/master/sig-auth)引入了一种方法,让kubelet生成私钥,CSR用于提交到集群级证书签署过程。v1(GA)标识表示生产加固和准备就绪,保证长期向后兼容。
16+
17+
除此之外,[Kubelet服务器证书引导程序和轮换](https://github.com/kubernetes/features/issues/267)正在转向测试版。目前,当kubelet首次启动时,它会生成一个自签名证书/密钥对,用于接受传入的TLS连接。此功能引入了一个在本地生成密钥,然后向集群API server发出证书签名请求以获取由集群的根证书颁发机构签名的关联证书的过程。此外,当证书接近过期时,将使用相同的机制来请求更新的证书。
18+
19+
## 稳定支持Azure Virtual Machine Scale Sets(VMSS)和Cluster-Autoscaler
20+
21+
Azure Virtual Machine Scale Sets(VMSS)允许您创建和管理可以根据需求或设置的计划自动增加或减少的同类VM池。这使您可以轻松管理、扩展和负载均衡多个VM,从而提供高可用性和应用程序弹性,非常适合可作为Kubernetes工作负载运行的大型应用程序。
22+
23+
凭借这一新的稳定功能,Kubernetes支持[使用Azure VMSS扩展容器化应用程序](https://github.com/kubernetes/features/issues/514),包括[将其与cluster-autoscaler集成的功能](https://github.com/kubernetes/features/issues/513)根据相同的条件自动调整Kubernetes集群的大小。
24+
25+
## 其他值得注意的功能更新
26+
27+
- [`RuntimeClass`](https://github.com/kubernetes/features/issues/585)是一个新的集群作用域资源,它将容器运行时属性表示为作为alpha功能发布的控制平面。
28+
29+
- [Kubernetes和CSI的快照/恢复功能](https://github.com/kubernetes/features/issues/177)正在作为alpha功能推出。这提供了标准化的API设计(CRD),并为CSI卷驱动程序添加了PV快照/恢复支持。
30+
31+
- [拓扑感知动态配置](https://github.com/kubernetes/features/issues/561)现在处于测试阶段,存储资源现在可以感知自己的位置。这还包括对[AWS EBS](https://github.com/kubernetes/features/issues/567)[GCE PD](https://github.com/kubernetes/features/issues/558)的beta支持。
32+
33+
- [可配置的pod进程命名空间共享](https://github.com/kubernetes/features/issues/495)处于测试阶段,用户可以通过在PodSpec中设置选项来配置pod中的容器以共享公共PID命名空间。
34+
35+
- [根据条件的taint节点](https://github.com/kubernetes/features/issues/382)现在处于测试阶段,用户可以通过使用taint来表示阻止调度的节点条件。
36+
37+
- Horizo​ntal Pod Autoscaler中的[任意/自定义指标](https://github.com/kubernetes/features/issues/117)正在转向第二个测试版,以测试一些其他增强功能。这项重新设计的Horizo​ntal Pod Autoscaler功能包括对自定义指标和状态条件的支持。
38+
39+
- 允许[Horizo​ntal Pod Autoscaler更快地达到适当大小](https://github.com/kubernetes/features/issues/591)正在转向测试版。
40+
41+
- [Pod的垂直缩放](https://github.com/kubernetes/features/issues/21)现在处于测试阶段,使得可以在其生命周期内改变pod上的资源限制。
42+
43+
- [通过KMS进行静态加密](https://github.com/kubernetes/features/issues/460)目前处于测试阶段。增加了多个加密提供商,包括Google Cloud KMS、Azure Key Vault、AWS KMS和Hashicorp Vault,它们会在数据存储到etcd时对其进行加密。
44+
45+
## 可用性
46+
47+
Kubernetes 1.12可以[在GitHub上下载](https://github.com/kubernetes/kubernetes/releases/tag/v1.12.0)。要开始使用Kubernetes,请查看这些[交互式教程](https://kubernetes.io/docs/tutorials/)。您也可以使用[Kubeadm](https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/)来安装1.12。
48+
49+
## 参考
50+
51+
- [Kubernetes 1.12: Kubelet TLS Bootstrap and Azure Virtual Machine Scale Sets (VMSS) Move to General Availability](https://kubernetes.io/blog/2018/09/27/kubernetes-1.12-kubelet-tls-bootstrap-and-azure-virtual-machine-scale-sets-vmss-move-to-general-availability/)

appendix/kubernetes-1.7-changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
- [Network Policy API](https://kubernetes.io/docs/concepts/services-networking/network-policies/) 提升为稳定版本。用户可以通过使用网络插件实现的网络策略来控制哪些Pod之间能够互相通信。
1616
- [节点授权](https://kubernetes.io/docs/admin/authorization/node/)和准入控制插件是新增加的功能,可以用于限制kubelet可以访问的secret、pod和其它基于节点的对象。
1717
- [加密的Secret](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/)和etcd中的其它资源,现在是alpha版本。
18-
- [Kubelet TLS bootstrapping](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/)现在支持客户端和服务器端的证书轮换。
18+
- Kubelet TLS bootstrapping 现在支持客户端和服务器端的证书轮换。
1919
- 由API server存储的[审计日志](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/)现在更具可定制性和可扩展性,支持事件过滤和webhook。它们还为系统审计提供更丰富的数据。
2020

2121
**有状态负载**

appendix/kubernetes-1.8-changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
Kubernetes1.8的[基于角色的访问控制(RBAC)](https://en.wikipedia.org/wiki/Role-based_access_control)成为stable支持。RBAC允许集群管理员[动态定义角色](https://kubernetes.io/docs/admin/authorization/rbac/)对于Kubernetes API的访问策略。通过[网络策略](https://kubernetes.io/docs/concepts/services-networking/network-policies/)筛选出站流量的Beta支持,增强了对入站流量进行过滤的现有支持。 RBAC和网络策略是强化Kubernetes内组织和监管安全要求的两个强大工具。
88

9-
Kubelet的传输层安全性(TLS)[证书轮换](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/)成为beta版。自动证书轮换减轻了集群安全性运维的负担。
9+
Kubelet的传输层安全性(TLS)证书轮换成为beta版。自动证书轮换减轻了集群安全性运维的负担。
1010

1111
## 聚焦工作负载支持
1212

0 commit comments

Comments
 (0)