• 文档
  • 控制台
  • 登录
  • 立即注册
    目前不支持用户自主注册,如需注册账号,请联系400-080-1100
容器服务CKS用户指南
最近更新时间:

2 Kubernetes 基础知识

2.1 什么是Kubernetes

2.1.1 Kubernetes 概述

Kubernetes 是一个容器编排引擎,支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes 中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。其本身的应用全生命周期管理调度结合申明式架构,全自动化维护应用的业务,从而保证业务正常运行。

Kubernetes 框架本身组件也是拥有高可用和自愈能力,从而保证平台自身的高可用。对应用开发者而言,可以把 Kubernetes 看成一个集群操作系统。Kubernetes 提供服务发现、伸缩、负载均衡、自愈甚至选举等功能,让开发者从基础设施相关配置等解脱出来。


2.1.2 Kubernetes 集群架构

Kubernetes 集群包含 master 节点(控制节点)和 node 节点(计算节点/工作节点),应用部署在node 节点上,且可以通过配置选择应用部署在某些特定的节点上。

Master 节点

Master 节点是集群的控制节点,由 API Server、Scheduler、Controller Manager 和 ETCD 四个组件构成。

• API Server:各组件互相通讯的中转站,接受外部请求,并将信息写到 ETCD 中。

• Controller Manager:执行集群级功能,例如复制组件,跟踪 Node 节点,处理节点故障等等。

• Scheduler:负责应用调度的组件,根据各种条件(如可用的资源、节点的亲和性等)将容器调度到 Node 上运行。

• ETCD:一个分布式数据存储组件,负责存储集群的配置信息。

在生产环境中,为了保障集群的高可用,通常会部署多个 master,如 CCE 的集群高可用模式就是3 个 master 节点。

Node 节点

Node 节点是集群的计算节点,即运行容器化应用的节点。

• kubelet:kubelet 主要负责同 Container Runtime 打交道,并与 API Server 交互,管理节点上的容器。

• kube-proxy:应用组件间的访问代理,解决节点上应用的访问问题。

• Container Runtime:容器运行时,如 Docker,最主要的功能是下载镜像和运行容器。


2.2 什么是容器

2.2.1 容器概述

容器技术起源于 Linux,是一种内核虚拟化技术,提供轻量级的虚拟化,以便隔离进程和资源。尽管容器技术已经出现很久,却是随着 Docker 的出现而变得广为人知。

Docker 是第一个使容器能在不同机器之间移植的系统, 是容器打包和运行时系统的标准,主要用于管理各个节点上的容器。它不仅简化了打包应用的流程,也简化了打包应用的库和依赖,甚至整个操作系统的文件系统能被打包成一个简单的可移植的包,这个包可以被用来在任何其他运行Docker 的机器上使用。开发者在 Dockerfiles 中构建容器镜像,上传到镜像仓库中,用户只需从镜像仓库下载该镜像文件,就可以开始使用。


2.2.2 容器典型使用流程

Docker 容器有如下三个主要概念:

镜像:Docker 镜像里包含了已打包的应用程序及其所依赖的环境。它包含应用程序可用的文件系统和其他元数据,如镜像运行时的可执行文件路径。

镜像仓库:Docker 镜像仓库用于存放 Docker 镜像,以及促进不同人和不同电脑之间共享这些镜像。当编译镜像时,要么可以在编译它的电脑上运行,要么可以先上传镜像到一个镜像仓库,然后下载到另外一台电脑上并运行它。某些仓库是公开的,允许所有人从中拉取镜像,同时也有一些是私有的,仅部分人和机器可接入。

容器:Docker 容器通常是一个 Linux 容器,它基于 Docker 镜像被创建。一个运行中的容器是一个运行在 Docker 主机上的进程,但它和主机,以及所有运行在主机上的其他进程都是隔离的。这个进程也是资源受限的,意味着它只能访问和使用分配给它的资源(CPU、内存等)。

Docker 容器典型的使用流程如下:

(1) 首先开发者在开发环境机器上开发应用并制作镜像。

Docker 执行命令,构建镜像并存储在机器上。

(2) 开发者发送上传镜像命令。

Docker 收到命令后,将本地镜像上传到镜像仓库。

(3) 开发者向生产环境机器发送运行镜像命令。

生产环境机器收到命令后,Docker 会从镜像仓库拉取镜像到机器上,然后基于镜像运行容器。


意见反馈

文档内容是否对您有帮助?

如您有其他疑问,您也可以通过在线客服来与我们联系探讨 在线客服

联系我们
回到顶部