【k8s】Kubernetes 声明式 API、命令式

news/2024/2/25 20:45:10/文章来源:https://blog.csdn.net/m0_45406092/article/details/135572137

1. 资源管理方式:

1>. 命令式对象管理∶直接使用命令去操作kubernetes资源

kubectl run nginx-pod --image=nginx:1.17.1 --port=80

2>. 命令式对象配置∶通过命令配置和配置文件去操作kubernetes资源

kubectl create/patch -f nginx-pod.yaml

3>. 声明式对象配置∶通过apply命令和配置文件去操作kubemetes资源

kubectl apply -f nginx-pod.yaml

在这里插入图片描述

2. 命令式对象管理:

kubectl命令:kubectl是kubernetes集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。kubectl命令的语法如下∶

kubectl [command] [type] [name] [flags]comand:指定要对资源执行的操作,例如create、get、delete 
type:指定资源类型,比如deployment、pod、service
name:指定资源的名称,名称大小写敏感
flags:指定额外的可选参数## 查看所有pod:
[root@master ~]# kubectl get pod## 查看某个pod:
[root@master ~]# kubectl get pod podname## 查看莫格pod,以yaml格式展示结果:
[root@master ~]# kubectl get pod podname -o yaml## 查看资源类型:
[root@master ~]# kubectl api-resources## 查看集群信息:
[root@master ~]# kubectl cluster-info

我们以一个namespace / pod的创建和删除演示kubectl命令的使用:

## 创建一个名为dev的namespace:
[root@master ~]# kubectl create namespace/ns dev## 获取namespace:
[root@master ~]# kubectl get ns## 在此namespace下创建并运行一个nginx的pod:
[root@master ~]# kubectl run nginxpod(podname) --image nginx(镜像名) -n dev(namespace)## 查看在dev命名空间创建的pod:
[root@master ~]# kubectl get pod -n dev[root@master ~]# kubectl get pod -n dev -o wide## 查看资源在dev命名空间的运行过程:
[root@master ~]# kubectl describe pod podname -n dev## 删除指定的pod:
[root@master ~]# kubectl delete pod nginxpod -n dev## 删除指定的namespace
[root@master ~]# kubectl delete ns dev

3. 命令式对象配置:命令式对象配置就是使用命令配合文件一起来操作kubernetes资源“

1>. 创建一个nginxpod.yml,内容如下:

apiVersion: v1
kind: Namespace
metadata:name: dev---  ## 表示如果需要将多段yaml配置放在一个文件中,中间需要使用"---"分隔apiVersion: v1
kind: Pod
metadata:name: nginxpodnamespace: dev
spec:containers:- name: nginx-containersimage: nginx:1.14-alpine

注意:如果yaml文件中要操作namspace就可以使用以下命令来查看帮助:

[root@master ~]# kubectl explain ns  ## 查看namespace的帮助[root@master ~]# kubectl explain ns.apiVersion  ## 查看namespace版本的帮助[root@master ~]# kubectl explain ns.kind  ## 查看namespace类型的帮助[root@master ~]# kubectl explain ns.metadata  ## 查看namespace元数据的帮助

注意:如果yaml文件中要操作pod就可以使用以下命令来查看帮助:

[root@master ~]# kubectl explain pod  ## 查看操作pod的帮助[root@master ~]# kubectl explain pod.apiVersion  ## 查看pod版本的帮助[root@master ~]# kubectl explain pod.kind  ## 查看pod类型的帮助[root@master ~]# kubectl explain pod.metadata  ## 查看pod元数据的帮助[root@master ~]# kubectl explain pod.spec  ## 查看pod中的设置参数的帮助[root@master ~]# kubectl explain pod.spec.containers  ## 查看pod中容器的帮助

2>. 指定create命令,创建资源:

[root@master ~]# kubectl create -f nginxpod.yml## 查看namespace:
[root@master ~]# kubectl get ns## 查看dev中的pod:
[root@master ~]# kubectl get pod -n dev## 查看nginxpod.yml文件中配置的资源信息:
[root@master ~]# kubectl get -f nginxpod.yml## 删除资源:
[root@master ~]# kubectl delete -f nginxpod.yml

