K8s操作对象(K8s中的资源)

Kubernetes (K8S)讲解存储/网络/运维 本文是关于 K8S 的技术文章简介。首先是基本概念,包括 K8S 的定义、在容器编排领域的地位,以及 API Server 等核心组件功能。接着阐述资源对象,如 Pod 概念、生命周期,Deployment、StatefulSet、DaemonSet 的区别与应用场景,还有 Service 类型与作用。然后是存储部分,涵盖存储卷类型及 PV 和 PVC 的关系与原理。网络方面涉及 K8S 网络模型原理和 CNI 插件。最后是运维与监控,包括 K8S 集群监控方法和集群升级回滚的流程及注意事项。 阅读详情

K8S操作对象(K8s中的资源)

K8s对象是什么?

在 Kubernetes 系统中,Kubernetes 对象是持久化的实体。 Kubernetes 使用这些实体去表示整个集群的状态。 具体而言,它们描述了如下信息:

  • 哪些容器化应用正在运行(以及在哪些节点上运行)
  • 可以被应用使用的资源
  • 关于应用运行时行为的策略,比如重启策略、升级策略以及容错策略

Kubernetes 对象是一种“意向表达(Record of Intent)。一旦创建该对象, Kubernetes 系统将不断工作以确保该对象存在。通过创建对象,你本质上是在告知 Kubernetes 系统,你想要的集群工作负载状态看起来应是什么样子的, 这就是 Kubernetes 集群所谓的期望状态(Desired State)。

操作 Kubernetes 对象——无论是创建、修改或者删除——都需要经过 API server。 比如,当使用 kubectl 命令行接口(CLI)时,CLI 会调用必要的 Kubernetes API; 也可以在程序中使用客户端库, 来直接调用 Kubernetes API。

K8s对象的创建(K8s如何创建资源?)

创建 Kubernetes 对象时,必须提供对象的 spec,用来描述该对象的期望状态, 以及关于对象的一些基本信息(例如名称)。 当使用 Kubernetes API 创建对象时(直接创建或经由 kubectl 创建), API 请求必须在请求主体中包含 JSON 格式的信息。 大多数情况下,你会通过 清单(Manifest) 文件为 kubectl 提供这些信息。 按照惯例,清单是 YAML 格式的(你也可以使用 JSON 格式)。 像 kubectl 这样的工具在通过 HTTP 进行 API 请求时, 会将清单中的信息转换为 JSON 或其他受支持的序列化格式。

这里有一个清单示例文件,展示了 Kubernetes Deployment 的必需字段和对象 spec:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2   #告知Deployment运行2个与该模板匹配的Pod
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80


kubectl apply -f https://k8s.io/examples/application/deployment.yaml

deployment.apps/nginx-deployment created

创建K8s对象的必需字段

在想要创建的 Kubernetes 对象所对应的清单(YAML 或 JSON 文件)中,必需配置的字段如下:

  • apiVersion - 创建该对象所使用的 Kubernetes API 的版本
  • kind - 想要创建的对象的类别
  • metadata - 帮助唯一标识对象的一些数据,包括一个 name 字符串、UID 和可选的 namespace
  • spec - 你所期望的该对象的状态

对每个 Kubernetes 对象而言,其 spec 之精确格式都是不同的,包含了特定于该对象的嵌套字段。

参:K8s清单格式

K8s核心资源简介

- 名称空间:namespace   
- 容器组:Pod
- 网络:service
- 配置文件:config
- 控制器:controller
- 节点:node
...

 只要是操作对象都可以增删改查(create、get、describe、delete..)

K8s核心资源-Pod

什么是Pod?

1、Pod是K8s的最小单位
2、Pod的IP地址是随机的,删除Pod会改变IP
3、Pod都有一个根容器
4、一个Pod内可以由一个容器或多个容器组成
5、一个Pod内的容器共享根容器的网络、名称空间、和文件系统卷
6、一个Pod内的网络地址由根容器提供

容器共享网络:通过container模式共享,共享根容器的网络

在这里插入图片描述

Pod的运行状态

