作为一个管理跨多台主机的集合体应用程序的开源系统,源自Google十年容器化基础架构Borg的Kubernetes(下文简称K8s)提供了部署、维护和扩展应用程序的基本机制。因为K8s具有的轻量级,消耗资源小,开源,弹性伸缩和负载均衡等特点,使其已经成为了业内的通用PaaS平台。
介绍K8s架构,功能以及应用的文章可谓汗牛充栋,而本文尝试用国际化视角(I18n)来解读和剖析K8s。先来关注K8s的各部分组件,其中包括etcd(一个可信赖的分布式键值对存储服务,能否为整个分布式集群存储一些关键数据,协助分布式集群的正常运转,是K8s的持久化方案,存储K8s集群所有重要信息),kubectl(命令行接口,用于对 K8s 集群运行命令),scheduler(负责介绍任务,选择合适的节点进行任务分配),api server(是一切服务访问的入口,负责把来自scheduler的任务写入etcd中),replication controller(控制器,维护副本的期望数目),kuberlet(通过Container Runtime Interface和docker进行交互,操作docker来创建对应的容器,实现pod的生命周期管理),kube proxy(pod间的访问以及负载均衡,通过操作firewall来实现pod映射),pod和node等。
其他常用插件还包括了CoreDNS(为奇群中的SVC创建一个域名IP的对应关系解析),IngressController(官方只实现了四层代理,Ingress可以实现七层),Federation(提供一个跨集群中心多K8s统一管理功能),Prometheus(提供K8s的集群监控能力),ELK(提供K8s集群日志统一分析介入平台)和dashboard等。

考虑到这些K8s核心组件基本上已经对非英文字符的输入输出进行了限制,只接受a-zA-Z0-9这样的字符。即便没有限制的地方,也提出了行业规定对命名进行了统一。导致L1相关的检查点全部失效,与I18n的部分只剩下了图中红框所示的web UI,这其中又可分为两个派生的开源项目,分别是Octant(一个基于web的、高度可扩展的平台,供开发人员更好地理解Kubernetes集群的复杂性)和Harbor(一个开源的容器映像注册表,它使用基于角色的访问控制来保护映像,扫描映像中的漏洞,并将映像标记为受信任)。

本文从国际化(I18n)角度解析Kubernetes,探讨K8s组件如etcd、kubectl、scheduler等如何处理非英文字符,以及CoreDNS、IngressController、Federation等插件的I18n情况。重点分析了Octant和Harbor这两个项目的I18n实现,包括它们的语言、日期时间、数字格式以及UI设计。虽然存在局限,但总体对用户影响较低。
最低0.47元/天 解锁文章
1170

被折叠的 条评论
为什么被折叠?



