Kubernetes 之 StatefulSet基本原理

Kubernetes 之 StatefulSet

StatefulSet 定义

StatefulSet 是一个有状态的集合,不同于一般 Pod 的一致性,不同的 Stateful Set 创建的 Pod 之间存在数据上的差异。同时它们是有序的,这样它们在故障或删除后恢复,自身的名字也不会变化,以达到维护整个分布式系统的目的。例如在 Redis 主从集群中,我们不能用 Pod 模式来部署,以为主从容器之间的配置信息是不一样的,这时候我们就需要 Stateful Set 来实现我们的需求。

StatefulSet 的使用

apiVersion: v1
kind: Service
metadata:name: nginxlabels:app: nginx
spec:ports:- port: 80name: webclusterIP: Noneselector:app: pod-nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: stateful-set-web
spec:serviceName: "nginx"replicas: 2selector:matchLabels:app: pod-nginxtemplate:metadata:labels:app: pod-nginxspec:containers:- name: nginximage: registry.k8s.io/nginx-slim:0.8ports:- containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/htmlvolumeClaimTemplates:- metadata:name: wwwspec:storageClassName: nfs-clientaccessModes: [ "ReadWriteOnce" ]resources:requests:storage: 100Mi
---
kind: Pod
apiVersion: v1
metadata:name: stateful-set-test
spec:containers:- name: stateful-set-testimage: docker.io/k8s-test:v1.0restartPolicy: "Never"
root@k8s-master1:~# kubectl get pods -owide
NAME                                     READY   STATUS    RESTARTS      AGE   IP               NODE          NOMINATED NODE   READINESS GATES
nfs-client-provisioner-d5bf6698d-mxjw2   1/1     Running   1 (61m ago)   23h   10.244.194.109   k8s-worker1   <none>           <none>
stateful-set-test                        1/1     Running   0             62s   10.244.126.56    k8s-worker2   <none>           <none>
stateful-set-web-0                       1/1     Running   0             62s   10.244.194.114   k8s-worker1   <none>           <none>
stateful-set-web-1                       1/1     Running   0             61s   10.244.126.57    k8s-worker2   <none>           <none>root@k8s-master1:~# kubectl get pvc
NAME                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
www-stateful-set-web-0   Bound    pvc-81e64b41-f60d-488f-8862-90c91f821641   100Mi      RWO            nfs-client     <unset>                 5m50s
www-stateful-set-web-1   Bound    pvc-2d269bcd-297f-4bd9-9e5d-f24c41fc5c6b   100Mi      RWO            nfs-client     <unset>                 5m40sroot@k8s-master1:~# kubectl exec -it stateful-set-test -- /bin/sh
/ # curl nginx
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Nginx Test</title>
</head>
<body>
Hello Web1
</body>
</html>
/ # curl nginx
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Nginx Test</title>
</head>
<body>
Hello Web2
</body>
</html>

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

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

相关文章

django中,出现CSRF verification failed. Request aborted.错误

这是跨站点访问的防范机制&#xff0c;csrf是一个令牌&#xff0c;会验证登录&#xff0c;需要在setting中把 "django.middleware.csrViewMiddleware" 注释掉 并在html文件中的<body>内添加 {% csrf token %} 就可以了

Star CCM+边界层设置

边界层介绍 在流体仿真中&#xff0c;边界层是指靠近实体表面的流体区域&#xff0c;其作用是描述流体在实体表面附近的速度和压力分布。边界层主要影响着物体表面的摩擦阻力、热传导以及质量传输等现象。 一般来说&#xff0c;在流体仿真中会设置一到三层不同厚度的边界层。…

JZ2440笔记:rtc驱动

在common-smdk.c里smdk_devs添加&s3c_device_rtc 重新编译uImage&#xff0c;测试&#xff1a; # ls /dev/rtc* -l crw-rw---- 1 0 0 254, 0 May 6 21:58 /dev/rtc0 # date Tue May 6 21:59:56 UTC 1975 # date 05311448202420 date: invalid date …

【小白专用】mysql 添加索引-结合实战项目

mysql的索引有很多种&#xff0c;下面我们来介绍以下。 1.添加主键索引&#xff1a; primary key ALTER TABLE table_name ADD PRIMARY KEY ( column ) 2.添加 唯一索引&#xff1a; ALTER TABLE table_name ADD UNIQUE (column ) 3.添加 普通索引&#xff1a; ALTER TAB…

LLM 大语言模型学习笔记

通俗易懂的LLM&#xff08;上篇&#xff09;-CSDN博客 通俗易懂的LLM&#xff08;下篇&#xff09;-CSDN博客 前言一、大模型激活函数 1、ReLU2、GeLU3、GLU4、GeGLU5、SwiGLU二、位置编码 1、旋转位置编码三、Decoder-only模型 1、生成任务2、推理流程3、解码生成方式四、三种…

最常用的电平转换电路

