Kubernetes对象的定义和操作

在这里插入图片描述

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。
📘相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看
📙Java并发编程系列,设计模式系列、go web开发框架 系列正在发展中,喜欢Java,GoLang,Rust,的朋友们可以关注一下哦!


文章目录

      • 什么是Kubernetes对象
      • 对象的spec和status
      • 描述Kubernetes对象
      • 必填字段
      • 管理Kubernetes对象
        • 管理方式
        • 指令性的命令行
        • 指令性的对象配置
        • 声明式的对象配置

什么是Kubernetes对象

Kubernetes对象指的是Kubernetes系统的持久化实体,所有这些对象合起来,代表了你集群的实际情况。常规的应用里,我们把应用程序的数据存储在数据库中,Kubernetes将其数据以Kubernetes对象的形式通过 api server存储在 etcd 中。具体来说,这些数据(Kubernetes对象)描述了:

  • 集群中运行了哪些容器化应用程序
  • 集群中对应用程序可用的资源
  • 应用程序相关的策略定义,例如,重启策略、升级策略、容错策略
  • 其他Kubernetes管理应用程序时所需要的信息

对象的spec和status

每一个 Kubernetes 对象都包含了两个重要的字段:

  • spec 必须由您来提供,描述了您对该对象所期望的 目标状态
  • status 只能由 Kubernetes 系统来修改,描述了该对象在 Kubernetes 系统中的 实际状态

Kubernetes通过对应的控制器,不断地使实际状态趋向于您期望的目标状态。

描述Kubernetes对象

当您在 Kubernetes 中创建一个对象时,您必须提供

  • 该对象的 spec 字段,通过该字段描述您期望的 目标状态
  • 该对象的一些基本信息,例如名字

如果使用 kubectl 创建对象,您必须编写 .yaml 格式的文件,如果通过 Kuboard 图形化工具创建,则在Kuboard 对应的界面功能中完成表单填写即可。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # 运行 2 个容器化应用程序副本
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

使用 kube apply 命令可以创建该 .yaml 文件中的 Deployment 对象:

kubectl apply -f https://kuboard.cn/statics/learning/obj/deployment.yaml

输出结果如下所示:

deployment.apps/nginx-deployment created

使用 kubectl delete 命令可以删除该 .yaml 文件中的 Deployment 对象:

kubectl delete -f https://kuboard.cn/statics/learning/obj/deployment.yaml

必填字段

在上述的 .yaml 文件中,如下字段是必须填写的:

  • apiVersion 用来创建对象时所使用的Kubernetes API版本
  • kind 被创建对象的类型
  • metadata 用于唯一确定该对象的元数据:包括 name 和 namespace,如果 namespace 为空,则默认值为 default
  • spec 描述您对该对象的期望状态

管理Kubernetes对象

管理方式
管理方式操作对象推荐的环境参与编辑的人数学习曲线
指令性的命令行Kubernetes对象开发环境1+最低
指令性的对象配置单个 yaml文件生产环境1
声明式的对象配置包含多个 yaml 文件的多个目录生产环境1+最高
指令性的命令行

当使用指令性的命令行(imperative commands)时,用户通过向 kubectl 命令提供参数的方式,直接操作集群中的 Kubernetes 对象。此时,用户无需编写或修改 .yaml 文件。

创建一个 Deployment 对象,以运行一个 nginx 实例:

kubectl run nginx --image nginx

kubectl create deployment nginx --image nginx

指令性的对象配置

使用指令性的对象配置时,需要向 kubectl 命令指定具体的操作(create,replace,apply,delete等),可选参数以及至少一个配置文件的名字。配置文件中必须包括一个完整的对象的定义,可以是 yaml 格式,也可以是 json 格式。

通过配置文件创建对象

kubectl create -f nginx.yaml

删除两个配置文件中的对象

kubectl delete -f nginx.yaml -f redis.yaml

直接使用配置文件中的对象定义,替换Kubernetes中对应的对象:

kubectl replace -f nginx.yaml

声明式的对象配置

当使用声明式的对象配置时,用户操作本地存储的Kubernetes对象配置文件,然而,在将文件传递给 kubectl 命令时,并不指定具体的操作,由 kubectl 自动检查每一个对象的状态并自行决定是创建、更新、还是删除该对象。使用这种方法时,可以直接针对一个或多个文件目录进行操作。

例子
处理 configs 目录中所有配置文件中的Kubernetes对象,根据情况创建对象、或更新Kubernetes中已经存在的对象。可以先执行 diff 指令查看具体的变更,然后执行 apply 指令执行变更:

kubectl diff -f configs/
kubectl apply -f configs/

递归处理目录中的内容:

kubectl diff -R -f configs/
kubectl apply -R -f configs/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/550563.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据密集型应用系统设计 PDF 电子书(Martin Kleppmann 著)

简介 《数据密集型应用系统设计》全书分为三大部分: 第一部分,主要讨论有关增强数据密集型应用系统所需的若干基本原则。首先开篇第 1 章即瞄准目标:可靠性、可扩展性与可维护性,如何认识这些问题以及如何达成目标。第 2 章我们比…

PHP反序列化命令执行+PHP反序列化POP大链 +PHP反序列化基础

[题目信息]: 题目名称题目难度PHP反序列化命令执行1 [题目考点]: 反序列化命令执行,获取题目flag。[Flag格式]: SangFor{t5euvZ_OB8Jd_h2-}[环境部署]: docker-compose.yml文件或者docker tar原始文件。 docker-compose up …

内外网文件摆渡系统,如何贯通网络两侧被隔断的工作流?

