当前位置: 首页 > news >正文

k8s核心概念—Pod Controller Service介绍——20230213

文章目录

    • 一、Pod
      • 1. pod概述
      • 2. pod存在意义
      • 3. Pod实现机制
      • 4. pod镜像拉取策略
      • 5. pod资源限制
      • 6. pod重启机制
      • 7. pod健康检查
      • 8. 创建pod流程
      • 9. pod调度
    • 二、Controller
      • 1. 什么是Controller
      • 2. Pod和Controller关系
      • 3. deployment应用场景
      • 4. 使用deployment部署应用(yaml)
      • 5. 应用升级回滚和弹性伸缩
      • 6. StatefulSet 部署有状态应用——无状态和有状态
      • 7. 部署有状态应用
      • 8. 部署守护进程DaemonSet
      • 9. job(一次性任务)
      • 10. cronjob(定时任务)
    • 三、service
      • 1. Service存在意义
      • 2. Pod和Service关系
      • 3. 常用Service类型
    • 四、配置管理—Serect
    • 五、配置管理—ConfigMap

一、Pod

1. pod概述

  • 最小部署单元
  • 包含多个容器(一组容器的集合)
  • 一个pod中容器共享网络命名空间(NameSpace)
  • pod是短暂的

2. pod存在意义

  1. 创建容器使用docker,一个docker对应的是一个容器,一个容器有进程,一个容器运行一个应用程序

  2. pod是多进程设计,运行多个应用程序
    一个pod有多个容器,一个容器里面运行一个应用程序
    原因参考这篇文章

  3. pod存在为了亲密性
    ①两个应用之间进行交互
    ②网络之间调用
    ③两个应用需要频繁调用

3. Pod实现机制

1)共享网络
通过Pause容器,把其他业务容器加入到Pause容器里面,让所有业务容器在同一个namespace中,从而实现网络共享。

  • pod实现共享网络机制

①创建Pause容器(也叫info容器,也叫根容器)
②创建业务容器1,2,……
③业务容器一次加入到info容器(pause容器)中,创建出独有的IP,mac地址,port
使得所有业务容器在同一个namespace中,实现网络共享。
在这里插入图片描述

2)共享存储
通过引用数据卷概念Volumn,使用数据卷进行持久化存储

  • pod实现共享存储机制

现有2个node节点
①node1中pod产生的数据会存储到数据卷中持久化存储
②node1宕机/挂掉后
③node1中的pod会到node2中继续运行,通过读取数据卷中存储的数据
从而实现持久化存储。

在这里插入图片描述

4. pod镜像拉取策略

在这里插入图片描述

5. pod资源限制

在这里插入图片描述

6. pod重启机制

在这里插入图片描述

7. pod健康检查

在这里插入图片描述

8. 创建pod流程

在这里插入图片描述

9. pod调度

  • 影响调度的属性
  1. pod资源吸纳之对pod调度产生影响
  2. 节点选择器标签影响pod调度
    在这里插入图片描述
    节点选择器工作流程⬇
    在这里插入图片描述
  3. 节点亲和性影响pod调度
    节点亲和性 nodeAffinity 和之前 nodeSelector 基本一样的,根据节点上标签约束来绝对pod调度到哪些节点上。

在这里插入图片描述

  1. 污点和污点容忍
    在这里插入图片描述
    在这里插入图片描述

二、Controller

1. 什么是Controller

在集群上管理和运行容器的对象

2. Pod和Controller关系

(1)Pod是通过Controller实现应用的运维,比如伸缩、滚动升级等等
(2)Pod和Controller之间通过label标签关系

3. deployment应用场景

(1)部署无状态应用
(2)管理Pod和ReplicaSet
(3)部署,滚动升级等功能
应用场景:web服务,微服务

4. 使用deployment部署应用(yaml)

# 第一步:导出yaml文件
kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml
# 第二部:使用yaml部署应用
kubectl apply -f web.yaml
# 第三部:对外发布(暴露对外端口号)
kubectl expose deployment web --port=80 --type=NodePort=80 --name-web1 -o yaml > web1.yaml
kubectl apply -f web1.yaml
kubectl get pods,svc
# ip+端口能否访问nginx

5. 应用升级回滚和弹性伸缩

# 应用升级
kubectl set image deployment web nginx=nginx:1.15# 查看升级状态
kuectl rollout status deployment web# 查看升级版本
kubectl rollout history deployment web# 回滚到上一个版本
kubectl rollout undo deployment web# 回滚到指定版本
kubectl rollout undo deployment web --to-revision=2# 弹性伸缩
kubectl scale deployment web --replicas=10

