Mr. Cappuccino的第37杯咖啡——Kubernetes资源管理

news2024/11/19 2:37:09

Kubernetes资源管理

    • kubectl常用的命令
      • 陈述式管理方法
          • 1. 创建一个namespace
          • 2. 查询所有namespace
          • 3. 在namespace下运行一个pod
          • 4. 查询指定namespace下的pod
          • 5. 查看指定pod的详细信息
          • 6. 删除pod
          • 7. 删除namespace
      • 声明式管理方法
        • 命令式对象配置
          • 1. 创建yaml文件
          • 2. 基于yaml文件创建资源
          • 3. 基于yaml文件查询资源
          • 4. 基于yaml文件删除资源
        • 声明式对象配置
          • 1. 基于yaml文件创建资源
          • 2. 基于yaml文件更新资源

kubectl常用的命令

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

kubectl [command] [type] [name] [flags]
comand:指定要对资源执行的操作,例如create、get、delete
type:指定资源类型,比如deployment、pod、service
name:指定资源的名称,名称大小写敏感
flags:指定额外的可选参数

kubectl的命令可分为三类:

  1. 陈述式管理方法 - 主要依赖命令行CLI工具进行管理
  2. 声明式管理方法 - 主要依赖统一资源配置清单(manifest)进行管理
  3. GUI式管理方法 - 主要依赖图形化操作界面(web界面)进行管理

陈述式管理方法

  1. Kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口;
  2. kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver 能识别的信息,进而实现管理k8s各种资源的一种有效途径;
  3. kubectl 的命令大全:
kubectl --help
  1. k8s官方中文文档
1. 创建一个namespace

语法:

kubectl create ns/namespace namespace名称

实例:

kubectl create ns bubble-dev
kubectl create namespace bubble-dev

在这里插入图片描述

2. 查询所有namespace

语法:

kubectl get ns/namespace

实例:

kubectl get ns
kubectl get namespace

在这里插入图片描述

3. 在namespace下运行一个pod

语法:

kubectl run pod --image=镜像名称 -n namespace名称

实例:

kubectl run pod --image=nginx -n bubble-dev

在这里插入图片描述

4. 查询指定namespace下的pod

语法:

kubectl get pods -n namespace名称

实例:

kubectl get pods -n bubble-dev

在这里插入图片描述
如果不使用-n指定namespace,则会查询默认namespace(default)下的pod

5. 查看指定pod的详细信息

语法:

kubectl describe pod pod名称 -n namespace名称

实例:

kubectl describe pod pod-864f9875b9-kwbj2 -n bubble-dev

在这里插入图片描述

6. 删除pod

语法:

kubectl delete pods pod名称 -n namespace名称

实例:

kubectl delete pods pod-864f9875b9-kwbj2 -n bubble-dev

在这里插入图片描述
但是使用kubectl delete pods命令删除pod,之后又会重新启动一个新的pod
在这里插入图片描述
此时pod的名称也已经发生了变化,如果想要完全删除掉一个pod,需要删除掉这个pod的deployment或者整个namespace

7. 删除namespace

语法:

kubectl delete namespace/ns namespace名称

实例:

kubectl delete namespace bubble-dev
kubectl delete ns bubble-dev

在这里插入图片描述
此时namespace以及namespace下运行的所有pod都被删除掉了
在这里插入图片描述

声明式管理方法

  1. 适合于对资源的修改操作;
  2. 声明式资源管理方法依赖于资源配置清单文件对资源进行管理;
  3. 资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析);
  4. 对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到k8s集群里;
  5. 语法格式:kubectl create/apply/delete -f -o yaml

命令式对象配置

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

1. 创建yaml文件

自定义yaml文件名称:nginx-pod.yaml

vi nginx-pod.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: bubble-dev # 指定Namespace空间名称 

---

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod    # 指定pod的名称
  namespace: bubble-dev  # 指定该pod对应的Namespace
spec:
  containers: 
  - name: nginx-container # 运行一个nginx容器
    image: nginx:1.17.9  # 指定镜像的名称

在这里插入图片描述

