04 K8S 之生态系统
Kubernetes 是一个支持弹性运行的分布式系统框架,是一种支撑其他平台的平台型基础设施,可以帮助用户在生产环境中依托容器实施的基础架构。Kubernetes 的本质在于实现操作任务自动化,包括应用扩展、故障转移和部署模式等,因而它能代替用户执行大部分烦琐的操作任务,减轻用户负担,降低出错的概率。
以应用为中心的 Kubernetes 本身并未直接提供一套完整的“开箱即用”的应用管理体系,需要基础设施工程师基于云原生社区和生态的实际需求手动构建。换句话说,在典型的生产应用场景中,Kubernetes 还需要同网络、存储、遥测(监控和日志)、镜像仓库、负载均衡器、CI/CD 工具链及其他服务整合,以提供完整且 API 风格统一的基础设施平台。
Docker Registry 和工件仓库:通过 Harbor 工件仓库、Docker Registry 等项目实现。
网络:借助 Flannel、Calico 或 WeaveNet 等项目实现。
遥测:借助 Prometheus 和 EFK 栈(或者由 Promtail、Loki 和 Grafana 组成的 PLG 栈)等项目实现。
容器化工作负载:借助 Kubernetes 内置的工作负载控制器资源,甚至由社区扩展而来的各种 Operator 完成应用的自动化编排,包括自愈和自动扩缩容等;而便捷的应用打包则要借助 Helm 或 Kustomize 等项目完成。
基于容器编排系统的 CI/CD:借助 Jenkins、Tekton、Flagger 或 Kepton 等项目,甚至遵循 GitOps 规范实现应用交付、发布和部署等。
Kubernetes 集群主要由 Master 和 Node 两类节点组成。
Master 主要包含 apiserver、controller-manager、scheduler 和 etcd 这几个组件,其中 apiserver 是整个集群的网关。
Node 主要由 kubelet、kube-proxy 和容器引擎等组件构成,kubelet 是工作在 Kubernetes 集群节点之上的代理组件。
完整的 Kubernetes 集群还需要部署 KubeDNS、HeapSter(或 Prometheus)、Dashboard 和 Ingress Controller 等几个附加组件。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/a37df3df4d8d1450f41a5e06b】。文章转载请联系作者。
评论