状态描述
Pending(等待)Pod已经被K8s系统接受,但是有一个或多个容器,尚未创建,亦未运行。此阶段包括等待Pod被调度的时间和通过网络下载镜像的时间
Running(运行)Pod已经绑定到某个节点(node),Pod中所有容器都已被创建,至少有一个容器仍在运行,或者处于启动或重启状态
Succeeded(成功)Pod中所有容器都已成功终止,并且不会再重启
Failed(失败)Pod中所有容器都已成功终止,并且有一个容器是因为失败而终止
Unknown(未知)因为某些原因无法获取Pod状态,这种情况,通常是因为与Pod所在主机通信失败
K8S核心资源-Label
Label标签是K8S中非常重要的一个属性,Label标签就像身份证一样,可以用来识别K8s的对象。
传统架构中,不同的服务应用之间通讯,都是通过IP和端口,但是在K8S中很多匹配关系都是通过标签来找。
K8S核心资源-Namespace
Namespace(名称空间)是K8s中非常重要的一个概念,Namespace将集群内部的资源进行隔离划分。
在Namespace中,形成逻辑上的不同项目组或用户组。
K8S核心资源-Controller
Controller用来管理Pod。
Pod控制器的种类有很多:
- RC Replication Controller 控制Pod有多个副本
- RS ReplicaSet  RC控制器的升级版
- Deployment    推荐使用,功能强大,包含了RS控制器
- DaemonSet     保证所有的Node节点上,有且只有一个Pod运行
- StatefulSet   有状态的应用,为Pod提供唯一标识,它可以保证部署和scale的顺序
K8S核心资源-service(提供网络)
Service也是K8s核心资源之一,Service定义了服务的入口地址,用来将后端的Pod服务暴露给外部的用户访问(提供网络)

Service提供三种网络:

Pod IP(根容器的IP);

集群IP,Cluster IP(相当于个负载均衡);

NodePort(用于用户访问)

Pod IP和Cluster IP是对外隔绝的,相当于内网IP。那么问题来了,我Pod IP会变,那Pod挂了后咋办?

这时就是label了,它们是通过Label访问的。不通过ip找

在这里插入图片描述

在这里插入图片描述

Kubernetes(K8s)从入门到精通系列之三:K8s的基本概念和术语之资源对象概述 阅读详情

相关推荐

y39.第三章 Kubernetes从入门到精通 -- k8s 资源对象(十二)

5.k8s 资源对象 5.1 k8s资源管理核心概念 5.1.1 k8s的设计理念—分层架构 http://docs.kubernetes.org.cn/251.html 核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等) 管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP

Raymond的博客 253

K8S哲学 - Pod、RC、RS、deployment

replicas”属性则指定了特定 Pod 的副本的数量,当前集群中该 Pod 的数量与该属性指定的值不一致时,k8s 会采取一些策路去使得当前状态满足配置的要求。一个pod可以被复制成多份,每一份可被称之为一个"副本”,这些副本-除了一些描述性的信息 (Pod的名字、uid 等)不一样以外,其它信息都是一样的,譬如Pod。内部的容器 容器数量,容器里面运行的应用等的这些信息都是一样的,这些副本提供同样的功能。一个Pod(容器组)包含了一个应用程序容器(某些情况下是多个容器)、存储资源、

gu2022_3_5_21_23的博客 1241

CoMP 协同多点传输技术

CoMP CoMP是什么 解决什么问题 有什么缺点 CoMP(Coordinated Multiple Points)协同多点传输,通信术语,LTE-A的重要技术之一。 CoMP传输是指地理位置上分离的多个传输点,协同参与为一个终端的数据(PDSCH)传输或者联合接收一个终端发送的数据(PUSCH),参与协作的多个传输点通常指不同小区的基站。CoMP技术将边缘用户置于几个基站的同频率上,几...

ilean_J的博客 2万+

k8s 使用Replication Controller创建管理pod的简单范例

[root@v75 yml]# cat rc1.yaml  apiVersion: v1 kind: ReplicationController metadata:   name: my-nginx spec:   replicas: 2   selector:     app: nginx   template:     metadata:       labels:         app: ...

lsysafe的博客 1321

一文详细讲解CRM系统(附架构图、流程、功能介绍)

专为中小企业量身打造高性价比的数字化转型路径!企业如何用CRM才能真正做到降本增效?今天,就用一文讲清这些问题!读完本文,你将清楚得了解CRM的概念、框架、流程、功能、企业成功案例,文末还有常见问题解答。

Dabeishandong的博客 9925

VSCODE 安装LATEX环境,参数配置,常见问题解决