2. 基于yaml文件创建资源
kubectl create -f nginx-pod.yaml

在这里插入图片描述

3. 基于yaml文件查询资源
kubectl get -f nginx-pod.yaml

在这里插入图片描述

4. 基于yaml文件删除资源
kubectl delete -f nginx-pod.yaml

在这里插入图片描述

声明式对象配置

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

其实声明式对象配置就是使用apply描述一个资源最终的状态(在yaml中定义状态)
使用apply操作资源:
如果资源不存在,就创建,相当于 kubectl create
如果资源已存在,就更新,相当于 kubectl patch

1. 基于yaml文件创建资源
kubectl apply -f nginx-pod.yaml

在这里插入图片描述

2. 基于yaml文件更新资源

将yaml文件中Nginx的版本从1.17.9改成1.17.8,再执行命令
在这里插入图片描述
从运行结果可知,此时pod是发生了变化的

kubectl describe pod nginx-pod -n bubble-dev

在这里插入图片描述
总结:三种方式应该怎么用?

  1. 创建/更新资源,使用声明式对象配置: kubectl apply -f xxxx.yaml
  2. 删除资源,使用命令式配置: kubectl delete -f xxxx.yaml
  3. 查询资源,使用命令式对象管理: kubectl get(describe) 资源名称+命令空间

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】多线程(初阶)

目录 Thread 线程的创建 线程的常见属性 中断线程 等待线程 休眠线程 线程的状态 多线程相比于单线程的优势 Thread 在Java中操作多线程,最常用的类就是Thread。 Thread 类是 JVM 用来管理线程的一个类,换句话说,每个线程都有一个唯一…

一网打尽带环链表问题(手把着手带你理解,木有基础也能看懂!)