6. StatefulSet 部署有状态应用——无状态和有状态

(1)无状态:
①认为Pod都是一样的
②没有顺序要求
③不用考虑在哪个node运行
④随意进行伸缩和扩展
(2)有状态
上面因素都要考虑到
①让每个Pod都是独立的,保持pod启动顺序和唯一性
②唯一的网络标识符,持久储存
③有序,比如MySQL主从

7. 部署有状态应用

  • 无头service:通俗讲就是将ClusterIP值设为none,即ClusterIP:none
    (1)StatefulSet部署有状态应用
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

8. 部署守护进程DaemonSet

(1)在每个node上运行一个pod,新加入的node也同样在一个pod里面
例子:在每个node节点安装数据采集工具
在这里插入图片描述

9. job(一次性任务)

10. cronjob(定时任务)

三、service

1. Service存在意义

(1)防止Pod失联(服务发现)
(2)定义一组Pod访问策略(负载均衡)

在这里插入图片描述

2. Pod和Service关系

根据label和selector标签建立关联
在这里插入图片描述

3. 常用Service类型

(1)ClusterIP:集群内部使用
(2)NodePort:对外访问应用使用
(3)LoadBalancer:对外访问应用使用,公有云

node内网部署应用,外网一般不能访问到的

  • 找到一台可以进行外网访问机器,安装nginx,反向代理
    ** 手工把可以访问节点添加到nginx里面
    LoadBalancer:公有云,把负载均衡,控制器

四、配置管理—Serect

作用:加密数据,存在etcd里面,让pod容器以挂载Volume方式进行访问。
场景:凭证

  1. 创建serect加密数据
    在这里插入图片描述
  2. 以变量形式挂载到容器中
    kubectl exec:在指定容器内执行命令
    在这里插入图片描述
  3. 以Volume形式挂在到Pod容器中
    在这里插入图片描述

五、配置管理—ConfigMap

作用:存储不加密数据到etcd,以变量或者Volume挂载到pod容器中。
场景:配置文件

  1. 创建配置文件
  2. 创建configmap
    在这里插入图片描述
  3. 以Volume挂载到pod容器中
    在这里插入图片描述

相关文章:

k8s核心概念—Pod Controller Service介绍——20230213

