k8s(6)

目录

一.kubectl 命令行管理K8S

陈述式资源管理方式(可理解成使用一条kubectl命令及其参数选项来实现资源对象的管理操作)

service的4的基本类型:

service的端口

应用发布策略:

声明式资源管理方式(可理解成使用yaml配置文件里定义的配置来实现资源对象的管理操作):

K8S资源配置清单文件字段的值类型:

如何获取K8S资源配置清单文件模板(yaml配置文件):


一.kubectl 命令行管理K8S

陈述式资源管理方式(可理解成使用一条kubectl命令及其参数选项来实现资源对象的管理操作)

kubectl get -n <命名空间> <资源类型|all> [资源名称] [-o wide|yaml|json] [--show-labels] [-l 标签key=value]
                                    all包含Pod控制器、Pod、Service资源
kubectl create -n <命名空间> <资源类型> <资源名称> [选项]
                              deployment           --image=容器镜像 --port=容器端口 --replicas=Pod副本数
kubectl run <Pod资源名称> --image=容器镜像 --port=容器端口 

kubectl delete -n <命名空间> <资源类型> <资源名称>|--all [--force --grace-period=0]
                                                          立即终止Pod容器并强制删除(默认等待30s)
kubectl describe  -n <命名空间> <资源类型> <资源名称>

kubectl exec -n <命名空间> -it <Pod资源名称> [-c 容器名称] -- sh|bash|Linux命令

kubectl logs -n <命名空间> <Pod资源名称> [-c 容器名称] [-f] [-p]
                                                             查看Pod容器重启前的日志
kubectl scale -n <命名空间> <Pod控制器资源类型> <资源名称> --replicas=Pod副本数
                            deployment|statefulset
kubectl expose -n <命名空间> <Pod控制器资源类型> <资源名称> --name <svc资源名称> --type <svc类型> --port <clusterIP的端口> --target-port <容器端口>
                             deployment
kubectl create service <service类型> <service资源名称> --tcp=<clusterIP的端口:容器端口>

kubectl set image <Pod控制器资源类型> <资源名称> <容器名>=<容器镜像>
                  deployment|daemonset
kubectl set selector <资源类型> <资源名称> '标签key=value'
                     service
kubectl rollout history <Pod控制器资源类型> <资源名称>    
                        deployment|daemonset|statefulset
kubectl rollout undo <Pod控制器资源类型> <资源名称>    [--to-revision=N]
                                                     指定版本号回滚
kubectl rollout status <Pod控制器资源类型> <资源名称>            

service的4的基本类型:


ClusterIP:默认的service资源的类型,可提供clusterIP:port供K8S集群内部访问service及其关联的Pod
NodePort:会在每个node节点上都开启相同的端口,K8S集群外部或内部的用户都可以通过nodeIp:nodePort来访问service及其关联的Pod
LoadBalancer:使用云负载设备和service作映射,外部用户通过访问云负载设备即可将请求转发到K8S的node节点,再通过nodeIP:nodePort来访问service及其关联的Pod
ExternalName:相当于给一个外部地址(域名或IP)作别名,K8S集群内的Pod可以通过这个service访问相关的外部服务


service 是通过 标签选择器 关联Pod的标签 来自动发现Pod的端点(podIP:containerPort)

service的端口


port:service的clusterIP使用的端口,只能在K8S集群内部被访问到。K8S集群内部的客户端可以通过clusterIP:port来访问service

nodePort:NodePort类型的service使用的端口,会在每个node节点上都开启相同的端口,也就是nodeIP使用的端口(默认范围为30000~32767)。K8S集群外部或内部的客户端都可以通过nodeIp:nodePort来访问service

targetPort:Pod容器使用的端口。service会将发送给port或nodePort的请求转发给Pod容器,配置要与containerPort一致

Pod容器的端口
containerPort:创建Pod时所指定的容器端口

查看service关联的Pod端口
kubectl describe svc <资源名称>
kubectl get endpoints [svc资源名称]
kubectl describe endpoints <资源名称>

deployment控制器更新Pod的方式是 RollingUpdate(滚动更新)
RollingUpdateStrategy(滚动更新策略):  25% max unavailable, 25% max surge

Replicas: 3 desired       控制器的期望副本数
25% max surge             滚动更新时允许创建的最大副本数或比例,向上取整
25% max unavailable       滚动更新时允许销毁的最大副本数或比例,向下取整

假设期望副本数是3,那么滚动更新时能够创建的副本数是 3 * 25% = 0.75  再向上取整为 1,能够销毁的副本数向下取整为 0
                   
假设期望副本数是10,10 * 25% = 2.5  向上取整为 3     向上取整为 2
整个滚动更新过程中Pod副本数始终处在 (10-2)<= Pod副本数 <= (10+3)之间
 

应用发布策略:

蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚,优点用户无感知,部署和回滚速度较快,缺点浪费资源成本高
滚动发布:按批次停止老版本实例,更新启动新版本实例。优点节约资源,缺点部署和回滚速度较慢
灰度发布/金丝雀发布:根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版。优点保证整体系统稳定性,如果出问题影响范围很小,缺点自动化要求高
kubectl set image deployment <资源名称> <容器名>=<容器镜像> && kubectl rollout pause deployment <资源名称>
kubectl rollout resume deployment <资源名称>

声明式资源管理方式(可理解成使用yaml配置文件里定义的配置来实现资源对象的管理操作):

kubectl get -n <命名空间> <资源类型> <资源名称> -o yaml > XXX.yaml      #获取资源配置清单
kubectl apply|create -f XXX.yaml           #创建|更新资源
kubectl delete -f XXX.yaml                 #删除资源
kubectl edit -n <命名空间> <资源类型> <资源名称>       #在线修改资源配置

对于不支持在线修改的字段只能通过离线修改的方式更新资源: kubectl delete -f XXX.yaml && kubectl apply -f XXX.yaml

kubectl explain  <资源类型>.<一级字段>.<二级字段>....     #获取资源配置字段的解释

K8S资源配置清单文件字段的值类型:

字段: <integer>   数字         字段: 数值
字段: <string>    字符串       字段: "字符串"     字段: '字符串'    字段: 字符串
字段: <boolean>   布尔值       字段: true|false

字段: <Object>    对象:值可能是一层或多层子字段
                               字段:
                                 二级字段:
                                   三级字段

字段: <[]Object>   列表类型的对象             字段:
                                              - 二级字段:
                                                  三级字段
                                              - 二级字段: 

字段: <map[string]string>    映射:值可能是一个或多个键值对类型的值
                                  字段:
                                    key1: value1
                                    key2: value2
                                    key3: value3

如何获取K8S资源配置清单文件模板(yaml配置文件):

1.手写yaml配置文件,可以根据 kubectl explain 命令获取字段信息
2.查看现有的资源配置获取:kubectl get -n <命名空间> <资源类型> <资源名称> -o yaml > XXX.yaml

 kubectl edit -n <命名空间> <资源类型> <资源名称> ,然后手动复制资源配置,粘贴到yaml文件中
3.无中生有(模拟运行kubectl陈述式创建资源的命令获取):
kubectl create|run|expose  选项  --dry-run=client -o yaml > XXX.yaml
4.复制K8S官网文档的资源配置案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot 自定义注解封装(@RequestLimit注解)

描述&#xff1a; RequestLimit(time3)防重复点击&#xff0c;限制单个会话的请求频率。但是 RequestLimit注解中的参数不能传常量。 例如&#xff1a;不能通过获取application.yml文件中的配置信息&#xff0c;去动态配置限制时间&#xff0c;所以就对RequestLimit注解封装。 …

Go语言反射(reflect)

反射是应用程序检查其所拥有的结构&#xff0c;尤其是类型的一种能。每种语言的反射模型都不同&#xff0c;并且有些语言根本不支持反射。Go语言实现了反射&#xff0c;反射机制就是在运行时动态调用对象的方法和属性&#xff0c;即可从运行时态的示例对象反求其编码阶段的定义…

LeetCode_21_简单_合并两个有序链表

文章目录 1. 题目2. 思路及代码实现&#xff08;Python&#xff09;2.1 递归2.2 迭代 1. 题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a; l 1 [ 1 , 2 , 4 ] , l 2 [ 1 , 3 …

MongoDB聚合运算符:$cmp

文章目录 语法用法举例 $cmp聚合运算符返回连个值的比较结果。 语法 { $cmp: [ <expression1>, <expression2> ] }表达式可以是任何类型&#xff0c;使用标准的BSON比较顺序对不同类型的值进行比较。 用法 $cmp对两个值进行比较&#xff0c;返回&#xff1a; …

SQL注入漏洞解析-less-8(布尔盲注)

我们来看一下第八关 当我们进行尝试时&#xff0c;他只有You are in...........或者没有显示。 他只有对和错显示&#xff0c;那我们只能用对或者错误来猜他这个数据库 ?id1%27%20and%20ascii(substr(database(),1,1))>114-- ?id1%27%20and%20ascii(substr(database(),1,…

[WebUI Forge]ForgeUI的安装与使用 | 相比较于Auto1111 webui 6G显存速度提升60-75%

ForgeUI的github主页地址:https://github.com/lllyasviel/stable-diffusion-webui-forge Stable Diffusion WebUI Forge 是一个基于Stable Diffusion WebUI(基于Gradio)的平台,可简化开发、优化资源管理并加快推理速度。 “Forge”这个名字的灵感来自于“Minecraft Forge”…

Spring MVC HandlerMapping原理解析