目录 0.前言 1.认识带环链表 2.带环链表OJ问题简述 3.判断是否为带环链表 4. 寻找入环节点(法一:数学推理的魅力) 5. 寻找入环节点(暴力拆解带环链表的魄力) 6.番外:判断是否为带环链表(fast和slow的…

树上的DP

ACACAC来的如此之快,让我以为还要再调试几个点(h),本文涉及思路参考:参考文章 嗯,这个题和思路让我对跨父节点的树上链有了一个认识,我们来看一下: 如果说,我们要对这样的一条链进行dpdpdp操作&#xff0c…

[GXYCTF2019]BabysqliV3.0

发现我们随便上传一个以后返回的是 alert(Wrong pass); 密码错误 如果上传一个账号永真的话返回 Not this user! 没有这个用户,所以感觉可以使用盲注,对账号进行盲注 可是题目 ascii(substr((select database()),1,1))>1 也不对 最后才知道是…

电脑组装配件知识

目录 1.电脑硬件基础知识 1.1CPU 1.2内存 ​编辑 1.3硬盘 1.4主板 1.5显卡 ​编辑 1.6显示器 1.7电源 1.8机箱 2.电脑硬件搭配及选购 2.1硬件搭配原则 2.2怎样查询软件或游戏配置 2.3配件购买注意事项 2.4搭配一台普通办公电脑 3.电脑组装 1.电脑硬件基础知识 …

软件测试/测试开发 | 一文学会 Appium 环境配置

Appium 是一个开源的、跨平台的测试框架,可以用来测试 Native App、混合应用、移动 Web 应用(H5 应用)等,也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念: •无需用户对 App 进行任何修改或…

OAuth2.0 开放平台认证授权开发套件 Authmore-Framework 1.0 发布

简介 | Intro 基于 OAuth2.0 协议的开放平台认证授权开发套件, 包含授权服务和开放平台 Docker 镜像,基于 Spring Boot Starter 的资源服务工具包和客户端(第三方应用)工具包 优点 | Advantages 简洁:专注核心功能 —— 社会化…

剑指offer----C语言版----第十六天----面试题22:链表中的倒数第k个节点

目录 1. 链表中倒数第 k 个节点 1.1 题目描述 1.2 思路一 1.3 思路二: 1.4 总结----代码的鲁棒性 1. 链表中倒数第 k 个节点 原题链接: 剑指 Offer 22. 链表中倒数第k个节点 - 力扣(LeetCode)https://leetcode.cn/problems/l…

竹制品行业市场运行态势及未来前景分析

2023-2029年中国竹制品行业市场运行态势及未来前景分析报告报告编号:1691644免费目录下载:http://www.cninfo360.com/yjbg/qthy/qt/20230110/1691644.html本报告著作权归博研咨询所有,未经书面许可,任何组织和个人不得以任何形式复…

基于Power BI的终端消费会员客户价值RFM分析

一、原理:RFM分析 (一)概念 RFM模型衡量当前客户价值和客户潜在价值的重要工具和手段。通过一个客户的近期购买行为、购买的总体频率以及花了多少钱三个维度来描述该客户价值状况的客户分类模型。 (二)分析维度 R&a…

使用标量衍射理论和菲涅耳和弗劳恩霍夫衍射的衍射对波动光学进行建模(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本文使用Matlab对波动光学进行建模。包括使用标量衍射理论和菲涅耳和弗劳恩霍夫衍射的衍射。 📚2 运行结果 &#…

北大硕士LeetCode算法专题课-栈、队列相关问题

算法面试相关专题: 北大硕士LeetCode算法专题课--链表相关问题_ 北大硕士LeetCode算法专题课-查找相关问题_ 北大硕士LeetCode算法专题课-字符串相关问题_ 北大硕士LeetCode算法专题课-数组相关问题_ _ 北大硕士LeetCode算法专题课-基础算法之排序_ 北…

四、Javaweb之Filter、Listener、Ajax、Vue

文章目录12. Filter 和 Listener12.1 Filter快速入门和执行流程12.2 Filter使用细节12.3 Filter案例:登录验证12.4 Listener13. AJAX13.1 AJAX快速入门13.2 AJAX案例13.3 Axios异步框架13.4 JSON13.5 JSON案例SelectAllServlet.javabrand.htmlAddServlet.javaaddBra…

某集团汽车配件电子图册性能分析案例(二)

背景 汽车配件电子图册系统是某汽车集团的重要业务系统。业务部门反映,汽车配件电子图册调用图纸时,出现访问慢现象。 某汽车集团总部已部署NetInside流量分析系统,使用流量分析系统提供实时和历史原始流量。本次分析重点针对汽车配件电子图…

JDBC简介及原理和使用介绍

JDBC简介及原理和使用介绍JDBC简介 jdbc概述 ​ Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 …

WebGL-iTwin.js】实战篇(二):用nodejs代码详解iTwin.js中PhysicalObject生成方法

PhysicalObject 即真实存在的物理对象,比如:电脑、桌子等。在webgl中,我们人眼能看到的模型都是PhysicalObject,由多种几何图元类型构成,如:网格、实体、曲面、曲线,点云等。 其中带索引的多边…

XCTF:cat

打开是一个输入框,要求输入域名,尝试输入baidu.com进行测试 并无任何回显,测试下127.0.0.1本地地址 执行成功,并出现ping命令结果,这里很容易联想到命令注入,尝试进行命令拼接注入 但测试了常用的拼接字…

【5】变量和常量

一、什么是变量 首先我们要理解这么一个概念,在程序的运行过程中所有数据是保存在内存中的,我们代码中想使用这个数据的时候就要从内存中找,而变量的作用类似就是将内存地址保存,之后直接通过这个变量找内存中的数在Go语言中&…

JNI和Ndk开发

按照一下配置,基本能保证demo跑通 1、下载NDK,下载需要的版本 2、下载Cmake版本 3、项目结构:含C源码 4、编写JNI的加载类 public class YjkModel {static {System.loadLibrary("nativ"); //跟CMakeLists.txt 库名一致}public nat…

基于 APISIX 的服务网格方案 Amesh 积极开发中!

作者lingsamuel,API7.ai 云原生技术专家,Apache APISIX Committer。 在云原生快速发展的前提下,服务网格领域也开始逐渐火热。目前阶段,大家所熟知的服务网格解决方案很多,每种产品又各有其优势。因此在面对不同的行业…