k8s ui,k8s oam

Kubernetes(K8S)是云技术的最核心的部分,也是构建是云原生的基石,下面我就全面来详解Kubernetes(K8S)@mikechen本篇已收于mik

bd396ec14cc441838b2b6392da76c1f7~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=c%2BCAK2h51c9Hz9GBdIG0WjU8RGc%3D

Kubernetes (K8S) 是云技术的核心部分,也是构建云原生的基础了解有关@mikechen 的更多信息。

本文收录于mikechen的30万+字原文《阿里架构师进阶专题合集》。

591379d7a7934218a77447f34953992f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=bIQZRstOgIK8HDzCdGA6FmIL1XY%3D

K8S

K8S(Kubernetes 的缩写)是由Google 开发的容器编排平台,目前由云原生计算基金会(CNCF)维护。

K8S主要解决四个要点:

3fda9c61d66441c189b2f8e17a52dec2~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=qrkr6rTr%2FmeWZnK9DxduMI%2FB3A4%3D

1. 容器编排

Docker解决了容器部署的问题。容器部署涉及容器编排。

K8S 是一个强大而灵活的容器编排平台,允许用户轻松部署、扩展和管理容器化应用程序。

2.容器管理

K8S可以管理多个容器化应用,并调度和管理容器实例的生命周期,包括创建、启动、监控、重启和销毁。

3、自动部署

K8S可以自动部署和扩展容器化应用程序。

此外,K8S还可以根据您的应用程序的负载需求自动扩展容器实例的数量,确保您的应用程序能够适应不断变化的负载需求。

4.安全可用

K8S具有强大的高可用性和容错能力,在节点故障或容器故障时,通过自动重新调度容器实例来保证应用程序的可用性。

K8S架构

K8S架构(如下图所示):

2fc26375819741f28914ac4d93098a32~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=2oDUanEY8BpNuzRqrGQkaVMJBCk%3D

K8S主要包含两个主要组件:Master Node和Child Node。

主组件

master组件是K8S控制平面的核心部分,负责管理整个集群的状态和配置,类似于人《大脑》。

主组件通常运行在单独的节点上,以确保高可用性和可靠性。

021c3ff71f9f47b2a147cfaa34a07816~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=Ei1VkwvOJxd6iNQ2YaJxbCEemKE%3D

1.kube-api服务器

kube-apiserver:这是Kubernetes 集群的前端接口,是所有组件、用户和集群进行通信的单一入口点。

kube-apiserver 提供RESTful API 接口,用于管理集群状态、配置、操作等。

此外,kube-apiserver 还可以通过身份验证、授权和访问控制来保护和管理API 访问权限。

2.etcd

etcd 是一个分布式、一致的键值存储数据库,类似于Redis,具有键值组件。

etcd 主要用于存储集群配置信息、状态和元数据。此信息存储在etcd 中。

3.kube调度器

kube-scheduler:Kubernetes 中的调度组件,负责将新创建的Pod 调度到集群中的节点,同时考虑节点资源可用性和负载。

4.kube-控制器-管理器

Kubernetes Controller Manager 包含多个控制器,负责监控集群的状态,并根据预设的所需状态实现集群的自我修复和自动操作。

常见的控制器包括ReplicaSet控制器、Deployment控制器、StatefulSet控制器等,如下图所示。

a52f59750e21409199c931c672981e7a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=oRlEiMhU09Eex9LIUkkpqDufmv0%3D

这些控制器主要管理Pod 和其他资源的生命周期,使它们能够按照用户期望的方式运行和管理。

2. 节点组件

Node 节点,如《四肢》,是Kubernetes 集群的工作节点,就像K8S 的肢体,执行master 的操作指令。

主要分为以下几个部分:

Kubelet:Kubelet负责管理节点上的Pod和容器,与Master通信,根据Master的指令创建、启动、监控和终止Pod。 kube-proxy:kube-proxy负责为Kubernetes Service实现负载均衡和代理转发,维护网络规则、iptables规则等。容器运行时:负责管理和运行容器,例如Docker、containerd.以及其他可以用来运行的容器。 3. 网络组件

Pod 网络:Pod 网络插件为Pod 分配IP 地址,并提供Pod 之间以及Pod 与外部网络之间的网络通信。

集群网络:集群网络组件负责为集群中的节点分配IP地址并提供节点之间的通信。

K8S和Docker的关系

Docker 和Kubernetes 是分别解决容器化应用和容器化编排的两种不同技术。

两者之间的关系类似于操作系统与应用场景之间的关系,两者主要是配合使用的。

d220e0cfd9fb482cbd3e536d6697219b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=PlZ5LHpL0V6LzLjyhWEemaq%2BNAg%3D

Docker 是一个开源容器化平台,用于创建、打包和运行容器化应用程序。

Docker主要提供容器构建、镜像管理、容器执行、容器存储等功能,适合构建和部署单容器应用。

K8S 是一个容器编排平台,用于自动部署、扩展和管理容器化应用程序。

K8S支持Docker、containerd、cri-o等多种容器运行环境。所以Docker只是K8S中的一种容器。

K8S 并不依赖于Docker,但作为最流行、使用最广泛的容器运行环境,Docker 通常被认为是K8S 的默认容器。

K8S总结

也就是说,K8S提供容器编排和集群管理能力,Docker提供构建、打包和运行容器化应用程序的能力。将两者结合起来创建一个云原生系统。

本文收录于mikechen的30万+字原文《阿里架构师进阶专题合集》。

6d1455f284614c76896200b4e33f28fd~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717774572&x-signature=wN5M4akIoKWaP22V51aK5vhqABk%3D

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/83497.html

(0)
小条's avatar小条
上一篇 2024年5月31日 下午11:34
下一篇 2024年5月31日 下午11:36

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注