K8s-Notes
Introduction | 前言
K8s [koo-ber-nay’
背景
几乎所有在谷歌开发的软件都是在容器中运行的。谷歌大规模管理容器已经有十多年的时间了,当时人们对此谈论较少。为了满足内部需求,谷歌的一些开发人员已经建立了三个不同的容器管理系统。
谷歌开发的第一个容器管理系统是
第三个系统是
K8s 架构概览
和其他可用的编排器一样,
- API Server:它是
K8s 的主要组成部分之一。该组件提供了一个通过HTTP 使用JSON 进行通信的API ,其中主要是由管理员使用kubectl 工具与其他节点进行通信,如图所示。这些组件之间的通信是通过REST 请求建立的。 - etcd:
etcd 是一个分布式的键值数据存储,k8s 用来存储集群规格、状态和配置。所有存储在etcd 中的数据都只能通过API 来操作。出于安全考虑,etcd 默认只在K8s 集群中被列为主控的节点上运行,但它们也可以在外部的、etcd 专用的集群上运行,例如。 - Scheduler:调度器负责选择承载特定
pod (k8s 集群中最小的单元–暂时不用担心这个问题,我们以后再谈)的节点来执行。这种选择是根据每个节点的可用资源量,以及集群中每个节点的状态进行选择,从而保证资源的良好分布。此外,选择节点,在其中执行一个或多个豆荚,还可以考虑用户定义的策略,如亲和力、应用程序要读取的数据的位置等。 - Controller Manager:是确保集群处于
etcd 中定义的最后状态的Controller Manager 。例如:如果在etcd 中,一个deploy 被配置为一个pod 有10 个副本,那么是Controller Manager 会检查集群的当前状态是否与这个状态对应,如果不对应,则会尝试对两者进行协调。 - Kubelet:
kubelet 可以看作是运行在Worker 节点上的K8s 代理。在每个worker 节点中,应该有一个Kubelet 代理在运行。Kubelet 负责实际管理节点内的pods ,这些pods 是由集群控制器指示的,所以为此Kubelet 可以按照集群控制器的指示,启动、停止并保持容器和pods 的运行。 - Kube-proxy:作为代理和负载均衡器。这个组件负责将请求路由到正确的
pod ,以及照顾节点的网络部分。 - 容器运行时:容器运行时是
K8s 操作所需的容器执行环境。2016 年加入了rkt 支持,但自始至终Docker 都已经是默认的功能和使用。
虽然在标准环境下,
- Kind:用于执行
Docker 容器的工具,模拟Kubernetes 集群的运作。它用于教学、开发和测试目的。Kind 不应该用于生产。 - Minikube:用于在本地实现一个只有一个节点的
Kubernetes 集群的工具。广泛用于教学、开发和测试目的。Minikube 不得用于生产。 - MicroK8S:由
Canonical 开发,也就是开发Ubuntu 的公司。它可以在几个发行版中使用,并可用于生产环境,特别是边缘计算和物联网(物联网) 。 - k3s:由
Rancher Labs 开发,它是MicroK8s 的直接竞争对手,甚至可以运行在Raspberry Pi 上。
Nav | 关联导航
About | 关于
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Acknowledgements
-
Awesome-Lists: 📚 Guide to Galaxy, curated, worthy and up-to-date links/reading list for ITCS-Coding/Algorithm/SoftwareArchitecture/AI. 💫
ITCS- 编程/ 算法/ 软件架构/ 人工智能等领域的文章/ 书籍/ 资料/ 项目链接精选。 -
Awesome-CS-Books
: :books: Awesome CS Books/Series(.pdf by git lfs) Warehouse for Geeks, ProgrammingLanguage, SoftwareEngineering, Web, AI, ServerSideApplication, Infrastructure, FE etc. :dizzy: 优秀计算机科学与技术领域相关的书籍归档。 -
https://draveness.me/ 系列
K8S 相关文章 -
https://jimmysong.io/K8s-handbook/concepts/Pod-overview.html
Copyright & More | 延伸阅读
笔者所有文章遵循知识共享 署名