k8s的资源管理
命令行: kubectl命令行工具
优点: 90%以上的场景都可以满足
对资源的增,删,查比较方便,对改不是很友好
缺点:命令比较冗长,复杂难记
声明方式:k8s当中的yaml文件实现资源管理----声明式
GUI:图形化工具的管理。
查看k8s的版本
kubectl version

查看k8s的集群信息
kubectl cluster-info
查看所有api的资源对象的名称。
kubectl api-resources

查看当前master的节点状态
kubectl get cs

查看默认命名空间内的的pod的信息
kubectl get pod

查看当前集群所有的命名空间
kubectl get ns

要查看指定命名空间内的pod需要加-n 命名空间的名称
kubectl get pod -n kube-system

查看默认命名空间内pod的详细信息
kubectl get pod -o wide

查看指定命名空间的详细信息
kubectl get pod -o wide -n kube-system

查询节点的信息和状态
kubectl get node

查看node节点的详细信息
kubectl get node -o wide

查看已经部署好的pod详细信息
kubectl get pod
kubectl describe pod nginx-86cfbb5b5c-qzhf6

创建命名空间
kubectl create ns guoqi

删除命名空间
kubectl delete ns guoqi

删除pod中的容器
不是真正的删除,是重启容器
kubectl delete pod nginx-6799fc88d8-fb64x(pod名称)

立刻停止pod
主要是用于结束卡在销毁状态的pod
kubectl delete pod nginx-6799fc88d8-7p2t9 --force --grace-period=0
#--grace-period:过度的存活期。默认是30秒。可以让pod优雅的结束容器内的进程,然后退出pod
#=0:表示立即停止pod。必须要force实现。

如果是基于deployment方式创建的pod或者是daemonset方式创建的pod,是由控制器创建的pod,使用delete删除pod是不删不掉的,相当于重启pod.
要删除基于控制器创建的pod,一旦删除deployment,基于这个deployment创建的pod会被删除。
deployment的部署pod
陈述式部署:命令行
声明式: yaml文件部署
下述的功能必须是基于deployment创建的服务才可以。
| 滚动更新 | 不是一次性的把所有pod全部部署,而是一个个来。pod的更新时使用,逐步的引入新的pod.逐步的减少旧的pod |
| 自我修复 | 如果有pod节点发生故障,deployment会自动启动新的pod来进行代替 |
| 回滚 | 如果更新有问题,deployment会提供还原点,可以手动还原到未更新的状态。 |
| 扩容和缩容 | deployment可以随时调整pod的数量,以适应流量的变化。 |
查看默认命名空间
kubectl get deployments

查看指定命名空间
kubectl get deployments.apps -n kube-system

daemonset
daemonset:不能通过命令行创建,只能通过yaml的创建daemonset,后台运行创建,只能在每个节点创建一个相同方式的,相同版本的容器运行的pod,一般都是依赖环境和重要组件,一般也不会去对这些进行操作。
指定副本数
kubectl create deployment nginx --image=nginx --replicas=3

指定deployment命名空间
kubectl create ns liu
kubectl create deployment nginx-liu --image=nginx --replicas=3 -n liu
kubectl get pod
kubectl get pod -n liu

基于run创建的pod
不是基于控制器创建,会被直接删除。
kubectl run --image=nginx liu
kubectl delete pod liu

在master节点进入node的容器
进入默认模式的容器
kubectl exec -it nginx-86cfbb5b5c-7cq5c bash
#docker的exec只能在本机内部使用,不能跨主机。kubectl的exec可以跨主机进入容器

进入指定节点的容器
kubectl exec -it nginx-liu-647bbc5b77-7b77m bash -n liu
#远程进入指定命名空间内的pod节点容器

对deployment创建的pod进行扩缩容
扩容
kubectl scale deployment -n liu nginx-liu --replicas=2
缩容
kubectl scale deployment -n liu nginx-liu --replicas=1
server的类型
ClusterIP
ClusterIP:server时默认类型,提供一个集群内部的虚拟ip地址,这是service的默认类型。通过这个虚拟ip可以直接访问pod资源,无法对外提供访问。
NodePort
NodePort:会在每个node节点上都开放一个相同的端口,外部可通过node的本机ip+端口,防护pod资源。集群外部访问service资源的一种方式,四层代理代理。
nodeip:nodeport
会随机指派,也可以指定。
端口会从30000-32767的固定范围随机指派一个端口,或者可以指定一个这个范围内的端口。
基于deployment创建的pod可以使用的pod可以使用方式:
kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
--port=80 service集群的端口
--target-port=80 pod内部容器的端口

