【kubernetes云原生】k8s资源管理命令与Namespace使用详解
目录
一、前言
二、k8s概述
三、k8s常用操作管理命令
3.1 kubectl 命令用法
3.2 常用控制台管理命令演示
3.2.1 获取全部节点信息
3.2.2 获取当前集群下全部pod
3.2.3 查看某个pod信息
3.2.4 获取当前集群下的所有namespace信息
3.2.5 查看当前集群下已创建的资源
3.2.6 删除某个已存在的pod
3.2.7 删除某个已存在的deployment
3.2.8 删除某个已存在的service
3.3 常用资源管理命令演示
3.3.1 使用命令操作资源
3.3.2 命令式对象配置 :通过命令配置和配置⽂件去操作资源
3.3.3 声明式对象配置:通过apply和配置⽂件操作资源
3.4 kubectl create 和 kubectl apply的区别
四、k8s Namespace简介
4.1 概述
4.2 Namespace 特点
4.3 k8s 四个初始NameSpace名称空间
4.3.1 default
4.3.2 kube-system
4.3.3 kube-public
4.3.4 kube-node-lease
五、NameSpace的常用操作命令
5.1 查看当前k8s集群所有命令空间
5.2 创建新的命名空间
5.3 查看命名空间的详情
5.4 删除命名空间
5.5 查看名称空间信息并指定输出格式
5.6 基于配置文件方式生成命名空间
5.7 删除基于yaml创建的namespace
六、写在文末
一、前言
在k8s的日常运维中,掌握日常必备的控制台操作命令可以说是必备的,本篇将结合实操详细介绍下基于kudadmin模式下常用的操作命令使用。
二、k8s概述
- k8s是一个服务器集群系统,用户可以在集群中部署各种服务,也就是在k8s集群上运行一个个的容器 ;
- 在k8s中,pod是最小的管理单元而非容器,一个pod中可以有多个容器 ;
- 在k8s集群中,所有内容都可以被抽象为资源,通过操作资源来管理k8s集群 ;
三、k8s常用操作管理命令
3.1 kubectl 命令用法
kubectl [command] [TYPE] [NAME] [flags]
命令说明:
- commad:对资源具体的操作,如create创建、 get获取 、 delete删除 ;
- TYPE:指定资源类型,大小写敏感 ;
- NAME:指定资源的名称,大小写敏感,如果省略名称则显示所有资源 ;
- flags:指定可选的参数,如可用-s或者-server指定Kubernetes API server的地址和端口 ;
3.2 常用控制台管理命令演示
3.2.1 获取全部节点信息
kubectl get node
3.2.2 获取当前集群下全部pod
kubectl get pod
这里显示出了上一篇我们部署的一个nginx应用
3.2.3 查看某个pod信息
kubectl get pod pod_name
可以查看下上一篇部署的nginx对应的pod信息
3.2.4 获取当前集群下的所有namespace信息
kubectl get ns
3.2.5 查看当前集群下已创建的资源
kubectl get pod,svc,deploy
3.2.6 删除某个已存在的pod
kubectl delete pod pod名称
如果是靠deploy控制器创建的pod, 直接删除则会自动创建新的;
比如这里我们删除上面的那个nginx
尽管执行了删除命令,但是当我们再次查看pod信息的时候,发现k8s又重新创建了一个
3.2.7 删除某个已存在的deployment
如果需要删除pod,可以直接删除depoly控制器,控制器删除了,对应其创建的pod就会被删除,对应的命令如下:
kubectl delete deployment deployment名称
即下图中对应的这个deployment
3.2.8 删除某个已存在的service
kubectl delete svc/service service名称
可以通过下面的命令查找已存在的service服务,执行删除即可
3.3 常用资源管理命令演示
在上文,我们通过deployment创建了nginx应用对应的pod,属于命令式创建资源对象的方式,下面介绍k8s中几种常用的资源管理的命令方式;
3.3.1 使用命令操作资源
kubectl run 资源名称 --image=镜像名称 --port=端口号
这个就很像以前我们在使用docker部署某个应用时候的一种操作,比如创建一个nginx应用
kubectl run xdclass-nignx-pod --image=nginx:1.23.0 --port=80 kubectl create deployment test-nginx --image=nginx:1.23.0
3.3.2 命令式对象配置 :通过命令配置和配置⽂件去操作资源
语法格式
kubectl create -f 配置⽂件名称.yaml
3.3.3 声明式对象配置:通过apply和配置⽂件操作资源
这种方式在生产环境下也是经常使用的一种方式,务必要熟练掌握,命令格式如下:
kubectl apply -f 配置⽂件名称.yaml
通过上面的操作和前文的知识,我们也了解到,k8s中最小的应用单元为pod,而创建一个pod可以直接创建,或者通过deployment的方式创建出来,所以,通过apply的方式创建一个pod的话,其对应的配置文件既可以是直接创建pod,或者deployment;
声明为pod类型的yaml
在任意目录下创建一个后缀为.yaml的文件,比如这里我们创建一个test-nginx.yaml的文件,配置内容如下:
apiVersion: v1
kind: Pod
metadata:name: nginx
spec:containers:- image: nginx:1.23.0name: podports:- name: nginx-portcontainerPort: 80protocol: TCP
然后在当前的配置文件目录下执行 ,可以看到pod创建成功;
kubectl apply -f ./test-pod-nginx.yaml
声明为deployment类型的 yaml
按照上面同样的方式创建一个yaml的后缀名的配置文件,内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploy labels:chapter: first-app
spec:selector:matchLabels: app: nginxreplicas: 1template:metadata:labels:app: nginxspec:containers:- name : nginximage: nginx:1.23.0ports:- containerPort: 80
使用apply命令执行下之后,可以发现deployment创建成功
3.4 kubectl create 和 kubectl apply的区别
在日常开发运维中,kubectl create与kubectl apply都可以使用,两者的差别主要如下:
- kubectl create 命令首次执行时会创建资源,再次执行时会报错,因为资源名称在同一命名空间内是唯一的;
-
kubectl apply首次执行的时候会创建对应的资源,再次执行时会根据配置文件进行升级、扩容等操作,即使配置文件没有变化也不影响;
四、k8s Namespace简介
4.1 概述
Namespace是k8s系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多用户的资源隔离。
4.2 Namespace 特点
默认情况下,k8s集群中的所有的Pod都是可以相互访问的 ,但在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下 ,总结来说,k8s中的Namespace具有下面特点:
- k8s通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理 ;
- 可以通过k8s的授权机制,将不同的namespace交给不同租户进行管理,这样就实现了多租户的资源隔离;
- 结合k8s的资源配额机制,限定不同租户能占用的资源,例如CPU使用量、内存使用量等等,来实现租户可用资源的管理;
4.3 k8s 四个初始NameSpace名称空间
默认情况下,k8s集群启动后会创建几个默认的初始化命名空间
4.3.1 default
没有指明使用其它名字空间的对象所使用的默认名字空间
4.3.2 kube-system
Kubernetes 系统创建对象所使用的名字空间
4.3.3 kube-public
自动创建的,命名空间下的资源可以被所有人访问(包括未认证用户)
4.3.4 kube-node-lease
集群节点之间的心跳维护
五、NameSpace的常用操作命令
下面列举日常运维过程中与NameSpace操作相关的命令
5.1 查看当前k8s集群所有命令空间
kubectl get namespace或者使用缩写
kubectl get ns
5.2 创建新的命名空间
kubectl create ns 名称
5.3 查看命名空间的详情
kubectl describe ns 名称
5.4 删除命名空间
kubectl delete ns 名称
5.5 查看名称空间信息并指定输出格式
语法格式
kubectl get ns ns名称 -o 格式参数, 常见的是wide、json、yaml
比如将上面的test以yaml格式输出
kubectl get ns test -o yaml
5.6 基于配置文件方式生成命名空间
还可以通过yaml格式的配置文件,使用kubectl命令生成,如下,在当前目录下创建一个测试使用的yaml文件,配置如下:
apiVersion: v1
kind: Namespace
metadata:name: test1
通过下面的命令基于上面的配置文件创建出一个namespace
kubectl create -f test-namespace.yaml
或者
kubectl apply -f test-namespace.yaml
执行后,可以看到上面的test1这个namespace就创建出来了
5.7 删除基于yaml创建的namespace
语法格式
kubectl delete -f yaml名称
六、写在文末
掌握k8s的操作命令对于日常k8s的集群运维可以说非常必要,只有熟练掌握了各种操作命令,才能高效操作k8s集群的各种资源,希望本篇对你有用哦。
相关文章:

