K8S资源管理方式
K8S资源管理方式
文章目录
- K8S资源管理方式
- 一、陈述式资源管理
- 1.基础命令操作
- 2.创建pod
- 3.查看资源状态
- 4.查看pod中的容器日志
- 5.进入pod中的容器
- 6.删除pod资源
- 7.pod扩容
- 8.项目生命周期管理(创建-->发布-->更新-->回滚-->删除)
- 8.1创建service
- service类型
- service端口
- 8.2发布
- 8.3更新
- 8.4回滚
- 8.5删除
- 二、声明式资源管理
- 如何获取资源配置清单文件模板(yaml配置文件)
一、陈述式资源管理
1.基础命令操作
//查看版本信息
kubectl version//查看资源对象简写
kubectl api-resources//查看集群信息
kubectl cluster-info//配置kubectl自动补全
在/etc/bashrc 添加 然后su
source <(kubectl completion bash)//node节点查看日志
journalctl -u kubelet -f
2.创建pod
kubectl create <资源类型> <资源名称> -n 命名空间 [选项]--image=镜像 --replicas=副本数 --port=容器端口
3.查看资源状态
kubectl get <资源类型|all> [资源名称] -n 命名空间 -o wide|yaml|json -w(跟踪pod资源状态)kubectl describe <资源类型> <资源名称> -n 命名空间
4.查看pod中的容器日志
kubectl logs -n 命名空间 <Pod资源名称> [-c 容器名称]
kubectl logs -n 命名空间 <Pod资源名称> -p ***查看重启之前的容器日志
5.进入pod中的容器
kubectl exec -it -n 命名空间 <Pod资源名称> [-c 容器名称] sh|bash
6.删除pod资源
kubectl delete <资源类型> <资源名称>|--all(删除所有资源) -n 命名空间 kubectl delete <资源类型> <资源名称>|--all -n 命名空间 --force --grace-period=0 ###立即终止Pod运行,强制删除资源
7.pod扩容
kubectl scale -n 命名空间 deployment <资源名称> --replicas=副本数
8.项目生命周期管理(创建–>发布–>更新–>回滚–>删除)
8.1创建service
kubectl expose -n 命名空间 deployment <资源名称> --name <自定义svc资源名称> --port <clusterIP的端口> --target-port <容器的端口> --type <svc的类型>kubectl create svc <svc资源类型> <资源名称> --tcp=<clusterIP的端口>:<容器的端口>
service类型
ClusterIP:默认的service资源的类型,提供clusterIP供K8S集群内部访问NodePort:会在每个Node节点上开启一个端口,K8S集群内部和外部的用户都可以通过NodeIP:NodePort访问service以及其关联的PodLoadBalancer:使用公有云的SLB服务和service做映射,用户可以使用公有云SLB服务的IP地址即可将请求转发到Node节点,再通过NodeIP:NodePort访问service以及其关联的PodExternalName:相当于给一个域名或IP做别名,Pod可以通过这个service访问相关的外部服务
service端口
port :service 资源的 clusterIP 所使用的端口
nodePort :在NodePort类型的service所定义的,在每个Node节点上开启的端口(默认范围为30000~32767)
targetPort :service 将发送给 port 或 nodePort 的请求转发到后端的 Pod 的容器端口containerPort :创建 Pod 时所指定的容器端口K8S集群内部 http://clusterIP:port --> podIP:containerPort
K8S集群外部 http://nodeIP:nodePort --> podIP:containerPort
8.2发布
应用的发布策略:
蓝绿发布
滚动发布
灰度发布/金丝雀发布
kubectl set image deployment <资源名称> <容器名>=<镜像名> && kubectl rollout pause deployment <资源名称>
kubectl rollout resume deployment <资源名称>25% max unavailable 滚动更新过程中,销毁的Pod数量不超过期望副本数的25%,向下取整
25% max surge 滚动更新过程中,新增的Pod数量不超过期望副本数的25%,向上取整期望的Pod副本数是10个,销毁的数量2,新增3 整个更新过程中Pod的数量会一致保持在 8 ~ 13
8.3更新
kubectl set image -n 命名空间 deployment <资源名称> <容器名>=<镜像名>
8.4回滚
kubectl rollout -n 命名空间 history deployment <资源名称>
kubectl rollout -n 命名空间 undo deployment <资源名称>(回滚到上一个版本) [--to-revision= ](回滚到指定版本)
kubectl rollout -n 命名空间 status deployment <资源名称> (查看回滚状态)
8.5删除
kubectl get all -n 命名空间先删控制器kubectl delete -n 命名空间 资源名称在删service
kubectl delete -n 命名空间svc service资源名称
二、声明式资源管理
kubectl apply|create -f XXX.yaml ##根据yaml文件创建pod
kubectl delete -f XXX.yaml ##根据yaml文件删除podkubectl edit <资源类型> <资源名称> ##在线编辑yaml文件kubectl explain <资源类型>.<一级字段>.<二级字段>... ##解释指定字段的含义
如何获取资源配置清单文件模板(yaml配置文件)
1)手撕yaml配置文件,可根据 kubectl explain 命令获取字段信息
2)无中生有的方式:kubectl create|run|expose .... --dry-run=client -o yaml > XXX.yaml
3)查看已存在的资源配置方式:kubectl get <资源类型> <资源名称> -n 命令空间 -oyaml > XXX.yamlkubectl edit <资源类型> <资源名称> 手动复制资源配置,再粘贴到文件中
4)复制官方文档的资源配置案例
相关文章:
K8S资源管理方式
K8S资源管理方式 文章目录 K8S资源管理方式一、陈述式资源管理1.基础命令操作2.创建pod3.查看资源状态4.查看pod中的容器日志5.进入pod中的容器6.删除pod资源7.pod扩容8.项目生命周期管理(创建-->发布-->更新-->回滚-->删除)8.1创建services…...
第三章 图论 No.9有向图的强连通与半连通分量
文章目录 定义Tarjan求SCC1174. 受欢迎的牛367. 学校网络1175. 最大半连通子图368. 银河 定义 连通分量是无向图的概念,yxc说错了,不要被误导 强连通分量:在一个有向图中,对于分量中的任意两点u,v,一定能从…...
回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测
回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考…...
Mysql 和Oracle的区别
、mysql与oracle都是关系型数据库,Oracle是大型数据库,而MySQL是中小型数据库。但是MySQL是开源的,但是Oracle是收费的,而且比较贵。 1 2 mysql默认端口:3306,默认用户:root oracle默认端口&…...
在收藏夹里“积灰”的好东西——“收藏从未停止,行动从未开始”
方向一:分享一道你收藏的好题 小雅兰刚学数据结构与算法的时候,学的真的是很吃力,感觉链表真的特别的难,在学习了后面的知识之后,发现链表慢慢变得简单了,若是放在现在,小雅兰仍然觉得链表的知…...
【算法|数组】双指针
算法|数组——双指针 引入 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:…...
asp.net core6 webapi 使用反射批量注入接口层和实现接口层的接口的类到ioc中
IBLL接口层类库 namespace IBLL {public interface ICar{string CarName();} } namespace IBLL {public interface IRed{string RedName();} }BLL实现接口层类库 namespace BLL {public class Car : ICar{public string CarName(){return "BBA";}} } namespace BLL…...
【2023】字节跳动 10 日心动计划——第九关
目录 1. 螺旋矩阵2. 划分字母区间3. 子集 II 1. 螺旋矩阵 🔗 原题链接:54. 螺旋矩阵 类似于BFS那样使用方向数组即可。 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {int m matrix.size(), …...
小龟带你敲排序之冒泡排序
冒泡排序 一. 定义二.题目三. 思路分析(图文结合)四. 代码演示 一. 定义 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元…...
Nacos AP架构集群搭建(Windows)
手写SpringCloud项目地址,求个star github:https://github.com/huangjianguo2000/spring-cloud-lightweight gitee:https://gitee.com/huangjianguo2000/spring-cloud-lightweigh 目录: 一:初始化MySQL 二:复制粘贴三份Nacos文…...
nodejs+vue+elementui,图书评论管理系统_g9e3a
用户的功能主要是对首页、图书信息、公告信息、在线咨询、个人中心等进行操作。表名:token语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 前端nodejsvueelementui, 管理员…...
基于TorchViz详解计算图(附代码)
文章目录 0. 前言1. 计算图是什么?2. TorchViz的安装3. 计算图详解 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解,但是内容可能存在不准确的地方。如果发现文中错误,…...
解决GitHub的速度很慢的几种方式
1. GitHub 镜像访问 这里提供两个最常用的镜像地址: https://hub.njuu.cf/search https://www.gitclone.com/gogs/search/clonesearch 也就是说上面的镜像就是一个克隆版的 GitHub,你可以访问上面的镜像网站,网站的内容跟 GitHub 是完整同步…...
设计模式再探——策略模式
目录 一、背景介绍二、思路&方案三、过程1.策略模式简介2.策略模式的类图3.策略模式代码4.策略模式还可以优化的地方5.策略模式的例子改造(配置文件反射) 四、总结五、升华 一、背景介绍 最近在做产品的过程中,对于主题讨论回复内容,按照追评次数排…...
基于Googlenet深度学习网络的人员行为动作识别matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1. 原理 1.1 深度学习与卷积神经网络(CNN) 1.2 GoogLeNet 2. 实现过程 2.1 数据预处理 2.2 构建网络模型 2.3 数据输入与训练 2.4 模型评估与调优 3. 应用领域…...
存储过程的学习
1,前言 这是实习期间学习的,我可能是在学校没好好听课,(或者就是学校比较垃,没教这部分,在公司经理让我下去自己学习,太难了,因为是公司代码很多部分都是很多表的操作&#…...
zookeeperAPI操作与写数据原理
要执行API操作需要在idea中创建maven项目 (改成自己的阿里仓库)导入特定依赖 添加日志文件 上边操作做成后就可以进行一些API的实现了 目录 导入maven依赖: 创建日志文件: 创建API客户端: (1)…...
防火墙对双通道协议的处理
防火墙是一种网络安全设备或软件,用于控制网络流量并保护计算机网络免受未经授权的访问、恶意攻击和网络威胁。它作为网络的第一道防线,用于监视、过滤和管理进出网络的数据包。 防火墙可以基于预设的安全策略对网络流量进行评估和筛选。它通过比较数据…...
vscode搭建c语言环境问题
c语言环境搭建参考文章:【C语言初级阶段学习1】使用vscode运行C语言,vscode配置环境超详细过程(包括安装vscode和MinGW-W64安装及后续配置使用的详细过程,vscode用户代码片段的使用)[考研专用]_QAQshift的博客-CSDN博客 问题如下:…...
全网最全的接口自动化测试教程
为什么要做接口自动化 相对于UI自动化而言,接口自动化具有更大的价值。 为了优化转化路径或者提升用户体验,APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化,导致自动化的代码频繁变更,没有起到减少工作量的效果。 而…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
