Skip to content

Commit

Permalink
coding
Browse files Browse the repository at this point in the history
  • Loading branch information
liuyi02 committed Jan 13, 2018
1 parent dd585d3 commit d893cfb
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 6 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
  对新手来说想要搭建一个完整的k8s集群还是比较难的,至少我第一次搭建的时候感觉就够复杂的,最正规的k8s集群构建方式是使用kube-admin,是官网正品,也是官方推荐的安装方式,执行一条命令,基本所有的事情都搞定,非常方便快捷,但前提是必须科学上网。但相信大部分同学都还是绿色的上网的环境。特别是你用来安装k8s的服务器,绝大部分是不具备科学上网的能力的。
  正是由于这个问题,社区也出现了非常多的自研的部署方案,经过一波波的迭代,也涌现了一些比较成熟的方案,像:tectonic-installer,kubespray,kismatic
即便是这些方案经过了时间的考验,他们也有各自的问题,首先就是不是太适合新手使用,即便安装过程的问题你都可以解决,安装完成后整个节点对你来说还是一个黑盒,不了解内部的模块和运行机制,当然使用kube-admin也会有同样的问题。还有就是有些方案本身的学习曲线就很高,有的不够灵活,想特殊配置的地方可能无法实现,还有是社区的力量有限,对于新功能的支持,他们的更新速度和支持的成熟度都不太好。
  这篇文章的目的就是让大家可以在绿色的网络环境下,愉快的安装k8s集群。一步步的手动安装,虽然过程有些繁琐,但这更有助于我们对k8s组件的理解,在集群出现问题的时候也更容易分析、定位。为了让各位新同学对kubernetes有一个良好的第一印象(如果让你们觉得kubernetes太太太复杂就不好了)我们尽量让部署过程简单,在初次安装时剥离了所有的认证和授权部分,并且把非必须组件放到最后。这样还可以让大家更容易抓住kubernetes的核心部分,把注意力集中到核心组件及组件的联系,从整体上把握kubernetes的运行机制。(当然后面我们还是会学习如何把认证授权部分加回来滴~
  为了避免重复的操作和配置,我们也会引用一些脚本来帮我们做一些繁杂的工作,不过大家不用担心,我们会让大家知道脚本每一步都帮我们做了什么,即使你对脚本并不熟悉也会对k8s的整个搭建过程做到心中有数。
  本项目的主要目的就是让大家可以在绿色的网络环境下,愉快的安装k8s集群。一步步的手动安装,虽然过程有些繁琐,但这更有助于我们对k8s组件的理解,在集群出现问题的时候也更容易分析、定位。为了让各位新同学对kubernetes有一个良好的第一印象(如果让你们觉得kubernetes太太太复杂就不好了)我们尽量让部署过程简单,在初次安装时剥离了所有的认证和授权部分,并且把非必须组件放到最后。这样还可以让大家更容易抓住kubernetes的核心部分,把注意力集中到核心组件及组件的联系,从整体上把握kubernetes的运行机制。(当然后面我们还是会学习如何把认证授权部分加回来滴~
  为了避免重复的操作和配置,我们也会引用一些脚本来帮我们做一些繁杂的工作,不过大家不用担心,我们会让大家知道脚本每一步都帮我们做了什么,即使你对脚本并不熟悉也会对k8s的整个搭建过程做到心中有数。
  当然除了环境搭建,我们还穿插了kubernetes的实践操作,从最简单的pod,deployments到service,到kube-dns。从使用命令到使用配置文件。了解熟悉了kubernetes的重要功能后,我们尝试把之前开发的微服务部署到kubernetes集群中。

## [一、预先准备环境][1]
## [二、基础集群部署 - kubernetes-simple][2]
Expand Down
4 changes: 2 additions & 2 deletions docs/1-pre.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ kubernetes的安装有几种方式,不管是kube-admin还是社区贡献的部
> 同样一个功能使用二进制文件提供的服务,也可以选择使用镜像的方式。就像nginx,像mysql,我们可以使用安装版,搞一个可执行文件运行起来,也可以使用它们的镜像运行起来,提供同样的服务。kubernetes也是一样的道理,二进制文件提供的服务镜像也一样可以提供。
从上面的三种方式中其实使用镜像是比较优雅的方案,容器的好处自然不用多说。但从初学者的角度来说容器的方案会显得有些复杂,不那么纯粹,会有很多容器的配置文件以及关于类似二进制文件提供的服务如何在容器中提供的问题,容易跑偏。
所以我们这里使用二进制的方式来部署。二进制文件已经这里备好,大家可以打包下载,把下载好的文件放到每个节点上,放在哪个目录随你喜欢,**放好后最好设置一下环境变量$PATH**,方便后面可以直接使用命令。(科学上网的同学也可以自己去官网找找)
####[下载地址][2] (kubernetes 1.9.0版本)
所以我们这里使用二进制的方式来部署。二进制文件已经这里备好,大家可以打包下载,把下载好的文件放到每个节点上,放在哪个目录随你喜欢,**放好后最好设置一下环境变量$PATH**,方便后面可以直接使用命令。(科学上网的同学也可以自己去官网找找)
####[下载地址(kubernetes 1.9.0版本)][2]

## 5. 准备配置文件(所有节点)
上一步我们下载了kubernetes各个组件的二进制文件,这些可执行文件的运行也是需要添加很多参数的,包括有的还会依赖一些配置文件。现在我们就把运行它们需要的参数和配置文件都准备好。
Expand Down
11 changes: 10 additions & 1 deletion docs/3-kubernetes-with-ca.md
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,9 @@ $ vimdiff kubernetes-simple/worker-node/kube-proxy.service kubernetes-with-ca/wo
$ cp ~/kube-cfgs/target/worker-node/kube-proxy.service /lib/systemd/system/
$ systemctl daemon-reload

#安装依赖软件
$ apt install conntrack

#启动服务
$ service kube-proxy start
#查看日志
Expand All @@ -477,14 +480,20 @@ $ vimdiff kubernetes-simple/services/kube-dns.yaml kubernetes-with-ca/services/k
#### 12.2 创建kube-dns
```bash
$ kubectl create -f ~/kube-cfgs/target/services/kube-dns.yaml
#看看启动是否成功
$ kubectl -n kube-system get pods
```

## 13. 再试牛刀
终于,安全版的kubernetes集群我们部署完成了。
下面我们使用新集群先温习一下之前学习过的命令,然后再认识一些新的命令,新的参数,新的功能。同样,具体内容请看[视频教程][3]~






[1]: https://www.zhihu.com/question/33645891/answer/57721969
[2]: http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

[3]: https://www.视频制作中敬请期待.com

2 changes: 1 addition & 1 deletion kubernetes-with-ca/master-node/kube-apiserver.service
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ ExecStart={{BIN_PATH}}/kube-apiserver \
--tls-cert-file=/etc/kubernetes/ca/kubernetes/kubernetes.pem \
--tls-private-key-file=/etc/kubernetes/ca/kubernetes/kubernetes-key.pem \
--client-ca-file=/etc/kubernetes/ca/ca.pem \
--service-account-key-file=/etc/kubernetes/ca/kubernetes/kubernetes-key.pem \
--service-account-key-file=/etc/kubernetes/ca/ca-key.pem \
--etcd-cafile=/etc/kubernetes/ca/ca.pem \
--etcd-certfile=/etc/kubernetes/ca/kubernetes/kubernetes.pem \
--etcd-keyfile=/etc/kubernetes/ca/kubernetes/kubernetes-key.pem \
Expand Down

0 comments on commit d893cfb

Please sign in to comment.