kubernetes第五天

1.Probe(探针)之readinessProbe就绪探针,可用性检查

readinessProbe此探针如果检查失败,pod会处于未就绪状态

  1.exec方式检查

#通过rc资源创建了三个pod,然后使用services资源,对外提供三个pod的容器的访问入口。
apiVersion: v1
kind: ReplicationController
metadata:name: web-rc-readlineprobe
spec:replicas: 3selector:name: lxczuoyong: webtemplate:metadata:labels:name: lxczuoyong: webspec:zuoyong: webzuoyong: webcontainers:- name: nginximage: harbor.lxcedu.com/base-img/nginx:1.14.2command:- /bin/sh- -c- "touch /tmp/healthy; sleep 5; rm -f /tmp/healthy; sleep 60"#容器的就绪性检查,如果执行command命令成功则,标记为未就绪状态readinessProbe:exec:command:- cat- /tmp/healthyfailureThreshold: 3initialDelaySeconds: 15periodSeconds: 1successThreshold: 1timeoutSeconds: 1
---
apiVersion: v1
kind: Service
metadata:name: web-readinessprobenamespace: default
spec:selector:name: lxczuoyong: webtype: ClusterIPports:- port: 80targetPort: 80protocol: TCP

readinessProbe探针,如果检查不符合条件,pod的状态会变为未就绪,如图READY为0/1

通过查询ep和svc也可以看出三个pod处于未就绪状态,所以也不会加入web-readinessprobe中,所以ep资源就为空,kubectl describe ep web-readinessprobe可以看到三个节点都为未就绪状态。

2.httpGet方式检查

把exec检查方法的无关command删除,再把里面exec换成下面代码就变成httpGet检查

httpGet:# 指定访问的端口号port: 80# 检测指定的访问路径path: /index.html

启动之后发现pod的容器16秒到17秒状态由未就绪变为就绪,说明:未检查时容器处于未就绪状态。

删除容器的index.html文件,

kubectl exec web-rc-readlineprobe-httpget-hncm4 -- rm  /usr/share/nginx/html/index.html

发现对应的pods的容器处于未就绪状态。

3.tcpsocket检查

把exec检查方法的无关command删除,再把里面exec换成下面代码就变成httpGet检查

tcpSocket:# 指定访问的端口号port: 80

2.startupProbe启动检查探针

1.16+之后版本才支持

        如果提供了启动探针,则所有其他的探针都会被禁用,直到此探针成功为止

        如果启动探测失败,kubelet杀死容器,而容器依照重启策略重启。

可以看下面这个例子,结合了三种健康检查,详见资源清单下面说明:
 

#通过rc资源创建了三个pod,然后使用services资源,对外提供三个pod的容器的访问入口。
apiVersion: v1
kind: ReplicationController
metadata:name: web-rc-readlineprobe-httpget
spec:replicas: 3selector:name: lxczuoyong: webtemplate:metadata:labels:name: lxczuoyong: webspec:containers:- name: nginximage: harbor.lxcedu.com/base-img/nginx:1.14.2#容器的就绪性检查,如果执行command命令成功则,标记为未就绪状态readinessProbe:httpGet:# 指定访问的端口号port: 80# 检测指定的访问路径path: /readinessProbe.htmlfailureThreshold: 3initialDelaySeconds: 15periodSeconds: 1successThreshold: 1timeoutSeconds: 1livenessProbe:httpGet:port: 80path: /index.htmlfailureThreshold: 3initialDelaySeconds: 15periodSeconds: 1successThreshold: 1timeoutSeconds: 1startupProbe:exec:command:- cat- /etc/hhfailureThreshold: 3initialDelaySeconds: 60periodSeconds: 1successThreshold: 1timeoutSeconds: 1---
apiVersion: v1
kind: Service
metadata:name: web-readinessprobe-http-getnamespace: default
spec:selector:name: lxczuoyong: webtype: ClusterIPports:- port: 80targetPort: 80protocol: TCP

首先,在60s之前,此时启动探针未探测,所有其他的探针都会被禁用。

由于启动探针exec的command命令查看的是一个未存在的文件,所以,如果不加干涉,启动探针检查完,kubelet杀死容器,而容器依照重启策略重启

在检查失败前,为其中两个容器创建/etc/hh

可以看到启动探针检查结束,第三个容器开始重启

添加可用性检查探针检查的文件,此时容器处于就绪状态

删除存活性探针检查的文件,此时容器处于重启状态

3.rc资源的升级和回滚

升级:

更改资源清单文件,containers下的image使用新的镜像

更新资源清单文件:kubectl apply -f get rc-xx.xxx.yaml

逐个删除原来的pod: kubectl delete -f pods xxx