【kubernetes云原生】k8s资源管理命令与Namespace使用详解
目录 一、前言 二、k8s概述 三、k8s常用操作管理命令 3.1 kubectl 命令用法 3.2 常用控制台管理命令演示 3.2.1 获取全部节点信息 3.2.2 获取当前集群下全部pod 3.2.3 查看某个pod信息 3.2.4 获取当前集群下的所有namespace信息 3.2.5 查看当前集群下已创建的资源 3…...

String源码深度刨析
前言 我们将从源码角度深度分析特点,来提升对他们的了解以及设计。 String、StringBuilder、StringBuffer的常见面试题及四大区别可以参考:String、StringBuilder、StringBuffer的四大区别解析 String public final class Stringimplements java.io.Se…...

FreeRTOS - 消息队列
一.消息队列的概念及应用消息队列(queue):可以在任务与任务间、中断和任务间传递消息,实现任务接收来自其他任务或中断的不固定的消息1.1任务需求1、使用消息队列检测串口输入2、通过串口发送字符串openled1,openled2&…...

怎样正确做 Web 应用的压力测试?
环境 首先环境是非常重要的,需要尽可能跟生产环境靠近。 比方说,使用同样的nginx版本,php的话需要启用fpm,zend-optimizer等等,参数配置也最好跟生产环境保持一致。 当然,php的版本更加需要保持一致&#x…...

