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界面的按钮控件和布局几乎每个版本都会发生一次变化,导致自动化的代码频繁变更,没有起到减少工作量的效果。 而…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...