最常用的电平转换电路 两颗NMOS搭建的电平转换电路![请添加图片描述](https://img-blog.csdnimg.cn/direct/2b496321257f4bc4a1f23a086337ed27.png)两颗NPN三极管搭建的电平转换电路二极管钳位搭建电平转换电路二极管和MOS管组合的电平转换电路专用转换芯片电平转换 两颗NMOS搭…

java解析excel文件,返回json

我这里用的是springboot项目&#xff0c;配合Maven使用的。首先需要引入依赖&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency…

YAML快速编写示例

一、案例 1.1 自主式创建service关联上方的pod 资源名称my-nginx-kkk命名空间my-kkk容器镜像nginx:1.21容器端口80标签njzb:my-kkk 1.1.1 创建一个demo文件夹 1.1.2 创建并获取模版文件 1.1.3 查看服务并编写yaml文件 1.1.4 编写yaml文件并部署&#xff0c;查看服务是否运行成…

elementui中的el-checkbox-group添加全选按钮

//多选子组件 <template><div class"multiple-choice"><el-checkbox class"no1" v-if"isShowAllBtn" :indeterminate"isIndeterminate1" v-model"checkAll1" border :style"{borderColor:isIndetermina…

elementUI - 折叠以及多选的组件

//子组件 <template><!-- 左侧第二个 --><div class"left-second-more"><div class"layer-list-wrapper1"><el-collapse v-model"activeNames" change"handleChange"><el-collapse-item v-for"…

数据结构基础篇(5)

二十一.栈和队列的定义和特点 栈 栈的定义 栈是一个特殊的线性表&#xff0c;是限定仅在一段(通常是表尾)进行插入和删除操作的线性表又叫后进后出段的线性表&#xff0c;LIFO结构栈的概念 栈是仅在表尾进行插入&#xff0c;删除操作的线性表表尾叫栈顶Top&#xff1b;表头叫栈…

修改ModelLink在RTX3090完成预训练、微调、推理、评估以及TRT-LLM转换、推理、性能测试

修改ModelLink在RTX3090完成预训练、微调、推理、评估以及TRT-LLM转换、推理、性能测试 1 参考文档2 测试环境3 创建容器4 安装AscendSpeed、ModelLink5 下载LLAMA2-7B预训练权重和词表6 huggingface模型的推理及性能测试7.1 修改torch,deepspeed规避缺失npu环境的问题7.2 修改…

入门指南:使用 Pygame 创建游戏

Pygame 是一个功能强大的 Python 游戏开发库&#xff0c;它提供了丰富的功能和工具&#xff0c;使得创建2D游戏变得简单而有趣。本文将带您逐步学习如何使用 Pygame 创建自己的游戏。无需担心&#xff0c;即使您是一个完全的新手&#xff0c;也可以在本文中找到有用的信息。 什…

C语言编程软件贴吧:探索最佳编程伴侣的奥秘

C语言编程软件贴吧&#xff1a;探索最佳编程伴侣的奥秘 在浩瀚的编程世界中&#xff0c;C语言以其独特的魅力吸引着无数开发者。而对于初学者和资深程序员来说&#xff0c;一款优秀的C语言编程软件无疑是提升编程效率、享受编程乐趣的得力助手。那么&#xff0c;在贴吧这个信息…

期末速成 ——计算机组成原理(2)数值的表示与运算

目录 一、定点数的表示 &#xff08;一&#xff09;无符号数和有符号数的表示 &#xff08;二&#xff09;机器数的定点表示 &#xff08;三&#xff09;原码、补码、反码、移码 (1)原码表示法 二、浮点数的表示 三、溢出判断 (一)采用一位符号位 (二)采用双符号位 四…

Next.js API Routes:构建服务端功能

Next.js 的 API 路由允许你在 Next.js 应用程序中创建独立的服务端功能&#xff0c;这些功能可以处理 HTTP 请求并返回 JSON 数据或其他响应。API 路由位于项目中的 pages/api 目录下&#xff0c;每个文件都会映射到一个特定的 API 路径。 基本示例 pages/api/users.js impo…

【C++】Socket编程基础

文章目录 套接字通信类型名空间套接字函数socket()&#xff1a;创建套接字bind()函数&#xff1a;绑定服务器套接字与其地址、端口listen()函数&#xff1a;侦听客户连接connect()&#xff1a;连接套接字accept()函数&#xff1a;服务器接受连接&#xff0c;并为该连接创建一个…

在 Vue 应用中下载.doc文档(或任何其他类型的文件)

在 Vue 应用中下载.doc文档&#xff08;或任何其他类型的文件&#xff09; 在Vue应用中下载.doc文档&#xff08;或任何其他类型的文件&#xff09;通常涉及到后端提供一个文件下载的接口&#xff0c;前端通过发送请求到这个接口来触发文件下载。以下是如何在 Vue 中实现文件下…

LC 旋转 - 模拟对象

原文链接 链接 液晶 (LC) 旋转网格属性允许您以 theta、phi 为单位指定空间变化的 LC 导向。 液晶由杆状分子结构组成&#xff0c;这些分子结构具有相对于长轴的旋转对称性。因此&#xff0c;液晶具有空间变化的单轴光学特性。 相对于分子长轴和分子短轴的折射率称为非寻常 ne …

Python生成requirements.txt的方法

在Python项目中,requirements.txt 文件通常用于列出项目所需的所有Python包及其版本。这样,其他人或系统可以轻松地安装所有必要的依赖项,以确保项目的正确运行。 以下是生成 requirements.txt 文件的几种方法: 方法1:使用 pip freeze 如果你的项目环境中已经安装了所有…