Day 7 - Rancher 系统管理指南 - RKE Template

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

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

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

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

前言

前篇文章探讨如何透过 Rancher 整合既有的帐号管理系统,同时如何使用 Rancher 提供的 RBAC 来为不同的使用者与群组设定不同的权限。
本文将继续探讨从 Rancher 管理人员角度来看还有哪些功能是执得注意与使用的。

系统设定

当今天透过认证与RBAC等功能完成权限控管後,下一个部分要探讨的就是团队的运作流程。
Rancher 作为一个 Kubernetes 管理平台,最大的一个特色就是能够轻松地於各种架构下去安装一个 Kubernetes 丛集并且管理它,
虽然到现在为止我们还没有正式的示范如何创建丛集,但是可以先由下图看一下大概 Rancher 支援哪些不同类型的架构

图中分成四种不同类型,这四种类型又可以分成两大类

  1. 已经存在的 Kubernetes 丛集,请 Rancher 帮忙管理。
  2. 请 Rancher 帮忙创建一个全新的 Kubernetes 丛集并且顺便管理。

图中第一个类型就属於第一大类,这部分目前整合比较好的有 EKS 与 GKE
这意味者如果你有已经运行的 EKS/GKE 丛集,是有机会让 Rancher 帮忙管理,让团队可以使用一个共同的介面(Rancher)来管理所有的 Kubernetes 丛集。

图中剩下的(2,3,4)都属於第二大类,只是这三大类的安装方式有些不同,分别是

  1. 使用者要事先准备好节点, Rancher 会於这些节点上去创建 RKE 丛集
  2. Rancher 会透过 API 要求服务供应商去动态创建 VM,并且创建 VM 後会自动的建立起 RKE 丛集
  3. 针对部分有提供 Kubernetes 服务的业者, Rancher 也可以直接透过 API 去使用这些 Kubernetes 服务(AKS/EKS/GKE) 并且把 Rancher Agent 安装进去,接者就可以透过 Rancher 页面去管理。

这边点选第三类别的 Azure 作为一个范例来看一下,透过 RKE 安装 Kubernetes 会有什麽样的资讯需要填写

首先上图看到关於 Cluster Options 下有四大项,这四大项里面都问题都跟 Kubernetes 丛集,更精准的说是 RKE 有关

首先第一个类别就是 Kubernetes 的基本资讯,包含了

  1. RKE 的版本,版本跟 Kubernetes 版本是一致走向的。
  2. CNI 使用哪套,目前有 Flannel, Calico 以及 Canal。
  3. CNI 需不需要额外设定 MTU
  4. 该环境要不要启用一些 Cloud Provider 的功能,要的话还要填入一些机密资讯

往下看还有更多选项可以用,譬如该 RKE 创建时,所有用到的 Registry 是否要从一个 Private Registry 来抓取,这功能对某些团队来说会非常有用,因为部分团队会希望用到的所有 Container Image 都要有一份备份以免哪天 quay, docker.io 等出现问题导致整个安装失败。

因此如果团队事先将 RKE 用到的 Container Image 都复制一份到自己团队的 private container registry 的话,就可以打开这个功能让 Rancher 知道去哪边抓 Image。

後续则是更多的进阶选项,譬如説

  1. RKE 中预设要不要安装 Nginx 作为 Ingress Controller?
  2. 系统中的 NodePort 用到的范围多少?
  3. 是否要导入一组预设的 PodSecurityPolicy 来限制丛集内所有Pod的安全性规则
  4. Docker 有没有特别指定的版本
  5. etcd 要如何备份,要本地备份还是要透过 s3 将 etcd 上传
  6. 要不要定期透过 CIS 进行安全性相关的扫描?

可以看到上述的设定其实满多的,如果每次创建一个丛集都要一直输入一样的资讯难免会出错,同时有一些设定 IT 人员会有不同的顾虑与要求。为了让团队内的所有 RKE 丛集都可以符合团队的需求,Rancher 就有提供基於全面系统地 RKE Template.

RKE Template

RKE Template 的概念就是让系统人员与安全人员针对需求去规范 Kubernetes 的要求,所有使用者都必须要使用这个事先创立的 RKE Template 来创立 RKE 丛集。
透过这个方式有几个好处

  1. 使用者创立的所有 RKE 丛集都可以符合团队需求
  2. 使用者使用 Template 去创建 RKE 的话就可以省略那些不确定该怎麽填写的资讯,简化整个创造步骤
  3. Template 本身也是一个物件,所以 Rancher 前述提到的权限控管就可以针对 Template 去进行设定,譬如 DEV/QA 人员只能使用已经创建的 Template 来创立 RKE 丛集