由于pod是被rc维护的,删除的pod会重新拉起,代替新的pod

回滚与升级类似

4.ReplicaSet控制器

ReplicaSet控制器简称rs资源,也是用于控制仪pod副本数量。

类似与rc资源,也可以控制pod的存活数量,但是其标签匹配更灵活

先看一个rs资源

apiVersion: apps/v1
kind: ReplicaSet
metadata:name: rs-nginx
spec:# 指定创建Pod的副本数量,默认值为1.replicas: 4# 定义标签选择器,rs资源基于标签选择器关联对应的Pod哟~selector:# 基于标签匹配#labels:#  hobby: sleep# 基于表达式匹配matchExpressions:- key: apps# values:# - haha# - xixi# - hehe# - web# 当operator的值为In或者NotIn时,values的值不能为空。#   - In:#      key的值必须在values定义的数组内。#   - NotIn:#      key的值必须不在values定义的数组内。# operator: In# operator: NotIn# 当operator的值为Exists或者DoesNotExist时,values的值必须为空.#    - Exists:#       只要存在key即可。#    - DoesNotExist:#       只要不存在指定的key即可。# operator: Existsoperator: DoesNotExist# 定义Pod资源创建的模板template:metadata:labels:# apps: webhobby: sleepspec:containers:- name: webimage: harbor.lxcedu.com/base-img/nginx:1.14.2

matchExpressions这种基于表达式匹配的方法,operator的值为Exists或DoesNotExist,value的值必须为空,此时匹配的分别为key不存在和存在的情况,而operator为In和NotIn这种匹配方法匹配的是key有没有包含value,value必须有值,in匹配方式要求key的值必须在values定义的数组内,NotIn匹配方式要求key的值必须不在values定义的数组内

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

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

相关文章

优化提示词改善答疑机器人回答质量

1.通过优化提示词来调整大模型的回答 1.1使用场景 默认提示词无法满足业务要求。 回答的内容太简单/困难,输出内容/格式/语气达不到要求等 1.2llama-index 的提示词模版 1.2.1llama-index 的默认模板 from llama_index.llms.dashscope import DashScope from lla…

计算机网络 笔记 物理层

物理层的目的:主要为了实现相邻节点之间的数据的传输(01010....) 通信基础概念 信源:信号的发送方 信宿:信号的接收方 信道:信号的通道,通常一个物理的线路包含了两个:发送信道和接受信道 信号:数据的载体,有两种分别是 数字信号:离散的信号值 模拟信号:连续的信号值 马元…

Visio 画阀门 符号 : 电动阀的画法

本篇文章介绍阀门,很多朋友在利用Visio绘画管道流程简图时,需要进行阀门符号的绘画,而Visio提供的阀门符号种类并不是很齐全。 本篇文章给出电动阀的画法: 下图是液动阀的符号: 首先,找到“更多形状”中的…

Flutter:封装一个自用的bottom_picker选择器

效果图&#xff1a;单列选择器 使用bottom_picker: ^2.9.0实现&#xff0c;单列选择器&#xff0c;官方文档 pubspec.yaml # 底部选择 bottom_picker: ^2.9.0picker_utils.dart AppTheme&#xff1a;自定义的颜色 TextWidget.body Text() <Widget>[].toRow Row()下边代…

这是什么操作?强制迁移?GitLab 停止中国区用户访问

大家好&#xff0c;我是鸭鸭&#xff01; 全球知名代码托管平台 GitLab 发布通告&#xff0c;宣布不再为位于中国大陆、香港及澳门地区的用户提供访问服务&#xff0c;并且“贴心”建议&#xff0c;可以访问极狐 GitLab。 极狐 GitLab 是一家中外合资公司&#xff0c;宣称获得…

协方差矩阵

协方差矩阵是一个对称矩阵&#xff0c;用来描述多个随机变量之间的协方差关系。协方差反映了两个随机变量如何共同变化的趋势&#xff0c;协方差矩阵将这种关系扩展到了多维数据。 1. 定义 假设有一个 n 维随机向量 &#xff0c;协方差矩阵 Σ 定义为&#xff1a; 其中&#…

计算机网络——网络层—IP数据报与分片

一、IP 数据报的格式 • 一个 IP 数据报由首部和数据两部分组成。 • 首部的前一部分是固定长度&#xff0c;共 20 字节&#xff0c;是所有 IP 数据报必须具有的。 • 在首部的固定部分的后面是一些可选字段&#xff0c;其长度是可变的。 IP 数据报首部的固定部分中的各字段 版…

QT自定义工具条渐变背景颜色一例

使用样式定义&#xff1a; QWidget* toolbar new QWidget(this);toolbar->setObjectName("main_tool");toolbar->setStyleSheet("#main_tool{background: qlineargradient(x1:0 , y1:0 , x2:1 , y2:0,""stop:0 rgba(0,255,0, 0.2),"&q…