1 准备Texlive安装包 可以从以下网址下载 texlive 的镜像文件: 华为镜像 阿里镜像 官网 网址中大概文件构成 下载完后我们需要的文件构成(我是2020年下载过了,这次就不重新下载了) 将这个镜像文件进行解压 2 安装Texlive 右键install-tl-windows.bat,单击以管理员身份运行,进入安装界面. 点击左下角的“Advanced”进入高级安装来取消你不需要安装的宏包。 点击“Customize”来取消勾选不需要的宏包。 单是把非中英的语言包取消勾选可以省掉 1G

呆呆象呆呆的博客 6万+

K8S ReplicaSet

在 Kubernetes(通常拼写为 Kubernetes,而不是 kubernate)中,ReplicaSet(副本集)是一种 Kubernetes 控制器,它确保由它管理的 Pod(容器组)的数量与预期的副本数量相匹配。如果 Pod 被删除或因为某些原因终止了(比如节点故障),ReplicaSet 会自动创建新的 Pod 来替换它们,以维持预期的副本数量。ReplicaSet 是 Kubernetes 部署(Deployments)和状态集(StatefulSets)等更高级抽象背后的关键组件之一。

王小工小工历程 1207

在QTableWidget中添加支持多选的QComboBox并显示

定义自定义表格项,主要用于显示复选框自定义的多选ComboBox类自定义委托类,用于表格中的多选ComboBox代码展示如下。

YUyang0304的博客 2780

kubernetes对象

定义kubernetes对象 创建 Kubernetes 对象时,必须提供对象的规约,用来描述该对象的期望状态, 以及关于对象的一些基本信息(例如名称)。 当使用 Kubernetes API 创建对象时(或者直接创建,或者基于kubectl), API 请求必须在请求体中包含 JSON 格式的信息。 大多数情况下,需要在 .yaml 文件中为 kubectl 提供这些信息。 kubectl 在发起 API 请求时,将这些信息转换成 JSON 格式。 这里有一个 .yaml 示例文件,展...

whz-emm的博客 1179

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

泛红尘的博客 2996

Vite与Webpack路径配置大不同:从Vue2迁移到Vue3必须知道的public目录使用技巧

本文详细解析了Vite与Webpack在public目录路径配置上的核心差异,为Vue2迁移到Vue3的开发者提供实用指南。重点对比了两种构建工具的资源处理逻辑,给出典型编译警告的解决方案,并分享路径适配表与高级优化技巧,帮助开发者高效完成技术栈升级。

weixin_30836759的博客 485

总结:K8S之对象模型

一、对象模型总览 k8s可以看做是面向对象的,每类服务可看做是k8s的一个对象。 这些对象由用户定义yaml,k8s的api负责创建。所有对象包含metadata(元数据)、spec(规范)、status(状态)三类基本信息。 例如:k8s创建pod的api为:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/#pod-v1-core kubectl 也会将yaml转成json发送到master节点。 k8s中.

w2009211777的专栏 3197

C#面试题及详细答案120道(01-10)-- 基础语法与数据类型

C#与.NET部分重点解析了7个核心问题:1)C#与.NET的依存关系;2)值类型与引用类型的内存差异;3)装箱拆箱的性能损耗;4)string/String与int/Int32的实质等价性;5)const与readonly的初始化区别;6)可空类型的应用场景;7)ref与out关键字的参数传递机制。内容包含原理对比、代码示例和优化建议,适合开发者系统掌握C#核心概念。(1

大剑师兰特的GIS世界 1954

k8s操作

k8s查看资源信息 kubectl api-resources -o wide --kubeconfig=/home/gws/.kube/haconf gws@gws-TP450:~$ kubectl api-resources -o wide --kubeconfig=/home/gws/.kube/haconf NAME ...

Aggressive_snail的专栏 507

【APM】在Kubernetes中,使用Helm安装Grafana 9.5.1

Grafana是一款流行的开源数据可视化和分析平台,它特别擅长处理时序数据,即随时间变化的数据,因此在监控系统性能、应用程序指标、物联网(IoT)设备数据等领域有着广泛的应用。

CN_Eden 1200

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

K8S:常用资源对象操作

如果有一种工具能够来帮助我们管理Pod就好了,Pod不够了自动帮我新增一个,Pod挂了自动帮我在合适的节点上重新启动一个Pod,这样是不是遇到上面的问题我们都不需要手动去解决了。幸运的是,Kubernetes就为我们提供了这样的资源对象:Replication Controller简称RC,RC是Kubernetes系统中的核心概念之一,简单来说,RC可以保证在任意时间运行Pod的副本数量,能够保证Pod总是可用的。如果实际Pod数量比指定的多那就结束掉多余的,如果实际数量比指定的少就新启动一些Pod,当P