以下是一些常见使用 RKE Template 的使用范例

  1. 系统管理人员强迫要求所有新创立的 RKE 丛集都只能使用事先创立好的 RKE Template
  2. 系统管理人员创建不同限制的 RKE Template,针对不同的使用者与群组给予不同的 RKE Template
  3. RKE Template 本身是有版本的概念,所以如果今天公司资安团队希望调整资安方面的使用,只需要更新 RKE Template 即可。所有使用到的使用者再进行 RKE Template 更新的动作即可

此外 RKE Template 内所有的设定都有一个覆盖的概念存在,创建该 RKE Template 时可以决定该设定是否能够被使用者覆盖,这对於某些很重要的设定来说非常有用。

以下是一个 RKE Template 创建的方式 (Tools->Template 进入)

图中最上方代表的是该 RKE Template 的名称与版本,同时每个 RKE Template 有很多个版本,更新的时候可以选择当前版本是否要作为当前 Template 的预设版本。

中间部分则是到底谁可以使用这个 RKE Template,里面可以针对使用者与群组去设定身份总共分成两个身份,分别是 User 以及 Owner。

  1. Owner: 符合这个身份的使用者可以执行 更新/删除/分享 这些关於 RKE Template 的设定,概念来说就是这个 RKE Template 的拥有者。
  2. User: 简单来说就是使用这个 RKE Template 的人,使用者再创建 RKE 丛集的时候可以从这些 Template 中去选择想要使用的 Template。

最下面的部分跟前述探讨安装 RKE 要使用的权限都差不多,唯一要注意的是每个选项旁边都有一个 "Allow user override?" 的选项,只要该选项没有打开,那使用者(User)使用时就不能覆盖这些设定。

实验

接下来针对 RKE Template 进行一个实验,该实验想到达到以下目的。

  1. IT 管理员创建一个 RKE Template,并且设定 DEV 群组的使用者可以使用
  2. DEV 群组的使用者可以创建 Cluster,但是被强迫只能使用 RKE Template 创造,并不是自己填写任何资讯。

为了达到这个目的,我们有三个步骤要做,分别是

  1. 透过 Rancher 的设定,强迫所有创建 RKE 丛集一定要使用 RKE Template,不得自行填写资讯。
  2. 创造一个 RKE Template,并且设定 DEV 群组的人是使用者,同时该 RKE Template 内让 Kubernetes 版本是一个可以被使用者覆盖的设定。
  3. 登入 DEV 使用者尝试创造 RKE 丛集,看看上述设定是否可以达到我们的需求。

首先到首页上方的 Setting,进去後搜寻 template-enforcement 就会找到类似下列这张图片的样子

预设状况下,该设定是 False,透过旁边的选项把它改成 True,该选项一打开後,所有新的 RKE 丛集都只能透过 RKE Template 来创建。

接者用 IT 人员登入作为一个系统管理员,创建一个如下的 RKE Template

中间部分表示任何属於 DEV 群组的人都可以使用这个 RKE Template,同时该 RKE Template 允许使用者去修改 Kubernetes 版本,其余部分都采用 RKE Template 的设定。

最後用 DEV 的身份登入 Rancher 并且尝试创造一个 RKE 丛集。
从下述画面可以观察到一些变化

  1. RKE Template 相关选项 "Use an existing RKE Template and revision" 被强迫打勾,这意味使用者一定要使用 RKE Template
  2. 选择了前述创造的 RKE Template 後就可以看到之前创造好的设定
  3. 只有 Kubernetes 的版本是可以调整的,其余部分如 CNI 等都是不能选择的。

注: 当透过 RKE Template 赋予权限给予 DEV 群组後, 群组那边的设定会被修改,这时候的 DEV 群组会被自动加上 "Creating new Clusters" 这个权限,范例如下

透过上述的范例操作成功地达到预期目标的设定,让团队内所有需要创建 RKE 丛集的使用者都必须要使用事先创造好的 RKE Template 来确保所有丛集都可以符合团队内的需求。


<<:  Day-7 Excel的贴上小技巧

>>:  Python 演算法 Day 8 - 理论基础 统计 & 机率

【Day21】补上data-test属性及判断Component和按钮及数字是否正确显示(╯✧∇✧)╯

基本上我们会用到 计数器这整个Component (div) 、显示数字 (span)、按钮(but...

【领域展开 21 式】 Menu 修炼持续进行中

继续大战 Menu day2 再怎样都要把 Sample 的页面浏览完成,才能知道要选哪些页面吧!徒...

Youtube Analytics API 教学 - 打破地理位置的界线 'country' 维度

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

[Day 05] 当我~们同在一起在17在17 (k-means 理论篇)

前言 有一说一,表情辨识到底还是个分类任务。 如果我说有一种演算法可以在不需要标签的情况下自动帮我们...

Day24 测试写起乃 - Guard

Guard 可以帮助你在开发时监听,并启用测试,让你在开发阶段可以顺便跑测试,当然我也是第一次玩XD...