修复yaml文件地址链接
parent
c9afe075bb
commit
6c8ebc16e2
18
README.md
18
README.md
|
@ -1,24 +1,24 @@
|
|||
# Kubernetes Handbook
|
||||
|
||||
[Kubernetes](http://kubernetes.io) 是 Google 基于 [Borg](https://research.google.com/pubs/pub43438.html) 开源的容器编排调度引擎,作为 [CNCF](http://cncf.io)(Cloud Native Computing Foundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,它将自动得将系统达到和维持在这个状态。
|
||||
[Kubernetes](http://kubernetes.io)是Google基于[Borg](https://research.google.com/pubs/pub43438.html)开源的容器编排调度引擎,作为[CNCF](http://cncf.io)(Cloud Native Computing Foundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,kubernetes可以帮你将系统自动得达到和维持在这个状态。
|
||||
|
||||
本书记录了本人从零开始学习和使用 Kubernetes 的心路历程,着重于经验分享和总结,同时也会有相关的概念解析,希望能够帮助大家少踩坑,少走弯路。
|
||||
本书记录了本人从零开始学习和使用Kubernetes的心路历程,着重于经验分享和总结,同时也会有相关的概念解析,希望能够帮助大家少踩坑,少走弯路。
|
||||
|
||||
在写作本书时,安装的所有组件、所用示例和操作等皆基于 **Kubernetes1.6.0** 版本。
|
||||
在写作本书时,安装的所有组件、所用示例和操作等皆基于**Kubernetes1.6.0** 版本。
|
||||
|
||||
[文章目录](SUMMARY.md)
|
||||
|
||||
GitHub 地址:https://github.com/rootsongjc/kubernetes-handbook
|
||||
|
||||
Gitbook 在线浏览:http://jimmysong.io/kubernetes-handbook/
|
||||
Gitbook 在线浏览:https://jimmysong.io/kubernetes-handbook/
|
||||
|
||||
## 如何使用本书
|
||||
|
||||
**在线浏览**
|
||||
|
||||
访问 http://jimmysong.io/kubernetes-handbook/
|
||||
访问 https://jimmysong.io/kubernetes-handbook/
|
||||
|
||||
**注意:文中涉及的配置文件和代码链接在网页中将无法访问,请下载 github 源码后,在 Markdown 编辑器中打开,点击链接将跳转到你的本地目录,推荐使用 [typora](www.typorai.o),或者直接登录 [github](https://github.com/rootsongjc/kubernetes-handbook) 查看。**
|
||||
**注意:文中涉及的配置文件和代码链接在网页中将无法访问,请下载GitHub源码后,在Markdown编辑器中打开,点击链接将跳转到你的本地目录,推荐使用[typora](www.typorai.o),或者直接登录[github](https://github.com/rootsongjc/kubernetes-handbook) 查看。**
|
||||
|
||||
**本地查看**
|
||||
|
||||
|
@ -30,7 +30,7 @@ Gitbook 在线浏览:http://jimmysong.io/kubernetes-handbook/
|
|||
|
||||
**下载 PDF/ePub/Mobi 格式文档本地查看**
|
||||
|
||||
访问 [gitbook](https://www.gitbook.com/book/rootsongjc/kubernetes-handbook/details) 可以看到下载地址,可以下载根据最新文档生成的 **PDF/ePub/Mobi** 格式文档(文档的注脚中注明了更新时间),同时也可以直接在 gitbook 中阅读,不过 gitbook 不太稳定打开速度较慢,建议大家直接在 http://jimmysong.io/kubernetes-handbook/ 浏览。
|
||||
访问 [gitbook](https://www.gitbook.com/book/rootsongjc/kubernetes-handbook/details) 可以看到下载地址,可以下载根据最新文档生成的 **PDF/ePub/Mobi** 格式文档(文档的注脚中注明了更新时间),同时也可以直接在 gitbook 中阅读,不过 gitbook 不太稳定打开速度较慢,建议大家直接在 https://jimmysong.io/kubernetes-handbook/ 浏览。
|
||||
|
||||
**生成 pdf**
|
||||
|
||||
|
@ -70,11 +70,11 @@ pandoc --latex-engine=xelatex --template=pm-template input.md -o output.pdf
|
|||
|
||||
### 提 issue
|
||||
|
||||
如果你发现文档中的错误,或者有好的建议,不要犹豫,欢迎 [提交issue](https://github.com/rootsongjc/kubernetes-handbook/issues/new)。
|
||||
如果你发现文档中的错误,或者有好的建议、不明白的问题、不要犹豫,欢迎[提交issue](https://github.com/rootsongjc/kubernetes-handbook/issues/new)。
|
||||
|
||||
### 发起 Pull Request
|
||||
|
||||
当你发现文章中明确的错误或者逻辑问题,在你自己的 fork 的分支中,创建一个新的 branch,修改错误,push 到你的 branch,然后在 [提交issue](https://github.com/rootsongjc/kubernetes-handbook/issues/new) 后直接发起 Pull Request。
|
||||
当你发现文章中明确的错误或者逻辑问题,在你自己的fork的分支中,创建一个新的branch,修改错误,push 到你的branch,然后在[提交issue](https://github.com/rootsongjc/kubernetes-handbook/issues/new) 后直接发起Pull Request。
|
||||
|
||||
### 贡献文档
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
- Namespace
|
||||
- Service
|
||||
- Volume
|
||||
- Persistent Volume
|
||||
- PersistentVolume
|
||||
- Deployment
|
||||
- Secret
|
||||
- StatefulSet
|
||||
|
@ -18,13 +18,23 @@
|
|||
- Job
|
||||
- CronJob
|
||||
- SecurityContext
|
||||
- Resource Quota
|
||||
- Horizontal Pod Autoscaling
|
||||
- ResourceQuota
|
||||
- LimitRange
|
||||
- HorizontalPodAutoscaling
|
||||
- Ingress
|
||||
- ConfigMap
|
||||
- Label
|
||||
- ThirdPartyResources
|
||||
|
||||
我将它们简单的分类为以下几种资源对象:
|
||||
|
||||
| 类别 | 名称 |
|
||||
| :--- | ---------------------------------------- |
|
||||
| 资源对象 | Pod、ReplicaSet、ReplicationController、Deployment、StatefulSet、DaemonSet、Job、CronJob、HorizontalPodAutoscaling |
|
||||
| 配置对象 | Node、Namespace、Service、Secret、ConfigMap、Ingress、Label、ThirdPartyResource、 ServiceAccount |
|
||||
| 存储对象 | Volume、Persistent Volume |
|
||||
| 策略对象 | SecurityContext、ResourceQuota、LimitRange |
|
||||
|
||||
## 理解 kubernetes 中的对象
|
||||
|
||||
在 Kubernetes 系统中,*Kubernetes 对象* 是持久化的条目。Kubernetes 使用这些条目去表示整个集群的状态。特别地,它们描述了如下信息:
|
||||
|
|
|
@ -27,7 +27,7 @@ Kubernetes官方提供了EFK的日志收集解决方案,但是这种方案并
|
|||
|
||||
该方案在扩展性、个性化、部署和后期维护方面都能做到均衡,因此选择该方案。
|
||||
|
||||
![logstash日志收集架构图](../images/filebeat-log-collector.png)
|
||||
![filebeat日志收集架构图](../images/filebeat-log-collector.png)
|
||||
|
||||
我们创建了自己的filebeat镜像。创建过程和使用方式见https://github.com/rootsongjc/docker-images
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ $ ls *.yaml
|
|||
dashboard-controller.yaml dashboard-service.yaml dashboard-rbac.yaml
|
||||
```
|
||||
|
||||
已经修改好的 yaml 文件见:[dashboard](../manifests/dashboard)
|
||||
已经修改好的 yaml 文件见:[../manifests/dashboard](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/dashboard)
|
||||
|
||||
由于 `kube-apiserver` 启用了 `RBAC` 授权,而官方源码目录的 `dashboard-controller.yaml` 没有定义授权的 ServiceAccount,所以后续访问 `kube-apiserver` 的 API 时会被拒绝,web中提示:
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ es-controller.yaml es-service.yaml fluentd-es-ds.yaml kibana-controller.yaml
|
|||
|
||||
同样EFK服务也需要一个`efk-rbac.yaml`文件,配置serviceaccount为`efk`。
|
||||
|
||||
已经修改好的 yaml 文件见:[EFK](../manifests/EFK)
|
||||
已经修改好的 yaml 文件见:[../manifests/EFK](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/EFK)
|
||||
|
||||
|
||||
## 配置 es-controller.yaml
|
||||
|
|
|
@ -18,7 +18,7 @@ grafana-deployment.yaml grafana-service.yaml heapster-deployment.yaml heapste
|
|||
|
||||
我们自己创建了heapster的rbac配置`heapster-rbac.yaml`。
|
||||
|
||||
已经修改好的 yaml 文件见:[heapster](../manifests/heapster/)
|
||||
已经修改好的 yaml 文件见:[../manifests/heapster](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/heapster/)
|
||||
|
||||
|
||||
## 配置 grafana-deployment
|
||||
|
|
|
@ -32,7 +32,7 @@ kubedns-controller.yaml
|
|||
kubedns-svc.yaml
|
||||
```
|
||||
|
||||
已经修改好的 yaml 文件见:[dns](../manifests/kubedns)
|
||||
已经修改好的 yaml 文件见:[../manifests/dns](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/kubedns)
|
||||
|
||||
## 系统预定义的 RoleBinding
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ Kubernetes中应用的监控架构如图:
|
|||
|
||||
我们在kubernetes集群上使用standalone方式安装,详情参考[Installing Weave Scope](https://www.weave.works/docs/scope/latest/installing/#k8s)。
|
||||
|
||||
使用[scope.yaml](../manifests/weave/scope.yaml)文件安装scope,该服务安装在`kube-system` namespace下。
|
||||
使用[scope.yaml](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/weave/scope.yaml)文件安装scope,该服务安装在`kube-system` namespace下。
|
||||
|
||||
```Bash
|
||||
$ kubectl apply -f scope.yaml
|
||||
|
|
|
@ -38,7 +38,7 @@ Deployment同样为Kubernetes的一个核心内容,主要职责同样是为了
|
|||
|
||||
我们来创建一个特别简单的web服务,当你访问网页时,将输出一句版本信息。通过区分这句版本信息输出我们就可以断定升级是否完成。
|
||||
|
||||
所有配置和代码见[manifests/test/rolling-update-test](manifests/test/rolling-update-test)目录。
|
||||
所有配置和代码见[../manifests/test/rolling-update-test](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/test/rolling-update-test)目录。
|
||||
|
||||
**Web服务的代码main.go**
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ Ingress Controller 实质上可以理解为是个监视器,Ingress Controller
|
|||
|
||||
[Traefik](https://traefik.io/)是一款开源的反向代理与负载均衡工具。它最大的优点是能够与常见的微服务系统直接整合,可以实现自动化动态配置。目前支持Docker, Swarm, Mesos/Marathon, Mesos, Kubernetes, Consul, Etcd, Zookeeper, BoltDB, Rest API等等后端模型。
|
||||
|
||||
以下配置文件可以在[kubernetes-handbook](https://github.com/rootsongjc/kubernetes-handbook)GitHub仓库中的[manifests/traefik-ingress/](../manifests/traefik-ingress/)目录下找到。
|
||||
以下配置文件可以在[kubernetes-handbook](https://github.com/rootsongjc/kubernetes-handbook)GitHub仓库中的[../manifests/traefik-ingress/](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/traefik-ingress/)目录下找到。
|
||||
|
||||
**创建ingress-rbac.yaml**
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# 使用Ceph做持久化存储创建MySQL集群
|
||||
|
||||
本文中用到的 yaml 文件可以在 [../manifests/mariadb-cluster](../manifests/mariadb-cluster) 目录下找到。
|
||||
本文中用到的 yaml 文件可以在 [../manifests/mariadb-cluster](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/mariadb-cluster) 目录下找到。
|
||||
|
||||
下面我们以部署一个高可用的 MySQL 集群为例,讲解如何使用 Ceph 做数据持久化,其中使用 StorageClass 动态创建 PV,Ceph 集群我们使用 kubernetes 集群外部的已有的集群,我们没有必要重新部署了。
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ $ gluster volume set k8s-volume performance.write-behind-window-size 1024MB
|
|||
|
||||
官方的文档见:https://github.com/kubernetes/kubernetes/tree/master/examples/volumes/glusterfs
|
||||
|
||||
以下用到的所有yaml和json配置文件可以在[glusterfs](manifests/glusterfs)中找到。注意替换其中私有镜像地址为你自己的镜像地址。
|
||||
以下用到的所有yaml和json配置文件可以在[../manifests/glusterfs](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/glusterfs)中找到。注意替换其中私有镜像地址为你自己的镜像地址。
|
||||
|
||||
|
||||
## kubernetes安装客户端
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# 使用Prometheus监控kubernetes集群
|
||||
|
||||
我们使用 Giantswarm 开源的 [kubernetes-promethues](https://github.com/giantswarm/kubernetes-prometheus) 来监控 kubernetes 集群,所有的 YAML 文件可以在 [manifests/prometheus](../manifests/prometheus) 目录下找到。
|
||||
我们使用 Giantswarm 开源的 [kubernetes-promethues](https://github.com/giantswarm/kubernetes-prometheus) 来监控 kubernetes 集群,所有的 YAML 文件可以在 [../manifests/prometheus](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/prometheus) 目录下找到。
|
||||
|
||||
需要用到的镜像有:
|
||||
|
||||
|
|
Loading…
Reference in New Issue