k8s基本概述&资源对象相关概念

Kubernetes(K8s)是容器编排工具,目标是简化应用部署和管理。本文介绍了K8s的基本概念,如Namespace、Annotations、Labels、K8s对象分类,重点讲解了工作负载类、Service、Controller控制器的作用。K8s通过Namespace实现资源隔离,利用Annotations存储元数据,使用Labels进行对象标记,通过Controller保证应用按期望状态运行。
摘要由CSDN通过智能技术生成

Kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写,是一个开源的云原生的容器集群管理工具,容器编排工具,也是一个自动化的容器操作平台。其作为云原生应用的基础调度平台,相当于云原生的操作系统

Kubernetes的目标是简单高效的部署容器化的应用,简化应用管理的复杂度,提供了应用部署,规划,更新,维护的一种机制。

Kubernetes作为一个容器管理与调度编排领域的首选平台和事实标准,最终使命是成为新一代应用上云的首选平台,为广大开发者开启云原生应用的大门。

传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的所有生存周期(运行、配置、管理)将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作。

新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器都有自己的文件系统 ,容器之间的进程不会相互影响。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统是解耦的,所以它能在不同云、不同版本操作系统间进行迁移。

容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间形成一对一的关系,使用容器可以在 build 或 release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。

Namespace

用于将物理集群划分为多个虚拟集群,本身也是一个object。Namespace间完全隔离,因此也常被用来隔离不同的用户及权限。内置有三个Namespace,分别是:default,kube-system(平台组件),kube-public。

Annotations(注解)

可以将任意非标识性元数据附加到对象上。将数据作为Annotations附着在对象上,有利于创建一些用于部署、管理和做内部检查的共享工具和客户端。

Label(标签)

label可以附着在任意对象上,每个对象也

Kubernetes(简称为K8s)是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。它由多个组件组成,每个组件都具有不同的功能和作用。以下是一些常见的 Kubernetes 组件及其作用: 1. **kube-apiserver**:提供 Kubernetes API 的主要入口,处理集群管理操作和资源请求。 2. **kube-controller-manager**:运行多个控制器的进程,负责监控和调节集群状态,例如节点管理、副本集管理、服务发现等。 3. **kube-scheduler**:根据资源需求和约束条件,将 Pod 分配给适当的节点运行。 4. **kubelet**:在每个节点上运行的代理程序,负责管理容器化应用程序的生命周期,并与 kube-apiserver 交互报告节点和容器状态。 5. **kube-proxy**:在每个节点上运行的网络代理,负责为 Pod 提供网络代理和负载均衡功能。 6. **etcd**:分布式键值存储系统,用于存储 Kubernetes 集群的配置数据和状态信息。 7. **Container Runtime**:负责运行容器的底层引擎,如 Docker、containerd 等。 8. **CoreDNS**:提供集群内部 DNS 服务,用于服务发现和解析内部服务的域名。 9. **Ingress Controller**:负责将外部请求路由到集群内部的服务。 10. **Dashboard**:提供一个 Web 界面,用于可视化和管理 Kubernetes 集群。 这些组件共同协作,实现了 Kubernetes 的核心功能,包括容器编排、自动伸缩、服务发现和负载均衡等。 Pod 是 Kubernetes 中最小的可部署单元,它由一个或多个容器组成。以下是 Pod 的创建过程: 1. 创建 Pod 定义文件:使用 YAML 或 JSON 格式创建一个 Pod 定义文件,指定容器的配置和其他相关信息。 2. 提交 Pod 定义文件:将 Pod 定义文件提交给 Kubernetes 控制平面,通常使用 `kubectl apply -f <pod-definition-file>` 命令。 3. kube-apiserver 处理请求:kube-apiserver 接收到 Pod 定义文件的请求后,对其进行处理,并将其存储到 etcd 中。 4. kube-scheduler 分配节点:kube-scheduler 根据调度算法选择一个适合的节点,将 Pod 分配给该节点运行。 5. kubelet 创建容器:kubelet 在被分配的节点上运行,并负责创建和管理容器。它通过与容器运行时(如 Docker)交互来创建和管理容器实例。 6. 容器状态报告:kubelet 将容器状态报告给 kube-apiserver,以便跟踪和监控容器的运行状态。 7. 控制器监控和调节:kube-controller-manager 中的控制器会监控 Pod 的状态,并根据需要进行调节,例如自动扩容或重新部署。 这些步骤共同完成了 Pod 的创建过程,并确保容器能够在适当的节点上正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值