Agent | Dify中的两种可选模式

参考 官方文档 Dify 为智能助手提供了两种推理模式&#xff1a; Function calling&#xff08;函数调用&#xff09;和 ReAct 。 Function calling&#xff08;函数调用&#xff09; Function Calling&#xff0c;函数调用&#xff08;即通过识别用户意图调用特定函数来执行…

Linux 文件的特殊权限—ACL项目练习

本文为Ubuntu Linux操作系统- 第二十一期~~ 上期回顾: 【ACL权限控制详解】 更多Linux 相关内容请点击&#x1f449;【Linux专栏】~ 主页&#xff1a;【练小杰的CSDN】 文章目录 项目项目要求具体的设置命令如下问题2问题3第一步&#xff1a;设置默认ACL前&#xff0c;在projec…

运放输入偏置电流详解

1 输入阻抗与输入偏置电路关系 在选择运放和仪表运放时&#xff0c;经常听到这样的说法&#xff1a;“需要非常高的输入阻抗”&#xff0c;事实上真实如此吗&#xff1f; 输入阻抗&#xff08;更确切的说是输入电阻&#xff09;很少会成为一个重要的问题&#xff08;输入电容也…

【线性代数】通俗理解特征向量与特征值

这一块在线性代数中属于重点且较难理解的内容&#xff0c;下面仅个人学习过程中的体会&#xff0c;错误之处欢迎指出&#xff0c;有更简洁易懂的理解方式也欢迎留言学习。 文章目录 概念计算几何直观理解意义 概念 矩阵本身就是一个线性变换&#xff0c;对一个空间中的向量应用…

1.2.1-2部分数据结构的说明02_链表

&#xff08;1&#xff09;链表数据结构&#xff1a; 概念&#xff1a; 将列表中相互连接的节点不连续的存储在内存中。与数据不同&#xff0c;我们无法再恒定时间内访问任何元组&#xff0c;如果遍历所有则花费时间与元素总数n成正比。插入和删除1个元素的时间复杂度都是O(n…

使用 uniapp 开发微信小程序遇到的坑

0. 每次修改代码时&#xff0c;都会触发微信开发工具重新编译 终极大坑&#xff0c;暂未找到解决方案 1. input 无法聚焦问题 问题&#xff1a;在小程序开发工具中&#xff0c;input 会突然无法聚焦&#xff0c;重启也不行。但是真机调试可以正常聚焦。 解决办法&#xff1a…

maven的简单介绍

目录 1、maven简介2、maven 的主要特点3、maven的下载与安装4、修改配置文件5、私服(拓展) 1、maven简介 Maven 是一个广泛使用的项目管理和构建工具&#xff0c;主要应用于 Java 项目。Maven 由 Apache 软件基金会开发和维护&#xff0c;它提供了一种简洁且一致的方法来构建、…

Mac中配置vscode(第一期:python开发)

1、终端中安装 xcode-select --install #mac的终端中安装该开发工具 xcode-select -p #显示当前 Xcode 命令行工具的安装路径注意&#xff1a;xcode-select --install是在 macOS 上安装命令行开发工具(Command Line Tools)的关键命令。安装的主要组件包括&#xff1a;C/C 编…

新车月交付突破2万辆!小鹏汽车“激活”智驾之困待解

首次突破月交付2万辆规模的小鹏汽车&#xff0c;稳吗&#xff1f; 本周&#xff0c;高工智能汽车研究院发布的最新监测数据显示&#xff0c;2024年11月&#xff0c;小鹏汽车在国内市场&#xff08;不含出口&#xff09;交付量&#xff08;上险口径&#xff0c;下同&#xff09…

STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !

一&#xff09;问题&#xff1a;用ULINK2给STM32F103C8T6下载程序&#xff0c;下载方式设置如下&#xff1a; 出现下面两个问题&#xff1a; 1&#xff09;下载问题界面如下&#xff1a; 这个错误的信息大概可以理解为&#xff0c;在0x08000063地址上读取到flash存储为FF&am…

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率

&#x1f36c;引言 &#x1f36c;什么是低代码平台&#xff1f; 低代码平台&#xff08;Low-Code Platform&#xff09;是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比&#xff0c;低代码平台大大简化了开发过程&a…

SpringBoot日常:集成Kafka

文章目录 1、pom.xml文件2、application.yml3、生产者配置类4、消费者配置类5、消息订阅6、生产者发送消息7、测试发送消息 本章内容主要介绍如何在springboot项目对kafka进行整合&#xff0c;最终能达到的效果就是能够在项目中通过配置相关的kafka配置&#xff0c;就能进行消息…