php mysql大学生求职招聘资源信息网zkfdzkf67a8
1.系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和验证码,然后对登录进来的用户判断身份信息,判断是管理员用户还是普通用户。 2.系统用户管理:不管是…...

2023上海市“星光计划”职业院校技能大赛 网络安全竞赛试题任务书
2023上海市“星光计划”职业院校技能大赛 网络安全竞赛试题任务书 A模块基础设施设置/安全加固(200分) 一、项目和任务描述: 假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行&…...

Spring事务源码:创建代理类
参考文章: 《Spring事务源码解析之tx:annotation-driven标签解析》 《Spring 源码解析—事务执行》 参考资料: 《Spring AOP源码:开启注解读取》 《Spring AOP源码2:查找增强器》 《Spring AOP源码3:实现代理》 …...

java14 使用增强的模式匹配切换表达式
野旷天低树,江清月近人。——唐代杜甫《月夜忆舍弟》 使用增强的模式匹配切换表达式(Switch Expressions with Enhanced Pattern Matching) Java 14中引入的“Switch Expressions with Enhanced Pattern Matching”这个功能。 这个功能可以让我们在使用switch cas…...

python【正则表达式】
正则表达式 1.正则的作用 正则表达式式一种可以让复杂的字符串变得简单的工具。 写正则表达式的时候就是用正则符号来描述字符串规则。 2.正则语法 需要导入模块 from re import fullmatch, findall, search2.1.第一类:匹配类符号 1)普通字符—在…...

Ubuntu常见系统问题解决方式
Ubuntu常见系统问题解决方式Ubuntu每次开机后提示检测到系统程序出现问题的解决方法Ubuntu循环登陆问题问题描述原因解决方法文件夹打开缓慢Ubuntu启动后GUI界面卡住不动Ubuntu18.04使用过程中常遇到的问题Ubuntu每次开机后提示检测到系统程序出现问题的解决方法 首先…...

C/C++中的虚拟内存
文章目录一、虚拟内存二、C中的虚拟内存分配模型三、C中的虚拟内存分配模型四、堆区和栈区的区别一、虚拟内存 虚拟内存是一种实现在计算机软硬件之间的内存管理技术,它将程序使用到的内存地址(虚拟地址)映射到计算机内存中的物理地址&#…...

Qt C++与Python混合编程:补充错误
在提示中,需要引用Python.h,出现错误。 1、找不到Python.h 如果是pro工程,需要在里面配置; INCLUDEPATH /Users/xinnianwang/opt/anaconda3/include LIBS /Users/xinnianwang/opt/anaconda3/lib 如果是CMakeLists.txt需要配…...

2023-04-01:当Go语言遇见FFmpeg视频解码器,使用Go语言改写decode_video.c文件,提升视频解码效率与开发体验。
2023-04-01:当Go语言遇见FFmpeg视频解码器,使用Go语言改写decode_video.c文件,提升视频解码效率与开发体验。 答案2023-04-01: 步骤如下: 1.导入必要的依赖库,包括 fmt、os、unsafe 和其它 FFmpeg 库相关…...

Solidity 学习笔记
主要参考网上资料学习,个人学习笔记有删改,参考出处在文末列出。 0 基础 IDE: remixType Bool: bool public _bool true; 默认false;整型:int、uint、uint256,默认0;地址类型:address,分为 payable 和普…...