10.96.79.172 集群内部的ip地址,外部是不可以访问这个ip地址的
80: 对应的是内部的service的端口
30859: 和内部的service的80端口做映射(30000-32767)
端口映射关系

修改本机
kubectl edit svc nginx-service

LoadBalancer
如果service的类型设定为LoqdBalancer,映射地址(云平台提供LoadBalancer的地址)这种用法仅限于公有云服务供应商在云平台上设置的service的场景,外部来访问,实现外来访问,实现负载均衡。LoadBalancer这个地址是要付费的。
创建service,指定类型为LoadBalancer,会给你提供一个地址来带代理pod内部的ip地址。
kubectl expose deployment nginx1 --port=8080 --target-port=80 --name=nginx2-server --type=LoadBalancer

ExternalName
ExternalName:DNS映射,给service分配一个域名来访问后端pod资源。ExternalName的service类型,不能提供负载均衡,必须要设置一个LoadBalancer的地址才可以实现。
kubectl edit svc nginx1-server
#进入service内直接修改

vim /etc/hosts

需要在hosts里做映射
四个类型我都知道
默认类型只对内访问
NodePort类型我配置过可以对外访问
LoadBalancer类型需要花钱
ExternalName类型需要配置域名
更新和回滚以及发布的方式
项目的生命周期:
创建------------发布------------更新----------回滚------------删除
滚动更新:
无标志更新
kubectl set image deployment nginx nginx=nginx:1.22.0
#滚动更新服务的版本

增加回滚点标识
先把新的pod拉起来,在把旧的版本删掉
kubectl set image deployment nginx nginx=nginx:1.22.0 --record

查看更新历史操作
kubectl rollout history deployment nginx
#查看回滚点信息
#数字的大小决定了距离上次操作的远近。数字越大就是最近的一次操作
回滚点
kubectl rollout undo deployment nginx --to-revision=1

动态查看更新动态
kubectl get pod -w
静态查看
kubectl rollout status deployment nginx