总结:命令式对象配置的方式造作资源,可以简单地认为:命令+yaml配置文件(配置文件中是命令需要的各种参数)。

4. 声明式对象配置

声明式对象配置跟命令式对象配置很相似,但是他只有一个命令apply。

## 执行kubect1 apply -f yaml来创建资源
[root@master ~]# kubectl apply -f nginxpod.yml## 再次执行后会发现资源没有发生改变

总结:声明式对象配置就是使用apply描述一个资源最终的状态(在yaml中定义状态)使用apply操作资源

  • 如果资源不存在,就创建,相当于kubectl create

  • 如果资源已存在,就更新,相当于kubectl patch

5. 三种方式的适用场景:

  • 创建/更新资源:使用声明式对象配置 kubectl apply -f xxx.yaml。

  • 删除资源:使用命令式对象配置 kubectl delete -f xxx.yaml。

  • 查询资源:使用命令式对象管理 kubectl get(describe) 资源名称

参考

k8s-资源管理

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

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

相关文章

CSS 选择器全攻略:从入门到精通(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

环境变量详细说明

Windows之系统环境变量 配置操作: 计算机→属性→高级系统设置→高级→环境变量 系统变量→新建:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.8.0_121 系统变量→Path→编辑:在变量值最后输入 :%JAVA_HOME%\bin;%J…

Linux基础工具的使用(yum,vim,gcc,g++,gdb,make/makefile)【详解】

目录 linux软件包管理器-yum什么是软件包?查找软件包如何安装软件卸载软件 linux编辑器 - vimvim的基本概念vim模式之间的切换vim命令模式各命令汇总vim底行模式各命令汇总 Linux编译器 - gcc/ggcc/g的作用gcc/g选项预处理编译汇编链接静态库与动态库 Linux调试器 -…

【liunx】线程池+单例模式+STL,智能指针和线程安全+其他常见的各种锁+读者写者问题

线程池单例模式STL,智能指针和线程安全其他常见的各种锁读者写者问题 1.线程池2.线程安全的单例模式3.STL,智能指针和线程安全4.其他常见的各种锁4.读者写者问题 喜欢的点赞,收藏,关注一下把! 1.线程池 目前我们学了挂起等待锁、条件变量、信…

优雅设计之美:实现Vue应用程序的时尚布局

前言 页面布局是减少代码重复和创建可维护且具有专业外观的应用程序的基本模式。如果使用的是Nuxt,则可以提供开箱即用的优雅解决方案。然而,令人遗憾的是,在Vue中,这些问题并未得到官方文档的解决。 经过多次尝试,小…

设计模式-委托模式

设计模式专栏 模式介绍模式特点应用场景委托模式在GUI编程场景的应用代码示例Java实现委托模式Python实现委托模式 委托模式在spring中的应用 模式介绍 委托模式是一种软件设计模式,其中一个对象(委托对象)将某些操作委托给另一个对象&#…

ppt怎么录屏录音并且导出?好用录屏软件推荐

ppt已经成为了日常工作与学习中必不可少的工具,而ppt屏幕录制功能,可以方便用户将他人的演讲或视频中的内容记录下来,以便进一步学习与研究。录制ppt演示并将其导出为视频文件,可以帮助我们进行分享,但是很多人不知道p…

基于Python的汽车信息爬取与可视化分析系统

介绍 这款汽车信息网站是基于多项技术和框架设计的全面的汽车信息展示及查询系统。其中,采用了Python Django框架和Scrapy爬虫技术实现数据的抓取和处理,结合MySQL数据库进行数据存储和管理,利用Vue3、Element-Plus、ECharts以及Pinia等前端…

C++设计模式-- 2.代理模式 和 外观模式

文章目录 代理模式外观模式角色和职责代码演示一:代码演示二:外观模式适用场景 代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合 或不能直接引用另一个对象,而代…

Spring高手之路-Spring事务失效的场景详解

目录 前言 Transactional 应用在非 public 修饰的方法上 同一个类中方法调用,导致Transactional失效 final、static方法 Transactional的用法不对 Transactional 注解属性 propagation 设置不当 Transactional注解属性 rollbackFor 设置错误 用错注解 异常…

控制网页的灰度显示

1.代码&#xff1a; 普通网页 <style>html {filter: grayscale(100%);}</style> 或是:webkit内核浏览器写法 <style>html {-webkit-filter: grayscale(100%)}</style> 2.说明&#xff1a; grayscale(amount) :进行灰度转换。 amount转换值的大小&…

国内开源环境漫谈

我国开源软件产业相较于欧美发达国家而言起步相对较晚&#xff0c;开源项目很少超过五年&#xff0c;开发者较年轻。国外很多开源项目都是10年以上的规划与投入。在开源社区发展初期、发展期、协作期、结晶期与流行期的五个阶段中&#xff0c;中国的开源社区平台大多处于前三个…

一个简易的PHP论坛系统

一个简易的PHP论坛系统 php课程设计&#xff0c;毕业设计 预览 技术 bootstrap 4.x jquery css php mysql 5.7 目录结构 登录 管理员 admin/123456 测试用户 user1/123456 更多文章和源码获取查看

大型语言模型综述/总结 LLM A Survey of Large Language Models

A Survey of Large Language Model AbstractINTRODUCTIONOVERVIEW背景LLM的新兴能力LLM的关键技术GPT 系列模型的技术演进 大语言模型资源公开可用的模型检查点或 API常用语料库代码库资源 预训练数据收集架构 论文标题&#xff1a;A Survey of Large Language Model 论文地址&…

初识C#语言

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、C#语言以及特点C# 强大的编程功能 二、C# 与 .NET三、.NET 与 .NET Framwork.Net 框架&#xff08;.Net Framework&#xff09;.NET 与 .NET Framework 总结…

C++核心编程(包含:内存、函数、引用、类与对象、文件操作等)【持续更新】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;C从基础到进阶 C核心编程&#x1f30f;1 内存分区模型&#x1f384;1.1 程序运行前&#x1f384;1.2 程序运行后&#x1f384;1.3 new操作符 &#x1f30f;2 引用&#x1f384;2.1 引用的基…

解决英特尔无线网卡WiFi或者蓝牙突然消失问题

winR&#xff0c;输入“devmgmt.msc”&#xff0c;检查设备管理器中的无线网卡驱动是否安装好。 访问https://www.intel.cn/content/www/cn/zh/download/19351/windows-10-and-windows-11-wi-fi-drivers-for-intel-wireless-adapters.html下载对应系统版本的英特尔无线网卡WiFi…

Edge 浏览器如何设置自动刷新

Edge 浏览器设置自动刷新有两种方式 安装Edge浏览器自动刷新扩展更改页面的源代码文件 目录 方式一&#xff1a;Edge 自动刷新扩展实现&#xff08;推荐&#xff09; 方式二&#xff1a;更改页面的源代码文件 实现页面自动刷新&#xff08;不推荐&#xff09; 方式一&#xff…

国科大-自然语言处理复习

自然语言处理复习 实体关系联合抽取流水线式端到端方法 检索式问答系统流水线方式信息检索&#xff08;IR&#xff09;阶段阅读理解&#xff08;RC&#xff09;阶段基于证据强度的重排基于证据覆盖的重排结合不同类型的聚合 端到端方式Retriever-Reader的联合学习基于预训练的R…

Visual Studio 新特性:对 include 指令进行智能诊断

今天&#xff0c;我们很高兴地宣布新功能&#xff1a;#include 语言智能诊断。 此功能自 Visual Studio 2022 v17.9 预览版2 中可用。通过此新功能&#xff0c;您可以获取到有关每个 include 的引用和生成时间的详细信息&#xff0c;从而更好地了解 #include 指令的行为。 &g…