k8s陈述式资源管理(命令行)
1、资源管理
(1)陈述式资源管理(常用——查、增)
使用kubectl工具进行命令行管理
①特点:对资源的增删查比较方便,对改不友好
②优点:90%以上的场景都可以满足
③缺点:命令冗长、复杂
(2)声明式资源管理(常用——部署资源)
使用yml文件进行声明式资源管理
(3)GUI图形化资源管理
2、kubectl命令详解
(1)查看
kubectl命令大全网站http://docs.kubernetes.org.cn/683.html

| 查看版本信息 | kubectl version |
| 查看所有api的资源对象 | kubectl api-resources |
![]() | |
| 查看k8s的集群信息 | kubectl cluster-info |
![]() | |
| 自动补齐命令 | |
| 基本信息查看 | |
| 查看master节点的状态 | kubectl get cs |
![]() | |
| 查看默认命名空间内的pod信息 | kubectl get pod |
![]() | |
| 查看当前集群所有命名空间 | kubectl get namespaces |
![]() | |
| 查看指定命名空间里的pod | kubectl get pod -n 命名空间名称 |
![]() | |
| 查看默认命名空间内pod的详细信息 | kubectl get pod -o wide |
![]() | |
| 查看指定命名空间内的pod详细信息 | kubectl get pod -o wide -n 命名空间名称 |
![]() | |
| 查看node节点信息和状态 | kubectl get node |
![]() | |
| 查看node节点的详细信息 | kubectl get node -o wide |
![]() | |
| 查看已经部署好的pod的详细信息 | kubectl describe pod pod名称 |
![]() | |
| 查看指定命名空间里的pod的详细情况 | kubectl describe pod pod名称 -n 命名空间名称 |
![]() | |
| 动态查看pod日志 | kubectl logs -f pod名称 |
![]() | |
| 动态查看指定命名空间的pod日志 | kubectl logs -f pod名称 -n 命名空间名称 |
| 创建命名空间 | kubectl create ns 名称 |
![]() | |
| 删除命名空间 | kubectl delete ns 名称 |
![]() | |
| 删除pod(没有真正删除) | kubectl delete pod pod名称 |
|
| |
(2)部署
1)deployment部署pod的两种方式
①陈述式部署(命令行)
②声明式部署(yml)
2)特点
①滚动更新:不是一次性把所有pod全部部署,而是依次部署,主要在pod更新时使用,逐步引入新的pod,逐步减少旧的pod
②自我修复:若有pod节点发生故障,deployment会自动启动新的pod进行代替
③回滚:若更新有问题,deployment会提供还原点,可以手动还原到未更新前的状态
④扩容和缩容:deployment可以随时调整pod的数量,以适应流量的变化
注:必须基于deployment创建的服务才能实现以上功能(绝大多数都使用deployment创建)
| 查看默认命名空间里基于deployment创建的pod | kubectl get deployments.apps |
![]() | |
| 查看指定命名空间里deployment创建的pod | kubectl get deployments.apps -n kube-system |
![]() | |
| 查看默认空间里daemonsets创建的pod | kubectl get daemonsets.apps |
| daemonset不能在命令行创建,只能用yml文件来创建pod,后台运行创建,在每个节点上创建一个方式相同、版本相同的容器运行的pod。一般是依赖环境和重要组件,不会对这些资源进行操作 | |
|
| |
| 创建pod (同一个命名空间pod不能重名) | kubectl create deployment pod名称 --image=nginx (--replicas=3) |
| 注:若是基于deployment方式创建的pod ,或基于daemonset方式创建的pod,均是由控制器创建的pod,使用delete删除pod无法删除,相当于重启pod。先删除控制器,才能删除pod,但删除控制器,所有基于这个控制器的pod全部被删除(慎用)
kubectl delete deployments.apps nginx
| |
| kubectl delete deployments.apps nginx | |
| 不是基于控制器创建的pod (可以直接删除,很少用) | kubectl run pod名称 --image=nginx |
![]() | |
| 远程进入节点容器 | kubectl exec -it 容器名称 bash |
| 注:docker的exec只能在本机使用,kubectl的exec可以跨主机进入容器 | |
|
| |
| 指定命名空间进入容器 | kubectl exec -it 容器名称 bash -n 命名空间名称 |
![]() | |
| 快速结束容器 (用于结束卡在销毁状态的pod) | kubectl delete pod nginx-6799fc88d8-j4hxc --force --grace-period=0 |
| --grace-period表示过度的存活期(默认30秒,可以让pod优雅的结束容器内的进程,然后退出pod) --grace-period=0表示立刻退出 | |
|
| |
| 对deployment创建的pod扩、缩容 (仅限于deployment控制器) | kubectl scale deployment nginx1 --replicas=3 |
|
扩容:
缩容:
| |
| 发布服务的service | |
|
| |
| 查看当前命名空间的service | kubectl get svc |
![]() | |
| 删除service | kubectl delete svc nginx |
![]() | |
| service的类型 | |
| ①ClusterIP:创建service的默认类型,提供一个集群内部的虚拟IP地址,通过这个虚拟IP可以直接访问pod的资源,仅限于pod内部,无法对外提供访问 ②NodePort(常用):在每个node节点上都开放一个相同的端口,外部可以通过node的本机IP+端口访问pod资源,这是集群外部访问service资源的一种方式(四层代理),基于deployment创建的pod可以使用这种方式 nodeip:nodeport(nodeport可随机指派,也可指定,范围30000~32767) | |
| 对外暴露service端口 | kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort |
| --port=80 service集群的端口(可随意指定) --target-port=80 pod内部容器的端口(服务固定的端口号) | |
|
10.96.26.83:集群内部的IP地址,外部不可以访问 80:对应的是内部的service 端口 30934:和内部的service的80端口做映射
| |
|
pod内部的容器的端口是固定的,--port是service和容器映射端口,可以随意指定 --target-port是容器内部的服务端口 | |
| 修改service端口 | kubectl edit svc service名称 |
|
| |
| ③LoadBalance:若service类型设定为LoadBalance,映射地址(云平台提供LoadBalance的地址,需要付费),这种用法仅用于公有云服务供应商在云台上设置的service的场景,外部访问,实现负载均衡 创建service,指定类型为LoadBalance | |
![]() | |
| ④ExternalName(常用):DNS映射,给service分配一个域名,通过域名来访问后端pod的资源,ExternalName的service类型不能提供负载均衡,必须设置一个LoadBalance地址才能实现负载均衡
| |
| 注:企业内部最常见的是NodePort和ExternalName结合一起使用 | |
(3)更新、回滚、发布方式
项目的生命周期:创建——发布——更新——回滚——删除
| 更新服务版本 | kubectl set image deployment nginx nginx=nginx:1.22.0 |
|
| |
| 查看还原点 | kubectl rollout history deployment nginx |
|
| |
| 设置还原点时加上标识便于识别还原点 | kubectl set image deployment nginx nginx=nginx:1.15 --record |
|
| |
| 回滚 | kubectl rollout undo deployment nginx --to-revision=1 |
|
| |
| 查看还原状态 | ①kubectl rollout status deployment nginx ②kubectl get pod -w动态查看 |
![]() | |
| 查看默认命名空间集群内的所有信息 | kubectl get all |
![]() | |
| 看默认命名空间集群内的所有详细信息 | kubectl get all -o wide |
![]() | |
| 查看指定命名空间集群内的所有详细信息 | kubectl get all -o wide -n 命名空间名称 |
![]() | |
相关文章:
k8s陈述式资源管理(命令行)
1、资源管理 (1)陈述式资源管理(常用——查、增) 使用kubectl工具进行命令行管理 ①特点:对资源的增删查比较方便,对改不友好 ②优点:90%以上的场景都可以满足 ③缺点:命令冗长…...
五、HTML 标题
在 HTML 文档中,标题很重要。 一、HTML 标题 标题(Heading)是通过 <h1> - <h6> 标签进行定义的。<h1> 定义最大的标题。 <h6> 定义最小的标题。 <h1>这是一个标题。</h1> <h2>这是一个标题。&l…...
三菱MR-JE伺服脉冲轴应用参数设置
三菱MR-JE伺服在脉冲轴控制上的应用,常用参数设置如下: 1、常用参数 未完......
通信原理课设(gec6818) 006:网络编程
目录 1、概念 2、通信 3、通信基本流程 TCP: UDP: 4、函数 I 创建套接字 II 绑定地址 III 字节序转换 IV 地址转换 V 监听 VI accept VII connect VIII 从套接字接收信息 IX 从套接字发送消息 X 关闭套接字 5、网络配置 1、确保你的网卡里面有两个虚拟网卡&a…...
一体化、一站式!智能视频客服加码全媒体云呼叫中心能力
凭借对电话、短信、邮件、社交媒体、视频等数种沟通渠道强大的统一集成能力,全媒体云呼叫中心已跃升成为现代企业客户服务的核心工具,高效便捷地为企业提供客户服务。而随着消费者需求愈加多元化和个性化,传统的语音通话方式已无法满足部分消…...
Vue的watch功能:实现响应式数据更新
watch是vue内部提供的一个用于侦听功能的更通用的方法,其用来响应数据的变化,通过特定的数据变化驱动一些操作。简言之:当需要被watch监听的数据发生变化时就会被执行watch中的逻辑。实现数据的实时更新! 普通监听 <template…...
兔单抗制备方法的发展-杂交瘤技术|卡梅德生物
兔单克隆抗体技术是近年来在抗体研究领域中取得的重要进展之一。研究人员通过改进抗原设计、免疫策略和单克隆B细胞培养条件,提高了单克隆抗体的产量和特异性。相比于传统的小鼠单克隆抗体技术,兔单克隆抗体技术具有更大的抗原特异性和更高的亲和力&…...
【数据结构】图论与并查集
一、并查集 1.原理 简单的讲并查集,就是查询两个个元素,是否在一个集合当中,这里的集合用树的形式进行表示。并查集的本质就是森林, 即多棵树。 我们再来简单的举个例子: 假设此时的你是大一新生,刚进入大学,肯定是…...
冲刺港股IPO,速腾聚创「承压」
对于「光鲜」的激光雷达公司来说,当下最难的问题是:如何说服投资者相信,前装市场能够按照预期定点订单兑现。 今年,作为国内高阶智驾头部车企之一的华为,在陆续推出的新车型上开始「降本」。其中,问界智驾版…...
Linux基础知识点(五-信号)
一、信号的基本概念 1.1 信号的概念 信号(signal),又称为软中断信号,用于通知进程发生了异步事件,它是Linux系统响应某些条件而产生的一个事件,它是在软件层次上对中断机制的一种模拟,是一种异…...
SpringBoot 一个注解实现数据脱敏
什么是数据脱敏 数据脱敏是指对某些敏感信息,例如姓名、身份证号码、手机号、固定电话、银行卡号、邮箱等个人信息,通过脱敏算法进行数据变形,以保护敏感隐私数据。 数据脱敏通常涉及以下几种主要方法: 替换: 将原始…...
记录:开始学习网络安全
本文持续更新学习进度 背景 在私企干了5年虚拟化、云原生相关的运维,学到了很多,但不成体系。老板是清华毕业法国留学在德勤干过,最后回国创业的野路子。我工作是为了更好的生活,我挺担心老板因为家庭变故或者炒个原油宝&#x…...
C语言—第1次作业:编译与连接基础知识
常做练习巩固知识 本次作业答案链接如下: 答案解析——C语言—第1次作业:编译与连接基础知识 1.字符串的结束标志是:( ) A.是0 B.是EOF C. 是\0 D.是空格 2.关于C语言关键字说法正确的是:( ) A.关…...
not attached to window manager问题解决
关于出现这个问题,一般是因为Activity已经在finish了,但是还在dialog.show(),或者dialog.dismiss().导致window manager无法管理dialog。解决办法如下: /** * 20210913 安全关闭对话框 . * 避免报:not attac…...
影视后期: PR调色处理,调色工具面板介绍
写在前面 整理一些影视后期的相关笔记博文为 Pr 调色处理,涉及调色工具面板简单认知包括 lumetri 颜色和范围面板理解不足小伙伴帮忙指正 元旦快乐哦 _ 名词解释 饱和度 是指色彩的鲜艳程度,也被称为色彩的纯度。具体来说,它表示色相中灰色…...
ARM AArch64的虚拟化(virtualization)详解(上)
目录 一、概述 开始之前 二、虚拟化介绍 为什么虚拟化很重要...
计算机组成原理知识总结
目录 第一章、计算机系统概述知识框架:1.冯诺依曼机和存储程序的概念?2.计算机的工作过程?3.在计算机系统结构中,什么是编译?什么是解释?4.描述一下指令执行过程?1) 取指令: PC 一&g…...
springboot学习(八十五) 解决springboot3.2找不到资源无法抛出404错误的问题
前言 springboot3.2以下可以定义ErrorPageRegistrar将404错误转发到一个接口地址,但升级到springboot3.2(spring6.1)后,该配置不生效,抛出了500错误。 以前的错误页面处理如下: ConditionalOnClass(ErrorPageRegist…...
OpenHarmony 应用通用签名
一.背景 由于hap包需要经过签名才能安装到设备上,在DevEco Studio可以进行自动签名,但是自动签名只能安装在当前的设备上,在其他设备上不能安装,所以我们需要进行通用的手动签名,手动签名HarmonyOS和OpenHarmony流程是…...
Redis:原理+项目实战——Redis实战1(session实现短信登录(并剖析问题))
👨🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis的Java客户端 📚订阅专栏:Redis速成 希望文章对你们有所帮助…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

















生成一个新的pod


































数字越大,就是最近的一次的操作