随着业务范围不断扩大,产生的数据体量越来越多,企业会采取网络隔离,对核心数据进行保护。网络隔离主要目的是保护企业内部的敏感数据和系统不受外部网络攻击的风险,可以通过物理或逻辑方式实现,例如使用防火墙、网闸、…

电商技术揭秘二十六:智能库存预警与补货系统(下)

相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五:电商平台…

我的思考工作流(2024年版)

去年底,我对自己的思考工作流程又做了一些优化和改进,把它变得更为简洁、清晰。 因此,今天我想把它分享给大家,希望能给你一些启发。 我的核心方法论依然是我自己提出的「INKP知识管理法」(参见《打开心智》第五章&…

【刷题笔记】第七天

文章目录 [924. 尽量减少恶意软件的传播](https://leetcode.cn/problems/minimize-malware-spread/)方法一,并查集方法二,dfs [GCD and LCM ](https://vjudge.net.cn/problem/HDU-4497#authorKING_LRL) 924. 尽量减少恶意软件的传播 如果移除一个感染节…

电机控制器电路板布局布线参考指导(五)

电机控制器电路板布局布线参考指导(五)大容量电容和旁路电容的放置 1.大容量电容的放置2.电荷泵电容器3.旁路电容/去耦电容的放置3.1 靠近电源3.2 靠近功率器件3.3 靠近开关电流源3.4 靠近电流感测放大器3.5 靠近稳压器 tips:资料主要来自网络…

环境搭建创建项目_使用DevEco开发工具进行开发_创建项目_认识项目结构---HarmonyOS4.0+鸿蒙NEXT工作笔记001

首先去下载DevEco Studio然后再去安装就可以了 安装下一步下一步非常简单 首先去安装nodejs,可以看到,有两个安装方法,左边是自己安装的制定文件夹就可以了,然后 右边是使用鸿蒙自带的,我们选择第二个 然后我们看这个ohpm其实就跟npm是一个意思,用来管理鸿蒙的包的. 这里我们…

apache配置ssl证书

SSL证书,即安全套接层证书,是一种数字证书,它通过在客户端浏览器和Web服务器之间建立一条加密通道,保证了双方传输信息的安全性。当用户访问一个使用SSL证书保护的网站时,浏览器会显示一个锁形图标,表示连接…

FILE类与IO流

目录 File类的实例化与常用方法 File类的理解 文件路径的表示方式: API的使用 IO流概述与流的分类 I/O流中的是Input/Output的缩写 IO流的分类(不同角度) Java程序中的IO流涉及40多个,但实际上都是由4个抽象类衍生出来的。 F…

零代码编程:用kimichat将mp4视频批量转为mp3音频

一个文件夹里面有多个子文件夹,里面的视频需要转成为mp3音频格式。可以在kimichat中键入提示词: 你是一个Python编程专家,要完成一个Python脚本的编写任务,具体步骤如下: 打开文件夹:D:\CHATGPT For TikT…

Docker Container (容器) 常见命令

Docker 容器的生命周期 什么是容器? 通俗地讲,容器是镜像的运行实体。镜像是静态的只读文件,而容器带有运行时需要的可写文件层,并且容器中的进程属于运行状态。即容器运行着真正的应用进程。容 器有初建、运行、停止、暂停和删除…

HTTP协议安全传输教程

HTTP协议有多个版本,包括但不限于HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2和HTTP/3。这些版本各自具有不同的特点和改进,以适应网络技术的发展和满足不同的需求。例如,HTTP/1.0使用文本格式传输数据,简单易用且兼容性好,…

安装指定版本的ant-design-vue和指定版本的@ant-design/icons-vue 图标组件包

前言: 最近在完成公司的项目时,为了兼容其他的版本,需要安装指定版本的ant-design-vue和ant-design/icons-vue 图标组件包,安装成功之后,分享如下: 安装命令: ant-design-vue: 不…

深入剖析跨境电商平台风控机制,探索测评安全与稳定的秘诀

在跨境电商测评市场鱼龙混杂的当下,测评过程中可能隐藏的陷阱保持高度警觉。多年的测评经验告诉我们,选择一个适合的测评系统对于项目的成功至关重要。近年来,测评技术如雨后春笋般涌现,市场上涌现出众多测评系统,覆盖…

Spring Boot 处理过滤器(filter )中抛出的异常

前言: 在改造老项目登录功能的时候,使用了过滤器对 token 进行有效性验证,验证通过继续进行业务请求,验证不通过则抛出校验异常。 过程: 技术方案拟定后,就着手开始改造,一切都很顺畅&#x…

Linux用户及用户组管理命令

Linux操作系统是一种基于UNIX的多用户、多任务的操作系统。在Linux系统中,用户和用户组的管理是非常重要的,因为它关系到系统安全和多用户环境下的资源共享。本文将详细介绍Linux中用户和用户组管理的相关命令,帮助用户更好地理解和管理Linux…

SpringBoot整合minio服务

这里我选用的是JDK1.8 SpringBoot2.3.12.RELEASE 一、导入依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.2.2</version> </dependency> 二、导入工具类 注意&#xff1a;需要在…

DP4 最小花费爬楼梯

原题链接&#xff1a;最小花费爬楼梯_牛客题霸_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 dp。 开一个dp数组和a数组。dp[i]表示在当前这一格所需要的费用&#xff0c;a数组其实就是题目中的cost数组。 因为最后要求到顶楼的最低费用&a…

Redis: java客户端

文章目录 一、Redis的Java客户端1、Jedis&#xff08;1&#xff09;Jedis操作Redis&#xff08;2&#xff09;Jedis连接池 2、lettuce3、Redisson4、SpringDataRedis客户端&#xff08;1&#xff09;介绍&#xff08;2&#xff09;序列化&#xff08;3&#xff09;StringRedisT…