相关文章:
k8s的资源管理
命令行: kubectl命令行工具优点: 90%以上的场景都可以满足 对资源的增,删,查比较方便,对改不是很友好缺点:命令比较冗长,复杂难记 声明方式:k8s当中的yaml文件实现资源管理----声明式GUI:图形化工具的管理。 查看k8s的…...
docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)
Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器,设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…...
非常好用的ocr图片文字识别技术,识别图片中的文字
目录 一.配置环境 二.应用 2.1常见图片识别 2.2排版简单的印刷体截图图片识别 2.3竖排文字识别 2.4英文识别 2.5繁体中文识别 2.6单行文字的图片识别 三.参考 一.配置环境 pip3 install cnocr -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install onnxruntime…...
20231227在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单后摄像头ov13850
20231227在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单后摄像头ov13850 2023/12/27 18:40 1、简略步骤: rootrootrootroot-X99-Turbo:~/3TB$ cat Android11.0.tar.bz2.a* > Android11.0.tar.bz2 rootrootrootroot-X99-Turbo:~/3TB$ tar jxvf Androi…...
Unity中Shader裁剪空间推导(透视相机到裁剪空间的转化矩阵)
文章目录 前言一、简单看一下 观察空间—>裁剪空间—>屏幕空间 的转化1、观察空间(右手坐标系、透视相机)2、裁剪空间(左手坐标系、且转化为了齐次坐标)3、屏幕空间(把裁剪坐标归一化设置)4、从观察空…...
企业签名分发对移动应用开发者有什么影响
企业签名分发是移动应用开发者在应用程序发布前测试、内部分发和特定的受众群体分发等方面比较常用的一种工具。那对于应用商城分发有啥区别,下面简单的探讨一下。 独立分发能力 通过企业签名分发开发者可以自己决定应用程序的发布时间和方式,不用受应用…...
3D游戏角色建模纹理贴图处理
在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 在本文中,我们将介绍 3D 纹理的基础知识,并讨…...
【C++ 单例模式】
正确的析构 静态实例和回收类 SingletonMode.cpp #include <iostream> #include <pthread.h>class Singleton {private:Singleton(){std::cout << "构造" << std::endl;};~Singleton(){std::cout << "析构" << std::…...
React16源码: ConcurrentMode的使用及源码实现
ConcurrentMode 1 ) 概述 ConcurrentMode 是 React 16 出来的一个最令人振奋的功能在2018年年初是 Async Mode,在发布了16.6之后,名字进行了更新然后改成了 ConcurrentMode,中间的API有一个过渡的版本,后续会提到它其实是 React…...
SQL性能优化-索引
1.性能下降sql慢执行时间长等待时间长常见原因 1)索引失效 索引分为单索、复合索引。 四种创建索引方式 create index index_name on user (name); create index index_name_2 on user(id,name,email); 2)查询语句较烂 3)关联查询太多join&a…...
Ubuntu本地快速搭建web小游戏网站,公网用户远程访问
🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…...
easyrecovery 2024最新免费密钥分享 实用数据恢复软件分享
在日常使用电脑时,我们经常会遇到误删文件的情况,若文件还未被彻底删除,我们还可以通过电脑中的回收站将其恢复,但若是回收站都被清空的话,想要恢复文件就变得比较困难了,而EasyRecovery可以很好的帮助我们…...
2.4信道复用技术
目录 2.4信道复用技术2.4.1频分复用、时分复用和统计时分复用频分复用FDM(Frequency Division Multiplexing)时分复用TDM(Time Division Multiplexing)统计时分复用STDM(Statistic TDM) 2.4.2波分复用2.4.3…...
JVM篇:JVM的简介
JVM简介 JVM全称为Java Virtual Machine,翻译过来就是java虚拟机,Java程序(Java二进制字节码)的运行环境 JVM的优点: Java最大的一个优点是,一次编写,到处运行。之所以能够实现这个功能就是依…...
uniapp 输入手机号并且正则校验
1.<input input“onInput” :value“phoneNum” type“number” maxlength“11”/> 3. method里面写 onInput(e){ this.phoneNum e.detail.value }, 4.调用接口时候校验正则 if (!/^1[3456789]\d{9}$/.test(this.phoneNum)) {uni.showToast({title: 请输入正确的手机号…...
经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现
经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现 之前,我们依据《YOLO目标检测》(ISBN:9787115627094)一书,提出了新的YOLOV1架构,并解决前向推理过程中的两个问题,继续按照此书进行YOLOV1的复现。 经典目标…...
kbdnecat.DLL文件缺失,软件或游戏无法启动运营,快速修复方法
“kbdnecat.DLL文件是什么?为什么一起动游戏或软件,Windows就报错“kbdnecat.DLL文件缺失,软件无法启动””,应该怎么修复呢? 首先,先来了解“kbdnecat.DLL文件”是什么? kbdnecat.DLL是一个动…...
Dockerfile与DockerCompose
Docker的Image结构是怎样的? 镜像是将应用程序 及其需要的 系统函数库、环境、配置、依赖 打包而成。 镜像结构 入口( Entrypoint ) 镜像运行入口,一般是程序启动的脚本和参数 层( Layer ) 在BaseImage基…...
【CFP-专栏2】计算机类SCI优质期刊汇总(含IEEE/Top)
一、计算机区块链类SCI-IEEE 【期刊概况】IF:4.0-5.0, JCR2区,中科院2区; 【大类学科】计算机科学; 【检索情况】SCI在检; 【录用周期】3-5个月左右录用; 【截稿时间】12.31截稿; 【接收领域】区块链…...
Stable Diffusion 本地部署详细教程
目录 一、前言二、系统和硬件要求三、安装前说明四、安装步骤5、升级pip(这是管理python环境软件工具),并把资源库换成国内地址为清华镜像。一、前言 虽然MJ和SD都可以生成图像,但是为什么我们要考虑使用本地SD部署呢?原因其实很简单:首先,本地部署的使用成本更低,且更加…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...