ThreadLocal原理
关键点总结: ThreadLocal更像是对其他类型变量的一层包装,通过ThreadLocal的包装使得该变量可以在线程之间隔离和当前线程全局共享。在Thread中有一个threadLocals变量,类型为ThreadLocal.ThreadLocalMap,ThreadLocalMap中key是Th…...

串操作指令详解 MOVS,LODS,STOS,CMPS,SCAS,REP
指令包括:MOVS,LODS,STOS,CMPS,SCAS,REP 串的概念:串是连续存放再内存中的字节块或字块。每个串有一个起始地址和长度, 待操作的数据串称为源串,目的地址称为目标串 目录…...

Java实现判断素数
1 问题 判断101-200之间有多少个素数,并输出所有素数。 2 方法 package homework04; public class Test05 { public static void main(String[] args) { for (int i 101; i < 201; i) { boolean flag true; for (int j 2; j…...

PHP初级教程------------------(2)
目录 运算符 赋值运算符 算术运算符 比较运算符 逻辑运算符 连接运算符 错误抑制符 三目运算符 自操作运算符 编辑 计算机码 位运算符 运算符优先级 流程控制 控制分类 顺序结构 分支结构 If分支 Switch分支 循环结构 For循环 while循环 do-while循环 循环控制 …...

【SQL开发实战技巧】系列(三十五):数仓报表场景☞根据条件返回不同列的数据以及Left /Full Join注意事项
系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧…...

springBoot自动配置过程介绍
什么是自动配置 以前整合spring mybatis框架时候,需要加很多的bean, 比如说sqlSessionFactory等等 现在springboot帮我们干了,我们只需要引入对应的starter就可以了。 springBoot可以帮我们配置好了一些bean. 如mysql, mogondb相关操作等等ÿ…...

PostgreSQL最后的救命稻草 — pg_resetwal
pg_resetwal— 重置 PostgreSQL 数据库集群的预写日志和其他控制信息 适用版本:PostgreSQL 12/13/14/15语法 pg_resetwal [ -f | --force ] [ -n | --dry-run ] [option...] [ -D | --pgdata ]datadir描述pg_resetwal清除预写日志 WAL,并可选地重置pg_c…...

彻底关闭Windows更新
一、关闭Windows Update服务 1、按“Windows R”键,打开运行对话框,并输入“services.msc”,然后再单击“确定”。 2、在弹出的服务窗口中,找到“Windows Update”选项并双击打开它。 3、在弹出的“Windows Update的属性”对话框…...

Java正则表达式语法
Java正则表达式的语法与示例 | |目录 1匹配验证-验证Email是否正确 2在字符串中查询字符或者字符串 3常用正则表达式 4正则表达式语法 1匹配验证-验证Email是否正确 public static void main(String[] args) { // 要验证的字符串 String str "servicexsoftlab.net&q…...

【2023-3-29】JavaScript使用promise顺序调用函数并抛出异常
JavaScript使用promise顺序调用函数并抛出异常 场景 新建或者编辑时,一个页面中存在多个表单,每个表单都有单独进行表单验证。点击提交时,若有一个表单校验失败,则不能提交。 ps:为啥不放在一个表单中? (…...

Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能…...

从redis到epoll到mmap
redis为什么这么快? 比较容易答出的答案 1)纯粹的内存操作 2)单线程操作,不用考虑线程切换 其他优势 3)I/O 多路复用,使用epoll 4)Reactor 设计模式 I/O 多路复用有三种 select、poll、epoll select:使用数组存储轮询 poll:使用链表轮询 epo…...

STM32CubeMX快速构造工程模板(一)
STM32CubeMX作为一个免费开源的软件,能够可视化配置STM32或其他产品硬件资源,能过快速地构造工程模板,很是方便!!! 目录 STM32CubeMX快速构造工程模板 首先第一步,打开软件-点击按钮-输入型号-双击打开。...

Java Web中的ServletContext对象
目录 ServletContext对象 获取上下文初始化参数的相关方法 创建ServletContext对象 1)通过 GenericServlet 提供的 getServletContext() 方法 2)通过 ServletConfig 提供的 getServletContext() 方法 3)通过 HttpSession 提供的 getServletCo…...

回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测
回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测 目录回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测 粒子…...

在小公司工作3年,从事软件测试5年了,才发现自己还是处于“初级“水平,是不是该放弃....
毕业前三年,从早到晚,加班到深夜,一年又一年,直至刚入职场的首个黄金三年过年都去了,而职位却仍在原地踏步。尽管感觉自己努力过,但是实际上,自身的能力从没得到过多少提升。 所以在无数个夜晚…...