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

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.rhkb.cn/news/237530.html

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

相关文章

Git相关3 —— 命令及添加Gitee的公钥

1.Git相关命令1 -- 工作目录、暂存区、本地仓库、 使用平台有:cmd、Git bash、VSCode window系统修改VSCode默认终端为git bash git init 初始化 --- 新增.git 文件夹 git status 查看 文件/文件夹 状态 git add 需要追踪的文件名/文件夹名 提交到暂存区 git add…

【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格

背景需求: 制作一个EXCEL模板,每个班级的班主任统计 班级图书量(一个孩子10本,最多35个孩子350本) EXCEL模板 1.0版本: 将这个模板制作N份——每班一份 项目:班级图书统计表 核心:一个EXCEL模板批量生成…

阳光保险选择OceanBase稳定运行超700天

阳光保险集团成立于 2005 年 7 月,旗下拥有财产保险、人寿保险、信用保证保险、资产管理等多家专业子公司,是全球市场化企业中成长最快的集团公司之一,目前位列中国保险行业前八。随着数字化升级趋势的不断加速,很多企业产生将软硬…

数据库练习题

素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varchar(10) NO…

【AIGC】IP-Adapter:文本兼容图像提示适配器,用于文本到图像扩散模型

前言 IPAdapter能够通过图像给Stable Diffusion模型以内容提示,让其生成参考该图像画风,可以免去Lora的训练,达到参考画风人物的生成效果。 摘要 通过文本提示词生成的图像,往往需要设置复杂的提示词,通常设计提示词变…

网络安全技术新手入门:在docker上安装dvwa靶场

前言 准备工作:1.已经安装好kali linux 步骤总览:1.安装好docker 2.拖取镜像,安装dvwa 一、安装docker 输入命令:sudo su 输入命令:curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key …

结构型设计模式——适配器模式

适配器模式 这个更加好理解,就是做适配功能的类,例如,现在手机没有了圆形耳机接口,只有Type-C接口,因此你如果还想要使用圆形耳机的话需要买个圆形接口转Type-C的转换器(适配器),这…

Java SE入门及基础(11)

程序调试 1. 什么是程序调试 当程序出现问题时,我们希望程序能够暂停下来,然后通过我们操作使代码逐行执行,观察整个过程中变量的变化是否按照我们设计程序的思维变化,从而找问题并解决问题,这个过程称之为程序调试…

Grind75第9天 | 733.图像渲染、542.01矩阵、1235.规划兼职工作

733.图像渲染 题目链接:https://leetcode.com/problems/flood-fill 解法: 可以用深度优先搜索和广度优先搜索。 深度优先搜索。每次搜索到一个方格时,如果其与初始位置的方格颜色相同,就将该方格的染色,然后继续对…

SSH远程登录协议

一、SSH的介绍 1.1什么是SSH服务器 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为…

DNS解析原理和k8s DNS 实践

1. 问题背景 1.1 域名解析异常 近期开发的一个功能,需要在k8s集群容器环境中调用公司内部api,api提供了内网域名,解析内网域名异常导致请求超时,因此梳理了下DNS的知识点。 可以先看到下面👇这段配置,修…

Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏时钟都居中功能实现一

1.前言 在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏锁屏功能中,时钟显示的很大,并且是在左旁边居中显示的, 由于需要和竖屏显示一样,所以就需要用到小时钟显示,然后同样需要居中,所以就来分析下相关的源码,来实现具体的功能 2.S…

线性代数——(期末突击)概率统计习题(概率的性质、全概率公式)

目录 概率的性质 题一 全概率公式 题二 题三 概率的性质 有限可加性: 若有限个事件互不相容,则 单调性: 互补性: 加法公式: 可分性: 题一 在某城市中共发行三种报纸:甲、乙、丙。在这个…

css宽度适应内容

废话不多说,看如下demo,我需要将下面这个盒子的宽度变成内容自适应 方法有很多,如下 父元素设置display:flex 实现子元素宽度适应内容 如下给父元素设置flex能实现宽度自适应内容 <!DOCTYPE html><html lang"en"><head><meta charset"U…

【K12】Python写分类电阻问题的求解思路解析

分压电阻类电路问题python程序写法 一个灯泡的电阻是20Ω&#xff0c;正常工作的电压是8V&#xff0c;正常工作时通过它的电流是______A。现在把这个灯泡接到电压是9V的电源上&#xff0c;要使它正常工作&#xff0c;需要给它______联一个阻值为______的分压电阻。 解决思想 …

基于Jackson封装的JSON、Properties、XML、YAML 相互转换的通用方法

文章目录 一、概述二、思路三、实现四、测试 一、概述 我们在 yaml转换成JSON、MAP、Properties 通过引入 实现了JSON、Properties、XML、YAML文件的相互转换&#xff0c;具体的类、方法如下&#xff1a; 上面的实现&#xff0c;定义了多个类、多个方法&#xff0c;使用太不…

中仕公考:2024年上半年中小学教师资格考试(笔试)报名已开始

2024年上半年中小学教师资格考试(笔试)报名工作于1月12日开始&#xff0c;此次笔试在31个省(自治区、直辖市)举办&#xff0c;各省(自治区、直辖市)的报名公告将陆续上网。 个别地区报名截止时间有所差异&#xff0c;上海1月13日报名截止&#xff0c;浙江、天津、河南1月14日截…

Redis-Cluster 与 Redis 集群的技术大比拼

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Redis-Cluster 与 Redis 集群的技术大比拼 前言概念与原理对比Redis-Cluster&#xff1a;基于哈希槽的分布式解决方案传统 Redis 集群&#xff1a;主从架构下的数据分片方式 搭建与配置的异同Redis-Cl…

面向对象的三大特征之二:继承 --java学习笔记

什么是继承? 关键字extends,用这个关键字&#xff0c;可以让一个类和另一个类建立起父子关系 继承的特点&#xff1a;子类能继承父类的非私有成员&#xff08;成员变量、成员方法&#xff09;继承后对象的创建&#xff1a;子类的对象时由子类、父类共同完成的 代码演示&am…

杨中科 ASP.NET Core 中的依赖注入的使用

ASP.NET CORE中服务注入的地方 1、在ASP.NET Core项目中一般不需要自己创建ServiceCollection、IServiceProvider。在Program.cs的builder.Build()之前向builderServices中注入 2、在Controller中可以通过构造方法注入服 务。 3、演示 新建一个calculator类 注入 新建TestC…