在Spring MVC框架中&#xff0c;HandlerMapping是一个核心组件&#xff0c;负责将客户端的请求映射到相应的处理器&#xff08;Handler&#xff09;。理解HandlerMapping的原理对于掌握Spring MVC的请求处理机制至关重要。本文将对HandlerMapping的原理进行详细分析&#xff0c…

【MySQL】MySQL复合查询--多表查询自连接子查询 - 副本 (2)

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询 4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询 4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下&#xff1a; mysql> select * from emp; ----------------------------…

vue项目导出excel ,文件过大导致请求超时的处理方法

一、因为文件过大&#xff0c;请求时间较长&#xff0c;就会产生请求超时的情况&#xff0c;处理方式是可以分为三个接口&#xff0c;接口1用来获取id值&#xff0c;接口2利用id值发起请求&#xff0c;询问是否准备好下载&#xff0c;如果没准备好&#xff0c;则没隔一秒再次发…

便携式森林消防灭火泵:森林安全的守护者

在自然环境中&#xff0c;森林是地球生态系统的重要组成部分&#xff0c;它们为我们提供氧气、净化空气、防止土壤侵蚀等重要功能。然而&#xff0c;当森林发生火灾时&#xff0c;它们也会成为我们的噩梦。火势蔓延迅速&#xff0c;难以控制&#xff0c;对森林和生态环境造成严…

HTML5 CSS3 提高

一&#xff0c;HTML5的新特性 这些新特性都有兼容性问题&#xff0c;基本是IE9以上版本的浏览器才支持&#xff0c;如果不考虑兼容性问题&#xff0c;可以大量使用这些新特性。 1.1新增语义化标签 注意&#xff1a; 1这种语义化标签主要是针对搜索引擎的 2这些新标签在页面…

FL Studio 21 Mac汉化免费版 附安装教程

FL Studio 21 Mac是Mac系统中的一款水果音乐编辑软件&#xff0c;提供多种插件&#xff0c;包括采样器、合成器和效果器&#xff0c;可编辑不同风格的音乐作品&#xff0c;Pattern/Song双模式&#xff0c;可兼容第三方插件和音效包&#xff0c;为您的创意插上翅膀。FL Studio 2…

尚硅谷webpack5笔记base部分

base 基本使用 Webpack 是一个静态资源打包工具。 它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输出出去。 输出的文件就是编译好的文件,就可以在浏览器段运行了。 我们将 Webpack 输出的文件叫做 bundle。 功能介绍 Webpack …

textbox跨线程写入

实现实例1 实现效果 跨线程实现 // 委托&#xff0c;用于定义在UI线程上执行的方法签名 //public delegate void SetTextCallback(string text);public void textBoxText(string text){// 检查调用线程是否是创建控件的线程 if (textBox1.InvokeRequired){// 如果不是&#…

Adobe illustrator CEP插件调试

1.创建插件CEP面板&#xff0c;可以参考&#xff1a;http://blog.nullice.com/%E6%8A%80%E6%9C%AF/CEP-%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B/%E6%8A%80%E6%9C%AF-CEP-%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B-Adobe-CEP-%E6%89%A9%E5%B1%95%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8…

【数据结构】OJ面试题《设计循环队列》(题库+代码)

1.前言 本题需要结构体和数组的知识&#xff0c;记录每天的刷题&#xff0c;继续坚持&#xff01; 2.OJ题目训练 设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队…

Firefox Focus,一个 “专注“ 的浏览器

近期才开始使用 Firefox Focus&#xff0c;虽然使用频率其实并不高&#xff0c;基本上只有想到了才去用&#xff0c;但每次使用的体验都很不错。 Firefox Focus 这款浏览器大约在 2015 年首次发布&#xff0c;不同于一般版本的 Firefox&#xff0c;它主打“自动删除浏览记录”…

Window10安装ruby

最好的方法&#xff0c;使用rubyinstaller&#xff0c;即在Downloads。 这是官方推荐的安装方式 通常来说我们会下载64位的 下载完后执行下载的exe即可。在最后一步会提示让安装gem&#xff0c;选则安装即可。 然后就可以在控制台进行测试了。

黑马程序员——接口测试——day03——Postman断言、关联、参数化

目录&#xff1a; Potman断言 Postman断言简介Postman常用断言 断言响应状态码断言包含某字符串断言JSON数据Postman断言工作原理Postman关联 简介实现步骤核心代码创建环境案例1案例2Postman参数化 简介数据文件简介编写数据文件 CSV文件JSON文件导入数据文件到postman读取数…

Unity IK 反向动力学 学习笔记

目录 Unity IK 反向动力学 ik 示例代码&#xff1a; Unity IK 反向动力学 “IK是Inverse Kinematic的缩写&#xff0c;也就是反向动力学。是根据骨骼的终节点来推算其他父节点的位置的一种方法。比如通过手的位置推算手腕、胳膊肘的骨骼的位置。” 适用的场景&#xff1a;比…