文章目录一、Pod1. pod概述2. pod存在意义3. Pod实现机制4. pod镜像拉取策略5. pod资源限制6. pod重启机制7. pod健康检查8. 创建pod流程9. pod调度二、Controller1. 什么是Controller2. Pod和Controller关系3. deployment应用场景4. 使用deployment部署应用(yaml&a…...

Tensorflow的数学基础

Tensorflow的数学基础 在构建一个基本的TensorFlow程序之前,关键是要掌握TensorFlow所需的数学思想。任何机器学习算法的核心都被认为是数学。某种机器学习算法的策略或解决方案是借助于关键的数学原理建立的。让我们深入了解一下TensorFlow的数学基础。 Scalar 标…...

IT培训就是“包就业”吗?内行人这么看

大部分人毕业后选择参加职业技能培训,都是为了学完之后能找到好工作,而“就业服务”也成为各家培训机构对外宣传的重点内容。那么,所谓的“就业服务”就是“包就业”和“包底薪”吗?学完就一定能拿到offer吗?今天&…...

【算法】【数组与矩阵模块】顺时针旋转打印矩阵

目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介绍 …...

Java中的锁概述

java中的锁java添加锁的两种方式:synchronized:关键字 修饰代码块,方法 自动获取锁、自动释放锁Reentrantlock:类 只能修饰代码块 手动加锁、释放锁java中锁的名词一些锁的名词指的是锁的特性,设计,状态&am…...

微电影行业痛点解决方案

在当下新媒体时代,微电影作为“微文化”的载体,具有“微”的特点,经过短短数年的快速发展,并获得了受众广泛的关注和喜爱,对人们的休闲娱乐方式也产生较大的影响。但在迅猛发展的同时也存在一些行业痛点,诸…...

使用Spring框架的好处是什么

使用Spring框架的好处是什么? 1、轻量:Spring 是轻量的,基本的版本大约2MB。 2、控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 3、面向切面的编程(AOP…...

【表格单元格可编辑】vue-elementul简单实现table表格点击单元格可编辑,点击单元格变成弹框修改数据

前言 这是继我另一个帖子就是单元格点击变成输入框后添加的功能 因为考虑到有些时候修改单元格的信息可能点击后要修改很多,那一个输入框不好用 所以这时候就需要一个弹框可以把所有表单都显示出来修改 所以这里就专门又写了一个demo,用于处理这种情况 …...

vue3.0 响应式数据

目录1.什么是响应式2. 选项式 API 的响应式数据3.组合式 API 的响应式数据3.1 reactive() 函数3.2 toref() 函数3.3 toRefs() 函数3.4ref() 函数总结1.什么是响应式 这个术语在今天的各种编程讨论中经常出现,但人们说它的时候究竟是想表达什么意思呢?本质…...

uni-app ①

文章目录一、uni-app简介学习 uniapp 本质uniapp 优势uni-app 和 vue 的关系uni-app 和小程序有什么关系uniapp 与 web 代码编写区别课程内容学习重点知识点一、uni-app 简介 uni-app 是一个使用 Vue.js 进行 开发所有前端应用的框架。开发者编写一套代码,即可发布…...

20个 Git 命令玩转版本控制

想要在团队中处理代码时有效协作并跟踪更改,版本控制发挥着至关重要的作用。Git 是一个版本控制系统,可以帮助开发人员跟踪修订、识别文件版本,并在必要的时候恢复旧版本。Git 对于有一定编程经验的用户来说虽然不算太难,但是想要…...

SAP NetWeaver版本和SAP Kernel版本的确定

SAP NetWeaver(SAP NW)描述了用于“业务启用”的所有软件和服务。SAP业务套件(如ERP中央组件(ECC)或供应商关系管理(SRM))包含该特定业务解决方案的软件组件。 以下是SAP NetWeaver…...

面试23K字节测试开发岗被血虐,到底具有怎样的技术才算高级水平?

前几天我朋友跟我吐苦水,这波面试又把他打击到了,做了6年软件测试。。。 下面这条招聘是在腾讯招聘官网截图下来的,首先我们对高级水平下一个定义吧,那它应该是对标这个职级该有的能力 什么样的工程师才能算高级?至少…...

智云通CRM:买对了吗——大客户采购的方案实施

一旦采购合同签署后,供应商就要履行合同,按时交付产品进场使用,或实施服务方案。不过,无论对供应商还是客户来说,双方的合作并没有就此结束。 在这个阶段,客户会评估此次合作的供应商做事是否靠谱&#x…...

前后端开发过程中的跨域问题总结

1.何为跨域问题 出于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能不能使用。可以说web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。…...

爬虫:栖落的电影网站,利用requests和re模块

这是栖落的电影网站地址:https://xxx.xxx 进入网页,显示: 爬取目标:电影的名称、观影人数和评分。 易知本网站的url url "https://xxx.xxx" 本网站会识别出headers中的python请求而拒绝访问,所以需要更改…...

使用burpsuite抓包 + sql工具注入 dvwa靶场

使用burpsuite抓包 sql工具注入 dvwa靶场 记录一下自己重新开始学习web安全之路②。 一、准备工作 1.工具准备 sqlmap burpsuite 2.浏览器准备 火狐浏览器 设置代理。 首先,先设置一下火狐浏览器的代理 http代理地址为127.0.0.0.1 ,端口为8080 …...

树与图中的dfs和bfs—— AcWing 846. 树的重心 AcWing 847. 图中点的层次

一、AcWing 846. 树的重心1.1题目1.2思路分析题意:什么是树的重心?树的重心是指,删除某个结点后剩下的最大连通子树的结点数目最小,如下图是根据样列生成的树,若删除结点1,则剩下三个子树最大的是中间那颗结…...

从零开始学数据分析之数据分析概述

当今世界对信息技术的依赖程度在不断加深,每天都会有大量的数据产生,我们经常会感到数据越来越多,但是要从中发现有价值的信息却越来越难。 这里所说的信息,可以理解为对数据集处理之后的结果,是从数据集中提炼出的可…...

十五载厚积薄发,电信级分布式数据库是这样炼成

所在论坛:数据库技术创新&云原生论坛 分享时段:2.18 10:00-10:30 分享主题:大规模并行处理:AntDB分布式演进之路 分享嘉宾:沈夺,亚信科技AntDB数据库内核开发工程师 由中国开源软件推进联盟Postgre…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...