为了账号安全,请及时绑定邮箱和手机立即绑定

利用 rke. 开发人员快速部署简单的k8s(kubernetes)集群

最近在开发k8s相关的工作,对k8s里边各种资源也是整了很久,基本才搞明白. 不过呢,一直以来,部署一个集群,到是一件非常费事儿的事情, 我了解的有

源码安装

kubedom安装

rke 安装


这三个里边,最简单的是rke, rke是基于rancher的一种部署方案,他是最简单的,但是如果没有人指导,光看官方网站,也是一样会踩坑. 我经过一番波折后,终于成功部署了一个简单的k8s集群, 所以将内容记录在这里,方便自己,也方便他人 (注意, 这个手记适合纯开发人员,如果你需要开发k8s相关的工作,比如创建pod,等,但并不需要深入了解k8s集群部署,你适合这个手记,因为这篇文章只会让你快速部署起来,里边省略了很多复杂的参数,所以如果你需要非常深入的cluster.yml配置,还需要去好好看看官网


ps 我看到很多部署方案 都要求先关闭防火墙. 我在部署的时候并没有关闭 不知道是否影响. 如果大家遇到卡壳 可是试试关闭防火墙


话不多说, 先说准备条件,首先, 你需要安装docker, 我们准备了2台机器, 1台作为master etcd节点, 另一台作为普通的worker, 无论是哪个节点,都需要先安装docker, docker的安装请参看官方:https://docs.docker.com/engine/install/ubuntu/   你可以根据自己的系统选择安装


接下来是下载 rke, rke是rancher提供的快速部署k8s集群的工具, 我直接给出官方文档地址,大家可以按照官方网站来部署,如果也遇到坑,就请跟着我的节奏来: https://rancher.com/docs/rke/latest/en/installation/#download-the-rke-binary


我们首先要选择适合的系统版本的rke, 在上边的地址已经给出了指明https://img3.sycdn.imooc.com/5ea92e290001d58708390211.jpg

根据自己系统的要求 去下载rke,rke下载地址: https://github.com/rancher/rke/releases


接下来 我们将下载的rke文件更改一下权限

sudo chmod +x rke.....

并且给他重命名并放到一个常用的bin目录下

mv rke_linux-amd64 rke && vm rke /bin/

这一步完成之后,就完成了很大一部分了. 接下来,需要大家在 两台机器上创建sshkey, 方法也很简单, 直接

ssh-keygen -t rsa 然后一直回车就可以了. 如果你的这两台机器上已经有了 就不用了. 


不过这里要注意 由于 集群需要ssh访问,所以需要把生成的 id_rsa.pub 中的信息(这是刚才生成的key, 默认是在 ~/.ssh/目录下), 在这个目录下如果需要创建 authorized_keys  文件,把需要访问的key信息添加到这里. 

https://img2.sycdn.imooc.com/5ea92f4d0001f2e107680171.jpg


举例来说: 我们有a b c 三台机器, a是创建集群的机器, b是master etcd节点, c是worker节点, 那么b和c的~/.ssh/下就要创建authorized_keys 并且把 a电脑的key追加到这里,否则我们是创建不成功的 (这里对于运维同学绝对轻松, 但对于纯开发同学来说,根本不知道,所以会造成之后无法创建集群的情况)


好, 按照上边说的, 我们都准备好后,我们可以在a机器里(a机器也就是我们刚才下载了 rke的机器) 里写我们cluster.yml rke要根据你的clusteryml来部署集群, 我们来看一个例子

https://img3.sycdn.imooc.com/5ea936e500014d4d07260630.jpg

nodes就是节点, 因为是yaml 我就不说结构了,这里定义了2个节点,第一个地址是1.1.1.1 端口是22, (因为是ssh访问)

接下来身份是 etcd 也兼顾了worker, 如果你的etcd不做worker 就可以去掉,然后user 是root 也就是使用root访问这台机器, 然后是socket地址,还有sshkeypath都是默认就好了. 另外 sshkeypath 可以统一设置在最外层,如果每个node节点的sshkeypath都一样的话,我这里就分别定义了

当完成书写之后 执行命令如下:

rke up --config cluster.yml

然后程序会开始跑,有可能因为网络等原因失败,没关系 如果失败了 rke remove --config cluster.yml 删除集群,然后重新执行rke up --config cluster.yml 


等集群部署成功后,在当前的文件夹下 会出现一个kube_config_cluster.yml 的文件,这就是你这个集群的kubeconfig,你可以使用python sdk 或者 go-client 去访问就可以了.

https://img1.sycdn.imooc.com/5ea93886000166a804330565.jpg


最后, 如果我们需要直接通过kubectl 来 调用k8s集群,只需要做一下事情(这里我使用的是ubuntu)\

1: apt install snapd   (snapd 是一个下载 更新 管理的 二进制工具, 我们用它来安装kubectl)

2: snap install kubectl --classic

这样就安装完成了. 接下来 我们退出当前的终端再次进入 执行 kubectl 发现已经安装成功了.

接下来把我们之前生成的kubeconfigyaml 放到当前的电脑的~/.kube/下 起名叫做 config

之后 我们调用 kubectl get ns 就会发现可以正常操作集群了


好了,完结 撒花, 希望对同学们有帮助~


················

欢迎关注课程:

《Django入门到进阶-更适合Python小白的系统课程》

  金职位 Python工程师2020版

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
231
获赞与收藏
731

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消