Day 9 - Rancher 丛集管理指南 - 架设 K8s(下)

本文将於赛後同步刊登於笔者部落格

有兴趣学习更多 Kubernetes/DevOps/Linux 相关的资源的读者,欢迎前往阅读

更多相关科技的技术分享,欢迎追踪 矽谷牛的耕田笔记

对於 Kubernetes 与 Linux Network 有兴趣的可以参阅笔者的线上课程

前言

前篇文章探讨了 Rancher 其中一种安装 Kubernetes(RKE) 的方式,该方式会先透过 API 请求 Service Provider(Azure) 帮忙创建相关的 VM,接者於这些 VM 上面搭建一个符合需求的 RKE 丛集。

为了让简化整个设定过程,我们学到了如何透过 Cloud Credential 以及 Node Template 两种方式来事先解决繁琐的操作,接者真正创建 RKE 丛集时则使用 Node Template 与 RKE Template 两个方式让整个创建过程变得很简单,不需要填入太多资讯,只需要利用这两个 Template 的内容加上自行设计要多少个 VM 节点,这些节点要属於什麽身份以及该丛集最後要给哪个使用者/群组使用即可。

本篇文章将继续把剩下两种安装方式给走一遍,三种安装方式都玩过後会对 Rancher 的能力有更多的了解,同时也会为之後 Rancher Fleet 的使用先行搭建环境。

之前探讨使用者管理与部署时於系统中创建了三种不同群组的使用者,包含了 DEV, QA 以及 IT。而这两个章节探讨的三种部署方式其实刚好就会刚好拿来搭配这些不同的使用者,期望透过不同方式搭造出来的三套 RKE 丛集本身权限控管上就有不同的设定。

目标状况是三套丛集拥有的权限如下

  1. DEV 丛集 -> IT & DEV 可以使用
  2. QA 丛集 -> IT & QA 可以使用
  3. IT 丛集 -> IT 可以使用

基本上因为 IT 群组的使用者会被视为系统管理员,因此本身就有能力可以存取其他丛集,所以创建时只需要针对 DEV 以及 QA 两个丛集去设计。
实务上到底会如何设计取决於团队人数与分工状况,这边的设计单纯只是一个权限控管的示范,并不代表真实应用就需要这样做。

Existing Cluster

前篇文章探讨的是动态创建 VM 并且於搭建 RKE 丛集,与之相反的另外一种架设方式就是於一个已经存在的节点上去搭建 RKE 丛集。

这个安装方式大部分都会用於地端环境,部分使用者的地端环境没有 vSphere/Openstack 等专案可以帮忙自动创建 VM,这种情况下一台又一台的 bare-metal 机器就会采用这种方式来安装。

我先於我的 Azure 环境中创建两个 VM,想要用这两个 VM 搭建一个属於 QA 群组使用者的 RKE 丛集

上图中标示为 qa-rke{1,2} 的机器就是为了这个情况手动创建起来的。
准备好了相关 VM 之後,就切换到 Rancher 的介面去创建一个 RKE 丛集。

介面中选择非常简单,只有一个 Existing Nodes 可以选择,点进去後可以看到类似下方页面

与之前的安装方式不同,这边没有所谓的 Node Pool 的概念,毕竟是要安装到一个已存在的节点,所以没有 Node Pool 需要设定也是合理的。
这边我将该丛集分配给 QA 群组的使用者,令其为 Owner,拥有整个丛集的管理权限,同时下方继续使用先前设定好的 RKE 丛集。

一切完毕後点选 Next 到下一个页面,该页面才是真正安装的方式

该介面有三个地方要注意

  1. 最下方是安装的指令,实际上是到该节点上透过 Docker 的方式去运行一个 Rancher Agent 的容器,该容器会想办法跟安装 RKE 并且跟远方的 Rancher 注册以方便被管理
  2. 最上方两个区块都是用来调整该节点到底要於 RKE 丛集中扮演什麽角色,这些变动都会影响下方 Docker 指令
  3. 就如同先前安装一样,这边也需要选择当前节点到底要当 ETCD/Control Plane/Worker 等
  4. Show advanced options 选项打开可以看到的是 Labels/Taints 等相关设定

我透过上述介面设定了两种介面,分别是

  1. 单纯的 worker
  2. 全包,同时兼任 worker/etcd/controlplane

