pod生命周期,pod控制器service
一:pod-demo.yml
apiVersion: v1 # <string>
kind: Pod # <string>
metadata: # <Object>对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)name: pod-demonamespace: default#namespace: myapp-nslabels: # <map[string]string> 映射数据不能加- 不是列表app: myapptier: frontend
spec: # <Object>containers: # <[]Object> 对象列表用-引导 对象数组 数组用-引导- name: myappimage: ikubernetes/myapp:v1ports: #<[]Object>- name: http # <string>containerPort: 80 #<integer>- name: httpscontainerPort: 443- name: busyboximage: busybox:latestcommand: # 列表 <[]string> #替换docker中的entrypoint。- "/bin/sh" - "-c"- "sleep 3600"
二:端口 port
kubectl edit svc myapp-svc
type:NodePort
80:30636/TCPports:- nodePort: 32000 #pod 端口 不定义为随机。port: 800 #集群内访问端口。svc内部端口protocol: TCPtargetPort: 80 #容器端口selector:run: nginx-podsessionAffinity: Nonetype: NodePort #ClusterPort
三:标签labels: key=value
kubectl get pods -l app #显示拥有app标签的Pod
kubectl get pods -l run=client
kubectl label pods client release=canary #增加标签
kubectl label pods client release=stable --overwrite #强行修改标签
四:标签选择器
等值关系:
kubectl get pods --show-labels -l release=canary
kubectl get pods --show-labels -l release=stable,run
集合关系:in
KEY in (VALUE1,VALUE2,VALUE3)
kubectl get pods --show-labels -l “release in (canary,beta)”
KEY notin (VALUE1,VALUE2,VALUE3)
kubectl get pods --show-labels -l “release notin (canary,beta)”
选择器
matchLabels: 直接给定键值
matchExpressions: 基于给定的表达式来定义标签选择器{key:“KEY”,“OPERATOR”,values:[VAL1,VALU2,…]}
OPERATOR: In, NotIn, values字段值必须为非空列表
Exists, NotExists values字段必须为空列表
nodeSelector <map[string]string>
annotations: 资源注解。区别与lables在于 不能挑选资源对象。仅用于为对象提供元数据。
五: pod的生命周期 liveness probe /rediness probe差别。
post start --------> run -------->pre stop
main container----------------------------------------
post start ---->liveness probe /rediness probe------>pre stop
livense probe # 存活状态检测
rediness probe # 就绪状态检测 判定进程否提供服务 目标不同。 1/1 0/1
1. ExecAction 自定义命令
2. TCPSocketAction 端口命令 tcp端口发命令
3. HTTPGet http 服务请求 应用层get请求。
pod状态:pending 挂起 。条件不满足。调度未完成。
running 运行状态
Failed,........suceesed Unknow
创建pod: etcd -----
容器重启策略:
Aways :pod中的容器挂了直接重启
OnFailure : 重启策略
Never: 从不重启
Default: Aways
pod结束时 会向Pod所有的容器发送stop信号。宽限期。30s。过后重新发送强行这终止信号。
exec-demo.yml
apiVersion: v1
kind: Pod
metadata:name: liveness-exec-pod
spec:containers:- name: liveness-exec-containerimage: busybox:latestcommand:- "/bin/sh"- "-c"- "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy;sleep 3600"livenessProbe: #exec:command:- "test"- "-e"- "/tmp/healthy"initialDelaySeconds: 2 # 第一次探测延时时间 2秒 。periodSeconds: 5 # 第二次探测间隔的时间 5秒
livenss-httpget.yaml
apiVersion: v1
kind: Pod
metadata:name: liveness-httpget-pod
spec:containers:- name: liveness-httpget-containerimage: ikubernetes/myapp:v1ports:- name: httpcontainerPort: 80livenessProbe:httpGet:port: http path: /index.htmlinitialDelaySeconds: 2 # 第一次探测延时时间 2秒 。periodSeconds: 5 # 第二次探测间隔的时间 5秒
六:lifecycle 启动后钩子 终止前钩子
postStart #启动后执行
preStop #结束前执行
exec
httpGet
tcpSocket
poststart-demo.yml
apiVersion: v1
kind: Pod
metadata:name: poststart-pod
spec:containers:- name: busybox-httpdimage: busybox:latestimagePullPolicy: IfNotPresentlifecycle:postStart: #exec:command:- "/bin/sh"- "-c"- "mkdir -p /data/web/; echo 'homepate' >> /data/web/html.index" # 首先执行command: # 不能强依赖postStart的结果。 两条命令不能相互依赖结果 无法确定哪个先执行- "/bin/sh"- "-c" - "sleep 3600"
八:pod控制器。
1.ReplicaSet () ReplicationController
-
Deployment: 工作与ReplicaSet之上的。 扩缩容。
-
DaemonSet : 确定每个节点运行一个。 后台守护进程。系统级应用。 支持滚动更新。
-
Job : 任务是否完成。只能执行一次性作业。
-
Cronjob:
-
StatefulSet : 有状态应用。
1.rs.yml
apiVersion: apps/v1 kind: ReplicaSet metadata:name: myapp spec:replicas: 2selector:matchLabels: # 匹配Pod标签app: myapprelease: canarytemplate:metadata:name: myapp-pod # pod名称。无用。可不定义。labels: # pod标签app: myapp release: canaryenvironment: qaspec:containers:- name: myapp-containerimage: ikubernetes/myapp:v1ports:- name: httpcontainerPort: 80strategy: #更新策略 金丝雀发布 。rollingUpdate:maxSurge: 1 # 最大只能多1个。maxUnavailable: 0 # 可以有几个不可用。0个
service与pod控制器无关。lables取决于pod标签。
Deployment更新策略;
canary版本 金丝雀
kubectl set image deployment myapp-deploy myapp=ikubernetes/myapp:v2 && kubectl rollout pause deployment myapp-deploy #更新1个后暂停更新
kubectl rollout status deployment myapp-deploy #查看滚动了几个
kubectl rollout resume deployment myapp-deploy #继续上一次的滚动更新。
kubectl rollout history deployment myapp-deploy
kubectl rollout undo deployment myapp-deploy --to-revision=5
deploy-myapp.yml
apiVersion: apps/v1
kind: Deployment
metadata:name: myapp-deploy
spec:strategy:rollingUpdate:maxSurge: 1maxUnavailable: 0replicas: 5selector:matchLabels:app: myapprelease: canarytemplate:metadata:labels:app: myapprelease: canaryspec:containers:- name: myappimage: ikubernetes/myapp:v2ports:- name: httpcontainerPort: 80
redis-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:name: redisnamespace: default
spec:replicas: 1selector: matchLabels:app: redisrole: logstortemplate:metadata:labels:app: redisrole: logstorspec:containers:- name: redisimage: redis:4.0-alpineports:- name: rediscontainerPort: 6379
filebeat-daemonset.yml
apiVersion: apps/v1
kind: DaemonSet
metadata:name: filebeat-dsnamespace: default
spec:selector: matchLabels:app: filebeatrelease: stabletemplate:metadata:labels:app: filebeatrelease: stablespec:containers:- name: filebeatimage: ikubernetes/filebeat:5.6.5-alpineenv:- name: REDIS_HOSTvalue: redis.default.svc.cluster.local- name: REDIS_LOG_LEVELvalue: info
kubectl explain pods.spec.hostNetwork #共享宿主机的网络空间。
九、Service
iptables -vnL -t nat
ClusterIP
NodePort
LoadBalancer 云环境
资源记录:SVC_NAME.NS_NAME.DOMAIN.LTD
redis.default.svc.cluster.local
redis-svc.yml
apiVersion: v1
kind: Service
metadata:name: redis
spec:clusterIP: 10.97.97.97type: ClusterIPports:- port: 6369targetPort: 6379selector:app: redisrole: logstor
ports:- nodePort: 32000 #pod 端口 不定义为随机。 尽量不要指定port: 800 #集群内访问端口。svc内部端口 protocol: TCPtargetPort: 80 #容器端口 目标端口 必须指定selector:run: nginx-podsessionAffinity: Nonetype: NodePort #ClusterPort
$$
ports:
- nodePort: 32000 #pod 端口 不定义为随机。
port: 800 #集群内访问端口。svc内部端口
protocol: TCP
targetPort: 80 #容器端口
selector:
run: nginx-pod
sessionAffinity: None
type: NodePort #ClusterPort
$$
spec:sessionAffinity:ClientIP 连接追踪
无头服务:clusterIP: None . 不能是Nodeport
dig -t A redis.default.svc.cluster.local. @10.96.0.10
apiVersion: v1
kind: Service
metadata:name: app-myapp
spec:type: ClusterIPclusterIP: "None" #无头服务ports:- port: 80targetPort: 80selector:app: myapprelease: canary
相关文章:
pod生命周期,pod控制器service
一:pod-demo.yml apiVersion: v1 # <string> kind: Pod # <string> metadata: # <Object>对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字…...
SAP FICO 深入讲解会计凭证
SAP系统在数据处理,无论是业务处理,还是财务处理都会产生大量的凭证,无论是什么凭证,最终的反映形式就是 会计凭证。 1.凭证原则Code 每笔记账都一直以凭证形式存储,每一凭证都作为前后一致的单位保留在系统中…...
LeetCode 2341. 数组能形成多少数对
【LetMeFly】2341.数组能形成多少数对 力扣题目链接:https://leetcode.cn/problems/maximum-number-of-pairs-in-array/ 给你一个下标从 0 开始的整数数组 nums 。在一步操作中,你可以执行以下步骤: 从 nums 选出 两个 相等的 整数从 nums…...
PHPStorm常用快捷键
alt 1 左侧项目结构树隐藏或者显示,这两个组合键的使用可以切换“项目结构树”和当前打开文件之间的焦点。 alt 2 隐藏或者显示 Favorites Ctrl Shift F12 切换到最大编辑器窗口,隐藏其他所有的工具窗口。例如项目结构树、Favorites、Terminal等。…...
【基于腾讯云的远程机械臂小车】
【基于腾讯云的远程机械臂小车】1. 项目来源1.1 项目概述1.2 系统结构1.3 设计原理2. 硬件搭建2.1 CH32V307开发板2.2 Arduino mega25602.3 富斯I6遥控器2.4 机械臂小车2.5 ESP8266 MCU2.5.1 ESP8266 MCU介绍2.5.2 腾讯云固件烧录3. 软件设计3.1 两种控制方式3.1.1 富斯I6遥控机…...
兼职任务平台收集(一)分享给有需要的朋友们
互联网时代,给人们带来了很大的便利。信息交流、生活缴费、足不出户购物、便捷出行、线上医疗、线上教育等等很多。可以说,网络的时代会一直存在着。很多人也在互联网上赚到了第一桶金,这跟他们的努力和付出是息息相关的。所谓一份耕耘&#…...
MarkDown中公式的编辑
MarkDown中公式的编辑生成目录积分插入编号常见希腊字母大小写分式括号求和积分连乘根式三角函数运算符集合运算箭头逻辑运算符约等于向量绝对值申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计1077字&…...
解决jupyter以及windows系统中pycharm编译器画图的中文乱码问题大全
一、jupyter环境下中文乱码问题解决 我们在jupyter的notebook中使用matplotlib画图的时候,经常性的会遇见一些中文乱码显示□的情况,如下所示: 在此,网上给出的方法大多是以下的解决方法: import matplotlib.pyplot as pltplt.rcParams[fo…...
06 OpenCV 阈值处理、自适应处理与ostu方法
1 基本概念 CV2中使用阈值的作用是将灰度图像二值化,即将灰度图像的像素值根据一个设定的阈值分成黑白两部分。阈值处理可以用于图像分割、去除噪声、增强图像对比度等多个领域。例如,在物体检测和跟踪中,可以通过对图像进行阈值处理来提取目…...
RFC7519规范-JWT - json web token
简介 什么是JWT(JSON Web Token) 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程: 客户端使用用户名和密码请求登录服务端收到请求,验证用户名和密码验证成功后,服务端会签发一个token,再把这个to…...
移动机器人设计与实践课程大纲
MiR移动机器人参考资料:图一 西北工业大学-课程平台图二 清华大学出版社-移动机器人目前,基本都是双一流大学开设此类课程,并且都是至少3-4学分,16学时/学分,48-64学时。(⊙﹏⊙),难办了。咱这只有…...
Lesson 7.2 Mini Batch K-Means与DBSCAN密度聚类
文章目录一、Mini Batch K-Means 算法原理与实现二、DBSCAN 密度聚类基本原理与实践1. K-Means 聚类算法的算法特性2. DBSCAN 密度聚类基本原理3. DBSCAN 密度聚类的 sklearn 实现除了 K-Means 快速聚类意外,还有两种常用的聚类算法。(1) 是能…...
11.Dockerfile最佳实践
Dockerfile 最佳实践 Docker官方关于Dockerfile最佳实践原文链接地址:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ Docker 可以通过从 Dockerfile 包含所有命令的文本文件中读取指令自动构建镜像,以便构建给定镜像。 …...
【企业云端全栈开发实践-1】项目介绍及环境准备、Spring Boot快速上手
本节目录一、 项目内容介绍二、Maven介绍2.1 Maven作用2.2 Maven依赖2.3 本地仓库配置三、Spring Boot快速上手3.1 Spring Boot特点3.2 遇到的Bug:spring-boot-maven-plugin3.3 遇到的Bug2:找不到Getmapping四、开发环境热部署一、 项目内容介绍 本课程…...
5-HT2A靶向药物|适应症|市场销售-上市药品前景分析
据世界卫生组织称,抑郁症是一种多因素疾病,影响全球约3.5 亿人。中枢神经系统最广泛的单胺 - 血清素 (5-HT) 被认为在这种情况的病理机制中起着至关重要的作用,并且神经递质的重要性被“血清素假说”提升,将抑郁症的存在联系起来 …...
HTTPS协议原理---详解
目录 一、HTTPS 1.加密与解密 2.我们为什么要加密? 3.常见加密方式 ①对称加密 ②非对称加密 4.数据摘要 5.数字签名 二、HTTPS的加密方案 1.只是用对称加密 2.只使用非对称加密 3.双方都使用非对称加密 4.非对称加密+对称加密 中间人攻…...
Pytest学习笔记
Pytest学习笔记 1、介绍 1.1、单元测试 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试 1.2、单元测试框架 测试发现:从多个py文件里面去找到我们测试用例测试执行:按…...
Fuzz概述
文章目录AFL一些概念插桩与覆盖率边和块覆盖率afl自实现劫持汇编器clang内置覆盖率反馈与引导变异遗传算法fork server机制AFL调试准备AFL一些概念 插桩与覆盖率 边和块 首先,要明白边和块的定义 正方形的就是块,箭头表示边,边表示程序执行…...
区块链知识系列 - 系统学习EVM(四)-zkEVM
区块链知识系列 - 系统学习EVM(一) 区块链知识系列 - 系统学习EVM(二) 区块链知识系列 - 系统学习EVM(三) 今天我们来聊聊 zkEVM、EVM 兼容性 和 Rollup 是什么? 1. 什么是 Rollup rollup顾名思义,就是把一堆交易卷(rollup)起来…...
Leetcode.2341 数组能形成多少数对
题目链接 Leetcode.2341 数组能形成多少数对 Rating : 1185 题目描述 给你一个下标从 0 开始的整数数组 nums。在一步操作中,你可以执行以下步骤: 从 nums选出 两个 相等的 整数从 nums中移除这两个整数,形成一个 数对 请你在 nums上多次执…...
C++复习笔记10
1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。 3. list与for…...
leaflet 纯CSS的marker标记,不用图片来表示(072)
第072个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用纯CSS来打造marker的标记。这里用到的是L.divIcon来引用CSS来构造新icon,然后在marker的属性中引用。 这里必须要注意的是css需要是全局性质的,不能被scoped转义为其他随机的css。 直接复制下面的 v…...
Elasticsearch:使用 intervals query - 根据匹配项的顺序和接近度返回文档
Intervals query 根据匹配项的顺序和接近度返回文档。Intervals 查询使用匹配规则,由一小组定义构成。 然后将这些规则应用于指定字段中的术语。 这些定义产生跨越文本正文中的术语的最小间隔序列。 这些间隔可以通过父源进一步组合和过滤。 上述描述有点费解。我…...
无法决定博客主题的人必看!如何选择类型和推荐的 5 种选择
是否有人不能迈出第一步,因为博客的类型还没有决定?有些人在出发时应该行动,而不是思考,但让我们冷静下来,仔细想想。博客的难度因流派而异,这在很大程度上决定了随后的发展。因此,在选择博客流…...
数字化转型的成功模版,珠宝龙头曼卡龙做对了什么?
2月11日,曼卡龙(300945.SZ)发布2022年业绩快报,报告期内,公司实现营业收入16.11亿元,同比增长28.63%。来源:曼卡龙2022年度业绩快报曼卡龙能在2022年实现营收增长尤为不易。2022年受疫情影响&am…...
转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换
文章目录1. 转换矩阵、平移矩阵、旋转矩阵之间的关系2. 缩放变换、平移变换和旋转变换2. python实现旋转矩阵、四元数、欧拉角互相转化由于在平时总是或多或少的遇到平移旋转的问题,每次都是现查资料,然后查了忘,忘了继续查,这次弄…...
中国地图航线图(echarjs)
1、以上为效果图 需要jq、echarjs、china.json三个文件支持。以上 2、具体代码 DOM部分 <!-- 服务范围 GO--> <div class"m-maps"><div id"main" style"width:1400px;height: 800px; margin: 0 auto;"> </div> <!-…...
Python正则表达式中group与groups的用法详解
本文主要介绍了Python正则表达式中group与groups的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧目录在Python中,正则表达式的group和groups方…...
c++练习题7
1.下列运算符中优先级最高的是 A)> B) C) && D)! 2.以下关于运算符优先级的描述中,正确的是 。 A)!(逻辑非&#x…...
MySQL学习
目录1、数据库定义基本语句(1)数据库操作(2)数据表操作2.数据库操作SQL语句(1)插入数据(2)更新语句(3)删除数据3.数据库查询语句(1)基…...
手机app软件开发/seo外链资源
python3正则要加括号!!! 转载于:https://www.cnblogs.com/chuxiuhong/p/5885073.html 本文主要为没有使用正则表达式经验的新手入门所写。 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又…...
重庆网站建设设计公司哪家好/百度怎么投广告
一、什么是Lambda? 我们知道,对于一个Java变量,我们可以赋给其一个“值”。 如果想把“一块代码”赋给一个Java变量,应该怎么做呢?比如把右边那块代码,赋给一个叫做aBlockOfCode的Java变量: 在Java 8之前…...
企业搭建网站的必要性/广州seo优化推广
安静的早餐Scala学习手册(Learning Scala)第二章1、值与变量定义2、命名3、数据类型及其转换(toType)4、字符串和内插5、元组1、值与变量定义值的定义值,即为常量,不可变,基本语法定义:val : 创建一个名为a,类型为I…...
国外网购网站十大排名/企业网站优化推广
原文链接:http://blog.csdn.net/u012849872/article/details/51035938 maven工程标准目录结构: src -main –bin 脚本库 –java java源代码文件 –resources 资源库,会自动复制到classes目录里 –filters 资源过滤…...
html门户网站开发源代码/百度软件下载
Web 不论你在 web 上做什么, 都离不开请求和响应, web请求作为某个用户交互的结果由web浏览器发送到web服务器, 在web服务器上, 会生成web响应(或应答)并发回到 web 浏览器. 如果web请求的是静态内容, 比如一个Html文件, 图像或者是存储在web服务器硬盘上的其他内容, web服务器…...
做网站ui主要研究内容/网络营销推广工具有哪些
可恶啊,习惯了 vue的 数据双向绑定了 ,有点不习惯小程序的模式了 虽然小程序 也是mvvm的设计方式 但是却没有 v-model 这么简便的方法 不过也越来越觉得 不能依赖框架,还是提升自己基础能力最好了 虽然不能双向绑定 但是可以通过其他的方式 …...