喜欢打篮球的普通人 1454

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

K8s源码分析(21)-client go组件之资源操作对象

上一篇文章里,我们主要介绍了client go这个基础组件相关的request和 result 对象,这两个对象主要用来发送资源操作的请求,以及处理相关的响应。众所周知, kubernetes 中的资源是分 group/version 的,本篇文章里我们主要来介绍对于不同组以及版本的资源操作对象。资源操作对象层级kubernetes 资源对象是区分组和版本的,对于...

weixin_46073333的博客 588

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Kubernetes 命令式对象管理详解:kubectl 常用命令与资源操作

本文详解Kubernetes命令式对象管理,重点介绍kubectl常用命令与资源操作。通过get、create、delete等命令实现对Pod、Deployment、Service等资源的增删查改,结合-o yaml、-o wide等参数获取详细信息。强调使用资源缩写(如po、svc)提升效率,并说明describe命令在排查故障时对事件(Events)的监控价值。适用于快速查询、调试及临时运维场景。

CharlesYuangc的博客 214

Kubernetes基本资源对象

1:k8s常用资源对象 nodes pods namespaces sa services ingresses deployments statefulsets jobs cronjobs daemonsets pv pvc roles clusterroles rolebindings clusterrolebindings networkpolicies secrets configmaps storageclasses resourcequota limitrange 1.1:操作对象的动作 增

班婕妤 1704

java对象转jsonobject_【技术分享】Java 操作 Kubernetes CRD资源的研究和应用

徐冬冬合肥科技研发中心01KubernetesCustomResourceDefinition(CRD)概述Kubernetes是一个开源的用于管理云平台中多个主机上容器化应用的管理架构。它是由多种不同类型的资源组成,在Kubernetes中一切都可视为资源。到Kubernetes 1.7 之后增加了对用户自定义资源(CustomResourceDefinition 简称CRD)二...

weixin_39936388的博客 515

Kubernetes笔记 (2) - 资源对象、kubectl

Kubernetes集群将所有节点上的资源都整合到一个大的虚拟资源池里,以代替一个个单独的服务器。如果把集群类比为一台传统的服务器,那么Kubernetes(Master)就好比是操作系统内核,其主要职责在于抽象资源并调度任务,而Pod资源对象就是那些运行于用户空间中的进程。 资源对象 API Server提供了RESTful风格的编程接口,其管理的资源是Kubernetes API中的端点,用于存储某种API对象的集合。Pod、Deployment和Service等都是最常用的核心对象。 Pod资源对象

zhixin9001的博客 393

group by 怎么用java对象接收_技术分享|Java 操作 Kubernetes CRD资源的研究和应用

徐冬冬合肥科技研发中心01Kubernetes CustomResourceDefinition(CRD)概述Kubernetes是一个开源的用于管理云平台中多个主机上容器化应用的管理架构。它是由多种不同类型的资源组成,在Kubernetes中一切都可视为资源。到Kubernetes 1.7 之后增加了对用户自定义资源(CustomResourceDefinition 简称CRD)二次...

weixin_39581099的博客 281

K8S基础

– – – K8S:深入理解POD – – – – – – – – – – – – – – – – –

喜欢打篮球的普通人 264

K8s-对象

K8s对象分类 资源对象:Pod,RS,RC,Deployment,StatefulSet,DaemonSet、Job、CronJob、HPA、Node、Namespace、Service、Ingress、Label、CustomResourceDefinition 策略对象:SecurityContext,ResourceQuota、LimitRange 存储对象:Configmap、Secret、PersistentVolume、Volume 身份对象:ServiceAccount、Role、Clust

weixin_36214257的博客 256

k8s资源对象的label操做

k8s资源对象的label操做 查看需要更改标签的pod [root@kubernetes k8s]# kubectl get pods NAME READY STATUS RESTARTS AGE client 0/1 Error 0 140d ...

liao__ran的博客 524

[CKA备考实验][BASIC]1.2 K8S资源对象的标签基本操作

CKA备考

Greyplayground 1047
上一篇: Docker单机容器编排工具Docker compose
下一篇: K8s之资源常用操作命令
Andrew_Notes
博客等级 码龄3年 183粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值