三、k8s快速入门之Kubectl 命令基础操作
⭐️创建Pod
[root@master ~]# kubectl run nginx --image=harbor.tanc.com/library/ngix:latest
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generator=run-pod/v1 or kbectl create instead.
deployment.apps/nginx created
⭐️查看容器状态
[root@master ~]# kubectl run nginx --image=harbor.tanc.com/library/ngix:latest
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generator=run-pod/v1 or kbectl create instead.
deployment.apps/nginx created
⭐️开放端口
kubectl expose [pod名] --port [端口号]
⭐️查看服务service
kubectl get svc
⭐️ 增加副本数
kubectl scale deployment [pod名] --repolicas=[副本数]
⭐️删除pod-如果你的删除后你设定的副本数大于你当前pod数,rs就会给你在重新创建一个
kubectl delete pod [pod名]
🌟 实列
创建nginx pod,端口映射为80-->8000,期待副本数为3个
kubectl run nginx --image=harbor.tanc.com/library/nginx:latest
kubectl scale deployment nginx --replicas=3
kubectl expose deployment nginx --port=8000 --target-port=80
查看一下有几个副本数
[root@master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-6b48575596-bsdt2 1/1 Running 0 16m 10.244.2.3 node2 <none> <none>
nginx-6b48575596-fbdjf 1/1 Running 0 22m 10.244.2.2 node2 <none> <none>
nginx-6b48575596-g892j 1/1 Running 0 22m 10.244.1.3 node1 <none> <none>
删除一个副本试一下
[root@master ~]# kubectl delete pod nginx-6b48575596-g892j
pod "nginx-6b48575596-g892j" deleted
在来查看一下 它又重新运行了一个
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6b48575596-bsdt2 1/1 Running 0 22m
nginx-6b48575596-fbdjf 1/1 Running 0 27m
nginx-6b48575596-wzmdp 1/1 Running 0 44s
由于我们映射了一个端口号我们可以试着访问一下
[root@master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-6b48575596-bsdt2 1/1 Running 0 23m 10.244.2.3 node2 <none> <none>
nginx-6b48575596-fbdjf 1/1 Running 0 29m 10.244.2.2 node2 <none> <none>
nginx-6b48575596-wzmdp 1/1 Running 0 2m34s 10.244.1.4 node1 <none> <none>
⭐️增加\减少副本期望数
kubectl scale deploy [deploy名] --replica=[副本数]
⭐️隔离和恢复隔离
kubectl cordon <node_name>
kubectl uncordon <node_name>
⭐️驱逐
kubectl drain <node>
🌟 滚动更新
创建一个deploy在创建三个nginx:v1的pod
[root@master test]# cat apply.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: dp-test1labels:test: dp1
spec:replicas: 3template:metadata:name: weblabels:app: webappspec:containers:- name: nginx-appimage: harbor.tanc.com/library/nginx:v1imagePullPolicy: IfNotPresentports:- name: webcontainerPort: 80
执行
kubectl apply -f apply.yaml --record=true
–record的作用是将当前命令记录到revision中,可以知道每个revision对应的是哪个配置文件。
查看deploy信息
kubectl describe dp-test1
把镜像换成v2在试一下
kubectl describe deploy dp-test1
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal ScalingReplicaSet 10m deployment-controller Scaled up replica set dp-test1-688f6479b to 3Normal ScalingReplicaSet 7s deployment-controller Scaled up replica set dp-test1-b5bc484f9 to 1Normal ScalingReplicaSet 7s deployment-controller Scaled down replica set dp-test1-688f6479b to 2Normal ScalingReplicaSet 7s deployment-controller Scaled up replica set dp-test1-b5bc484f9 to 2Normal ScalingReplicaSet 5s deployment-controller Scaled down replica set dp-test1-688f6479b to 1Normal ScalingReplicaSet 5s deployment-controller Scaled up replica set dp-test1-b5bc484f9 to 3Normal ScalingReplicaSet 5s deployment-controller Scaled down replica set dp-test1-688f6479b to 0上面的日志信息就描述了滚动升级的过程:
① 启动一个新版Pod。
② 把旧版Pod数量降为2。
③ 再启动一个新版,数量变为2。
④ 把旧版Pod数量降为1。
⑤ 再启动一个新版,数量变为3。
⑥ 把旧版Pod数量降为0。
查看revision历史记录,
kubectl rollout history deployment dp-test1
deployment.extensions/dp-test1
REVISION CHANGE-CAUSE
1 kubectl create --filename=apply.yaml --record=true
2 kubectl create --filename=apply.yaml --record=true
回滚
kubectl rollout undo deployment dp-test1 --to-revision=1 ##这样他就会到v1了
查看
[root@master test]# kubectl get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
dp-test1 3/3 3 3 27m nginx-app harbor.tanc.com/library/nginx:v1 app=webapp
⭐️ 进入容器
kubectl exec -it [pod]
未仅允许禁止转载
相关文章:
三、k8s快速入门之Kubectl 命令基础操作
⭐️创建Pod [rootmaster ~]# kubectl run nginx --imageharbor.tanc.com/library/ngix:latest kubectl run --generatordeployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generatorrun-pod/v1 or kbectl create instead. deplo…...
深度学习-BP算法详解
BP(Back Propagation,反向传播)是训练神经网络的重要算法之一。它通过计算误差并将误差反向传播,以更新神经网络中的权重和偏置,进而使模型更好地拟合数据。 1. BP算法的基本原理 反向传播的基本思想是: …...
Java审计对比工具JaVers使用
最近有个需求,需要将页面的内容生成excel或者word文档,而且每次的修改都需要生成新的版本,同时需要记录每次修改变化的内容。我们会把每次的修改的内容提交赋值给一个java对象,同时存储到数据库一条新数据,对应数据表一…...
unity中预制体的移动-旋转-放缩
unity中预制体的移动-旋转-放缩 左上侧竖栏图标介绍Tools(手形工具)Move Tool(移动工具,单位米)Rotate Tool(旋转工具,单位角度)Scale Tool(缩放工具,单位倍数)Rect Tool(矩形工具)Transform Tool(变换工具)图标快捷键对照表工具使用的小技巧…...
【压力测试】如何确定系统最大并发用户数?
一、明确测试目的与了解需求 明确测试目的:首先需要明确测试的目的,即为什么要确定系统的最大并发用户数。这通常与业务需求、系统预期的最大用户负载以及系统的稳定性要求相关。 了解业务需求:深入了解系统的业务特性,包括用户行…...
ubuntu常用基本指令简记
一、在线帮助 1、help Linux命令可以分为内部命令和外部命令,内部命令就是由Linux默认Shell-bash提供的命令,而非bash提供的命令就是外部命令。 对于内部命令,可以使用help命令来获取帮助 形式为 help 指令 2、man 在日常使用中碰到的绝…...
【解决方案】用git reset --hard重置了提交但是发现reset了一些本不该reset的内容,是不是寄了?
使用 git reset --hard [commit_id] 命令后,所有的更改(包括暂存区和工作区的更改)都会被重置到指定的提交。如果想要撤销这个操作,恢复到重置之前的状态,可以尝试以下方法: 1. 使用 Git Reflog 恢复 Git…...
ACM模式下Java读取控制台输入注意事项及输出规范化
背景 在ACM模式下。需要我们去接受输入的参数,一般是使用Scanner去读取控制台输入的参数System.in。 不熟悉的情况下,很容易出现问题,针对常见的问题做一个总结。 一、nextXxx 如next,nextInt,nextFloat,…...
面试题整理 2
总结了本次面试遇到的值得整理记录的面试题。 目录 变量赋值判断 变量判断 Foreach使用 Mysql优化策略 合理的索引设计 查询优化 数据表结构设计 配置优化 合理使用事务 定期维护数据库 使用缓存 监控与性能分析 Redis主从复制 介绍 配置 示例 Redis 数据类型…...
华为自研仓颉编程语言官网上线 首个公测版本开放下载
仓颉编程语言官网正式公开上线,同时首个公测版本开放下载。本次仓颉编程语言官网上线了首页、在线体验、文档、学习、下载、动态以及三方库共六个模块,可供开发和学习和体验。 据悉,仓颉编程语言是在今年6月的华为开发者大会上正式公布&…...
NVR监测软件/设备EasyNVR多品牌NVR管理工具/设备对城市安全有哪些具体益处?
在智慧城市的建设中,各种先进的技术系统正发挥着越来越重要的作用。其中,NVR监测软件/设备EasyNVR作为一种高效的视频边缘计算网关,不仅能够实现视频数据的采集、编码和存储,还能与其他智慧城市系统进行深度集成,共同推…...
MFC工控项目实例二十八模拟量信号每秒采集100次
用两个多媒体定时器,一个定时0.1秒计时,另一个定时0.01秒用来对模拟量信号采集每秒100次。 1、在SEAL_PRESSUREDlg.h中添加代码 class CSEAL_PRESSUREDlg : public CDialo { public:CSEAL_PRESSUREDlg(CWnd* pParent NULL); // standard constructor&a…...
安装scrcpy-client模块av模块异常,环境问题解决方案
背景 使用 pip install scrcpy-client命令出现以下报错 performance hint: av\logging.pyx:232:5: Exception check on log_callback will always require the GIL to be acquired. Possible solutions: 1. Declare log_callback as noexcept if you control the definition …...
硅谷甄选(11)角色管理
角色管理模块 10.1 角色管理模块静态搭建 还是熟悉的组件:el-card、el-table 、el-pagination、el-form <template><el-card><el-form :inline"true" class"form"><el-form-item label"职位搜索"><el-…...
C语言结构体 变量对齐原理
以32位Linux为例,默认对齐值是4. 对齐原则通常有以下几种: 第一个成员在与结构体变量偏移量为0的地址处。其他成员变量要对齐到某个数字(对齐参数)的整数倍的地址上。结构体总大小为最大对齐参数的整数倍。嵌套结构体要对齐到…...
【oracle】正则表达式
文章目录 1.介绍1.1 什么是正则表达式1.2 什么是Oracle正则表达式 2. Oracle正则表达式的基础知识2.1 常用的元字符2.2 常用的转义序列2.3 常用的量词 3. Oracle正则表达式的函数3.1 REGEXP_LIKE3.2 REGEXP_SUBSTR3.3 REGEXP_REPLACE3.4 REGEXP_INSTR3.5 REGEXP_COUNT 4. Oracl…...
如何找到网上爆款内容,快速复制扩大品牌声量
社媒内容爆款复制是现代营销中的一个重要策略,它对于提升品牌声量、曝光度和知名度具有显著效果。 首先什么是爆款? 爆款内容指的是在社交媒体或其他在线平台上迅速获得大量关注、分享和讨论的内容。 准确、及时找到这部分品牌相关的爆款内容…...
补齐:相交链表:扣160
梦重新开始的地方 – 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交: 示例: 何解? 暴力&…...
Java项目实战II基于Java+Spring Boot+MySQL的智能推荐的卫生健康系统(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于Java、…...
NET Core的AOP实施方法1 DispatchProxy
NET Core的AOP实施方法1 DispatchProxy NET Framework的AOP实施方法1 ContextBoundObject NET Framework的AOP实施方法2 RealProxy 源码见Github DispatchProxy NET Core DispatchProxy 是一个在 .NET 框架中引入的概念,特别是在 C# 语言中。它是一种特殊类型的代…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
