上了零信任的道?Kubernetes的小弟K0s

#说在前面
从去年10月份以后,每次和一些安全厂商的销售、售前朋友们交流,他们总是在跟我说“零信任”和“零信任架构”这两个词,说什么零信任远程访问比传统VPN更安全。我当时在想,天哪!这个世界都肿么了,零信任不就是不信任了么。

其实,后来经过专家指点才明白,所谓零信任是一种战略性网络安全模型,是在保护现代数字业务环境,数字化环境越来越多会包括公有云、私有云、SaaS应用以及DevOps等。
零信任的主要目标是减轻大多数组织运作的现代化环境中网络攻击的风险,实施零信任远程访问没有单一的解决方案,有效的零信任策略组合是需要很多种现有技术和方法,例如多因素身份验证 (MFA)、身份和访问管理 (IAM)等。
为了跟随这波零信任的潮流,IT业界很多厂商或者开源的领导者纷纷做起了“零“的买卖,其中就包括Google开源的容器资源编排集群管理系统Kubernetes(K8s)的小弟K0(是零不是大写O)s;单听K0s这个名字小伙伴们就明白了,这是上了零信任的道,顺应潮流,大笔一挥,定义此名;S0,今天,我们唠一下K0s,看有哪些差异和未来如何支棱起来进行部署使用。
# 什么是K0s
k0s 可以认为是一个下游(UpStream)的 Kubernetes 发行版,简易、稳定且经过认证的 Kubernetes 发行版,是由云计算服务供应商Mirantis推出了轻量Kubernetes发布版k0s,这个版本强调简单性与强健性,无论是本地端部署,甚至是大规模Kubernetes集群等,k0s可满足各种工作负载的需求。

K0s提供了构建 Kubernetes 集群所需的所有内容,预先配置了所有所需的功能,下面是一个Demo:
# 属于K0s的标签

这张图片是UP楠哥从K0s的官方网站进行贴去拼接成为一张图片,不难看出,K0s设计的初衷和目的,正是和我们目前的云环境紧密贴合,So,简单、经过Kubernetes认证的、为On-premises(本地数据中心环境)、Bare-Metal(裸金属主机环境)、Private-Cloud(私有云环境)、Public-Cloud(收电费样式的公有云环境)、Hybrid-Cloud(跟馄饨一样的混合云环境)以及Edge(边缘环境)等而生的,可以快速部署大规模容器集群。
# Kubernetes和K0s的差异
与原生 Kubernetes 相比,k0s 并未阉割大量 Kubernetes 功能;k0s 主要是把Cloud Provider这部分功能阉割掉了,当Kubernetes集群运行在云平台内部时,Cloud Provider使得Kubernetes可以直接利用云平台实现持久化卷、负载均衡、网络路由、DNS解析以及横向扩展等功能,除此之外,K0s其他功能与原生 Kubernetes 是基本相同的。
根据官方的解释,之所以使用k0s中使用零这个数字,是有许多意义。k0s最重要的是零摩擦的特性,尽可能降低k0s安装和执行Kubernetes的复杂性;在短短的几分钟内,就能够创建新的Kubernetes集群,可以让没有Kubernetes经验或是专业知识的小伙伴们,也能简单开始使用。并且使用可视化功能,以图形接口进行控制Kubernetes集群,从而降低其学习成本,拉近了其距离,形成所谓”零”距离学习。
k0s 自行编译 Kubernetes 源码生成 Kubernetes 二进制文件,然后在安装后将二进制文件释放到宿主机再启动;这种情况下所有功能几乎与原生 Kubernetes 没有差异。
#K0s的功能描述

从K0s的官方网站关于其功能说明,可以看出,其功能包括:
单个静态二进制
Kubernetes 1.19
容器化的控制平面存储选项:
SQLite(集群内)
etcd(集群内,托管,默认)
MySQL(外部)
PostgreSQL(外部)
CNI提供者
Calico 3.16(默认)
自定义(自带)
控制平面隔离:
完全隔离(默认)
受污染的工作节点
控制平面-节点通信
Konnectivity服务(默认)
CoreDNS
指标服务器0.3
辅助节点的自定义角色、配置文件
#写在最后
通过今天唠了一下K0s的方方面面,小伙伴们应该会对K0s有一个初步的认知,知道了为啥要有这玩意儿,可以说K0s为还没有深入学习容器、微服务或者说还在传统IAAS工作范围里晃荡,想要深入到PAAS、容器云的小伙伴们提供了好的学习使用工具。后面,UP楠哥会给大家继续分享关于K0s的诸如安装、扩展功能、插件部署、组件参数调整以及HA负载等功能的使用。