系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第六部分:开发运维
本心、输入输出、结果
文章目录
系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第六部分:开发运维
编辑:简简单单 Online zuozuo
地址:https://blog.csdn.net/qq_15071263
如果觉得本文对你有帮助,欢迎点赞、收藏、评论
前言
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节
我们使用视觉效果和简单术语来解释复杂的系统是如何运转的,帮助我们理解技术细节
DevOps vs. SRE vs. Platform Engineering。有什么区别?
DevOps作为一个概念是由Patrick Debois和Andrew Shafer在2009年的敏捷会议上提出的。他们试图通过促进协作文化和对整个软件开发生命周期的共同责任来弥合软件开发和运营之间的差距。
SRE 或站点可靠性工程由 Google 在 2000 年代初率先提出,旨在解决管理大规模复杂系统的运营挑战。谷歌开发了SRE实践和工具,如Borg集群管理系统和Monarch监控系统,以提高其服务的可靠性和效率。
平台工程是一个较新的概念,建立在 SRE 工程的基础上。平台工程的确切起源不太清楚,但它通常被理解为 DevOps 和 SRE 实践的扩展,重点是为产品开发提供支持整个业务视角的综合平台。
值得注意的是,虽然这些概念出现在不同的时间。它们都与提高软件开发和运营中的协作、自动化和效率的更广泛趋势有关。
什么是k8s(Kubernetes)?
K8s 是一个容器编排系统。它用于容器部署和管理。它的设计受到谷歌内部系统Borg的极大影响。
k8s 集群由一组运行容器化应用程序的工作计算机(称为节点)组成。每个集群至少有一个工作器节点。
工作节点托管作为应用程序工作负载组件的 Pod。控制平面管理集群中的工作节点和 Pod。在生产环境中,控制平面通常跨多台计算机运行,一个群集通常运行多个节点,提供容错和高可用性。
控制面板组件
API Server : API 服务器与 k8s 集群中的所有组件通信。Pod 上的所有操作都是通过与 API 服务器通信来执行的。
Scheduler : 调度程序监视 Pod 工作负载,并在新创建的 Pod 上分配负载。
Controller Manager : 控制器管理器运行控制器,包括节点控制器、作业控制器、端点切片控制器和服务帐户控制器。
Etcd : etcd 是一个键值存储,用作 Kubernetes 所有集群数据的后备存储。
节点
Pods : Pod 是一组容器,是 k8s 管理的最小单元。Pod 具有应用于 Pod 中的每个容器的单个 IP 地址。
Kubelet : 在集群中的每个节点上运行的代理。它确保容器在 Pod 中运行。
Kube Proxy : Kube-proxy 是在集群中的每个节点上运行的网络代理。它路由从服务进入节点的流量。它将工作请求转发到正确的容器。
Docker vs. Kubernetes。我们应该使用哪一个?
什么是 Docker?
Docker 是一个开源平台,允许您在隔离的容器中打包、分发和运行应用程序。它专注于容器化,提供封装应用程序及其依赖项的轻量级环境。
什么是 Kubernetes ?
Kubernetes,通常被称为K8s,是一个开源的容器编排平台。它提供了一个框架,用于跨节点群集自动部署、扩展和管理容器化应用程序。
两者之间有何不同?
Docker:Docker 在单个操作系统主机上的单个容器级别运行。
您必须手动管理每个主机,并且为多个相关容器设置网络、安全策略和存储可能很复杂。
Kubernetes:Kubernetes 在集群级别运行。它管理跨多个主机的多个容器化应用程序,为负载平衡、扩展和确保应用程序所需状态等任务提供自动化。
Docker 专注于容器化和在单个主机上运行容器,而Kubernetes则专注于跨主机集群大规模管理和编排容器。
Docker是如何工作的?
下图显示了Docker的架构以及当我们运行“docker build”,“docker pull”时它是如何工作的。 和“ docker run”。
Docker 架构中有 3 个组件:
- Docker client : docker 客户端与 Docker 守护程序通信。
- Docker host : Docker 守护程序侦听 Docker API 请求并管理 Docker 对象,例如映像、容器、网络和卷。
- Docker registry : Docker 注册表存储 Docker 映像。Docker Hub是一个任何人都可以使用的公共注册表
让我们以“docker run”命令为例。
- Docker 从注册表中提取映像。
- Docker 创建一个新容器。
- Docker 为容器分配一个读写文件系统。
- Docker 创建一个网络接口,用于将容器连接到默认网络。
- Docker 启动容器。
弘扬爱国精神
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!