Day 30 - Summary

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

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

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

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

Rancher x Fleet 系列文到此告一个段落,这系列文中探讨四大概念,包含

  1. Rancher 基本知识
  2. Rancher 管理指南
  3. Rancher 应用程序部署
  4. GitOps 部署

Rancher 基本知识

Kubernetes 作为一个容器管理平台,这几年的声势不减反升,愈来愈多的团队想要尝试导入 Kubernetes 来替换应用程序部署的底层架构。Kubernetes 不是万灵丹,并不是所有的情境与环境都适合使用 Kubernetes,但是一旦经过评估确认想要使用 Kubernetes 後就会面临到下一个重大问题,就是该 Kubernetes 丛集要怎麽安装与管理?

从 On-Premise 到云端环境,从手工架设到使用付费 Kubernetes 服务都是选项之一,这种情况下团队需要花更多心力与时间去思考到底要走哪一个方式,毕竟每个方式都有不同的优缺点。

Rancher Labs 是一个针对 Kubernetes 生态系开发许多工具的强大团队,譬如

  1. Rancher Kubernetes Engine (RKE): 客制化的 Kubernetes 环境
  2. K3s: 轻量级的 Kubernetes 丛集,适合物联网环境
  3. Fleet: 针对 Kubernetes 的 GitOps 解决方案
  4. Longhorn: 持久性储存的解决方案

除了可以将现存的 Kubernetes 丛集让 Rancher 托管,更多的使用方式是让 Rancher 直接创造基於 RKE 版本的 Kubernetes 丛集,因为 RKE 丛集才可以真正发挥 Rancher 内的所有功能。

官方文章有专门的文章 Best Practices Guide 探讨如何针对生产环境部署一个最适当的 Rancher,接者如何透过这套 Rancher 来托管与创建不同的 Kubernetes 丛集。

透过 docker 可以很轻松的部署一个 Rancher,该环境非常适合测试与评估使用,但是如果要将 Rancher 给导入到正式环境的话,就会希望能够透过一套 RKE 丛集来维护 Rancher 服务。

Rancher 管理

Rancher 本身是个 Kubernetes 管理平台,因此其系统架构的设计有非常多层级的概念

  1. 管理 Rancher 服务本身的功能
  2. 管理 Kubernetes 丛集本身的功能
  3. 管理 Kubernetes Project 的功能

有了这些基本概念後去阅读官方文件就会更加理解到底官方文件的编排与含义。
此外,Rancher 基於 RBAC 的方式针对不同的使用者可以设定不同的权限。
使用者的认证除了预设的内建资料库外,也支援不同的外部服务,如 Azure/GSuite/Keycloak 等不同机制
因此使用 Rancher 时也要特别注意 RBAC 的设定,避免所有 Rancher 的使用者都共享一套 admin 的帐号来操作。

IaC

Rancher 本身除了透过 UI 大量操作外,也可以透过 Terraform/Pulumi 这些 IaC 工具来设定,因此一个比较好的模式是推荐使用这类型的工具来操作与管理 Rancher 本身,同时将这些操作与系统中的 CI/CD pipeline 给结合,这样所有的变更可会更加透明且也能够透过 CI/CD 的入口当作 Single Source of Truth 的概念

应用程序部署

透过 Rancher 准备好一套可用的 Kubernetes(RKE) 丛集後,接下来可以透过很多种方式去管理丛集上的应用程序。
譬如直接取得 Kubernetes 的 KUBECONFIG,拥有该档案的任何人都可以直接使用 helm/kubectl 等指令进行操作来安装各种 Kubernetes 的资源到目标丛集内。

如果想要妥善利用 Rancher 的设计的话,就可以考虑使用 Rancher 内的机制 (Catalog/App) 来安装应用程序,透过 Rancher 的机制来安装应用程序会於 UI 方面有更好的呈现与整合,同时使用上可以避免 Kubeconfig 的汇出,可以统一都使用 Rancher API Token 进行存取即可。

如果对於这种手动部署感到厌烦的,也可以尝试看看 Rancher v2.5 正式推出的 GitOps 解决方案, Rancher Fleet。
透过 Rancher Fleet 的帮助,管理者可以讲所有要部署的资源都存放到一个 Git 专案,同时 Fleet 支援数种不同的应用程序客制化。
除了常见的 Helm 及 Kustomize 外, Fleet 还支援将 Helm 与 Kustomize 一起使用,针对使用外部 Helm Chart 的情境特别好用。

不过 Rancher Fleet 目前还在茁壮发展中,因此使用上难免会遇到一些 Bug,这部分都非常欢迎直接到官方 Github 去回报问题,透过社群的帮忙官方才更有机会将这些问题给修复。


<<:  Day15 - Ptt换页及新增文章列表项目

>>:  DAY15 - 利用 firebase 的 Authentication 建立会员系统与页面串接

介绍影像辨识的处理流程 - Day 10

介绍影像辨识的处理流程 - Day 10 所有影像辨识的问题都会面临以下几个问题:图片中有几个要辨识...

JavaScript条件控制

程序的执行基本上是循序渐进的。程序的执行未必一定是由上到下,一行一行的执行。 有时内容会因为判断,或...

Day 9— 物品借用纪录系统 (1) 基础建构

今天我们要来制作新的专题:物品借用纪录微服务! 在学校,尤其是行政处室,最常出现的状况应该就是「借物...

Day1 - 前言

这里是大卫吴的铁人纪录 嘛~这是我第一次参赛 期许自己能完成30天的挑战 以下主题相关: 这次铁人的...

【Day12】建立React专案并安装Jest,来跑跑看第一个测试吧 -`д´-!

首先!! 我们要先来建立一个React专案 执行以下指令来建立专案 npx create-react...