接者复制这些 docker 指令到事先准备好的 VM 上去执行

到两个机器上贴上指令後,就慢慢的等 Rancher 将整个 RKE 架设起来。

可以看到透过这种方式创建的丛集,其 Provider 会被设定成 Custom,跟之前创立的 Azure 有所需别。

点选该丛集名称进去後,切换到节点区块可以看到两台机器正在建立中,这边要特别注意,节点的 hostname 必须要不同,如果 hostname 一致的话会让 Rancher 搞混,所以使用 bare-metal 机器建立时千万要注意 hostname 不要冲突。

一切结束後,就可以於最外层的介面看到三个已经建立的丛集,一个是用来维护 Rancher 本身,两个则是给不同群组的 RKE 丛集。

Managed Kubernetes Service

接者来看最後一个安装方式,这个方式想要直接透过 Rancher 去创造 AKS 这种 Kubernetes 服务,并且安装完毕後将 Rancher 的相关服务部署进去,这样 Rancher 才有办法控管这类型的丛集。

回到丛集安装画面,这时候针对最下面的服务,预设情况下这边的选择比较少,但是如果有到 Tools->Driver 去将 Cluster Driver 给打开的话,这边就会出现更多的 Service Provider 可以选择。

根据我的环境,我选择了 Azure AKS,点选进去後就可以看到如下图的设定页面

进到画面後的第一个选项就是 Azure 相关的认证资讯,这边我认为是 Rancher 还没有做得很完善的部分,先前创建 Node Template 时使用的 Cloud Credential 这边没有办法二次使用,变成每次创建一个 AKS 丛集时都要重新输入一次相关的资讯,这部分我认为还是有点不方便。
不过仔细观察需要的资讯有些许不同,创造 Node Template 时不需要 Tenant ID,但是使用 AKS 却需要。有可能因为这些设定不同导致 Cloud Credential 这边就没有办法很轻松的共用。
不过作为使用者也是希望未来能够简化这些操作,否则每次创建都要翻找算是有点麻烦。

通过存取资讯验证後,就可以来到设定页面,因为这个是 AKS 丛集,因此并没有办法使用 RKE Template 来客制化内容,所有的设定内容都是跟 AKS 有关,因此不同的 K8S 服务提供的操作选项就不同。

一切准备就绪後,就可以看到最外层的丛集列表多出了一个全新的 Kubernetes 丛集,其 Provider 则是 Azure AKS。

此时观看 Azure AKS 的页面可以发现到也多了一个正在创建中的 AKS 丛集,名称 c-xxxx 就是 Rancher 创造的证明,每个 Rancher 管理的 Kubernetes 丛集都会有一个内部ID,都是 c-xxxx 的形式。

等待一段时间待节点全部产生完毕,就可以看到一个拥有三个节点的 AKS 丛集被创建了

最後到外层丛集介面可以看到目前有四个 K8S 丛集被 Rancher 管理,其中一个是管理 Rancher 本身,剩下三个则是新创立的 K8s 丛集。同时这三个丛集都分配给不同群组的使用者使用。

如果这时候用 QA 使用者登入,就只会看到一个丛集,整个运作的确有符合当初的设计。

丛集都创立完毕後,下一章节将来探讨如何使用 Rancher 的介面来管理 Kubernetes,以及 Rancher 介面还提供了哪些好用的功能可以让丛集管理员更加方便的去操作丛集。


<<:  Day09 - 用 Cloud Run 部属 Serverless 容器应用

>>:  【清新温泉饭店 - 新采自助百汇 Freshfields in Taichung】#新北市宣布9/9到9/15禁止内用

Day 01 - 前言

yo~ 原本写好了几个字 改一下主题就全清空拉 很QQ馁 不免俗的,这也是小女子第一次参加铁人赛 ...

【D30】结尾:佳肴上桌

本日程序码使用:d30.py 这边结合第29天的下单功能,以及第28天的制作组合单,让这个组合单的...

【Day 2】 Vim x Plugin x 准备主厨刀

tags: 铁人赛 vim macOS vundle plugin 概述 碎念时间 工欲善其事必先利...

Youtube API — 示范 Colaboratory来进行 Python 开发

「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的...

Day 01-前言

自我介绍 这是我第一次参加铁人赛,内容可能很菜,希望大家多多包涵 动机 因为平常满常使用其他人制作的...