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

news2024/12/27 13:22:05

文章目录

    • 一、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容器中
    在这里插入图片描述

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

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

相关文章

「1」线性代数(期末复习)

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 第一章 行列式 行列式是一个数,是一个结果三阶行列式的计算:主对角线的乘…

MySQL 事务原理

文章目录1、事务1.1、ACID 特性1.1.1、原子性undo log1.1.2、一致性1.1.3、* 隔离性1.1.4、持久性redo log1.2、事务控制语句2、隔离级别2.1、隔离级别的分类2.1.1、读未提交 RU2.1.2、读已提交 RC2.1.3、可重复读 RR2.1.4、串行化 SC2.2、并发事务读异常2.2.1、* 脏读2.2.2、*…

PID控制算法基础介绍

PID控制的概念 生活中的一些小电器,比如恒温热水器、平衡车,无人机的飞行姿态和飞行速度控制,自动驾驶等等,都有应用到 PID——PID 控制在自动控制原理中是一套比较经典的算法。 为什么需要 PID 控制器呢? 你一定用…

【PyQt】PyQt学习(一)框架介绍+环境搭建

简介 写在最前面的话 在决定学习、使用一个框架之前需要考量如下几点: 框架运行效果;框架应用范围;框架学习成本和迁移成本;实现自己所需功能的开发效率; 只有综合考量如上四个方面,才能更好地选择适合…

突破传统开发模式,亚马逊云科技助力中科院加速推动合成生物学

当数字技术成为整个社会运行的底座,生物科学也能借力云计算从诸多繁琐重复的工作中解放出来,专注于生物设计与创新。来看看亚马逊云科技如何与TIBCAS合作,推动合成生物学的发展。 明确核心需求,选择合作伙伴 TIBCAS选择与亚马逊…

供应商管理软件如何选型 好用的供应商管理软件推荐

供应商管理是采购中的重要环节。对于很多企业来说,做好内部供应商管理就能在行业竞争中提升自身的效益与竞争能力,供应商已成为一种战略筹码。 但在企业进行供应商管理过程中,往往会遇到供应商信息数据收集不全、等级划分不合理、绩效评价机…

普通应用访问隐藏API的解决办法

众所周知,在Android9之后,Android系统限制了通过反射的方式访问隐藏Api,这对于系统应用来说或者你拥有系统签名的应用来说,并不是一件难事,但是更多的时候,我们的应用并不是系统应用,而现在通过反射的方式调用也会提示出错,那么这种情况下我们是否还有其他方法能够访问…

kettle利用excel文件增量同步一个库的数据(多表一次增量同步)

利用excel文件增量同步一个库的数据 现在有sqlserver和mysql两个库上的表在进行同步,mysql上的是源表,sqlserver上是目标表。 mysql : sqlserver : 可以看到sqlserver上表的最近一次同步日期分别是 pep表: 2022-10-23 14:19:00.000 stu_…

企业实施CMMI中 常见的4大问题

1. CMMI模型的理解和应用不够深入 CMMI模型是一个复杂的模型,它涉及到许多不同的方面,如组织结构、流程、技术、管理等,因此,要想深入理解和应用CMMI模型,需要花费大量的时间和精力。 企业实施CMMI常见4大问题&#xf…

likeshop单商户SaaS商城系统—无限多开,搭建多个商城

likeshop单商户SaaS商城系统:适用于多开(SaaS)、B2C、单商户、自营商城场景,完美契合私域流量变现闭环交易使用,系统拥有丰富的营销玩法,强大的分销能力,支持DIY多模板,前后端分离。…

阿里云服务器使用

服务器配置CPU&内存:2核(vCPU)2 GiB操作系统:Ubuntu 22.04 64位运行环境部署因为部署用到了nodejs首先,打开终端,并输入以下命令以安装必要的软件包:sudo apt-get install curl接着,使用 curl 命令安装…

RoFormer: Enhanced Transformer with Rotary Position Embedding论文解读

RoFormer: Enhanced Transformer with Rotary Position Embedding 论文:RoFormer: Enhanced Transformer with Rotary Position Embedding (arxiv.org) 代码:ZhuiyiTechnology/roformer: Rotary Transformer (github.com) 期刊/会议:未发表…

计算机网络原理--传输层协议(TCP协议十大特性)

目录 1.认识TCP协议 TCP的协议段格式 2. 确认应答机制 3.超时重传 4.连接管理 <

Spring的事务传播机制

多个事务方法相互调用时&#xff0c;事务如何在这些方法之间进行传播&#xff0c;Spring中提供了七种不同的传播机制&#xff0c;来保证事务的正常执行&#xff1a; REQUIRED&#xff1a;默认的传播机制&#xff0c;如果存在事务&#xff0c;则支持/加入当前事务&#xff0c;如…

大数据技术架构(组件)35——Spark:Spark Streaming(1)

2.3、Spark Streaming2.3.0、OverviewSpark Streaming 是核心 Spark API 的扩展&#xff0c;它支持实时数据流的可扩展、高吞吐量、容错流处理。数据可以从许多来源&#xff08;如 Kafka、Kinesis 或 TCP 套接字&#xff09;获取&#xff0c;并且可以使用复杂的算法进行处理&am…

jieba+wordcloud 词云分析 202302 QCon 议题 TOP 关键词

效果图 步骤 &#xff08;1&#xff09;依赖 python 库 pip install jieba wordcloud数据 概览 $ head -n 5 input.txt 中国软件技术发展洞察和趋势预测报告 2023 QCon 大会内容策划思路 FinOps&#xff1a;从概念到落地 开源芯片的发展现状、机遇和未来 乐观者前行&#xff0…

Axure 9 实战案例,动态面板的应用 4.1,省市区三级联动下拉菜单(重制简易版)

前言 Hello&#xff01;欢迎来到Axure 9 实战案例教程专栏。 本次课程我们继续来学习一下&#xff0c;动态面板的应用。本篇我们来讲解一下&#xff0c;如何绘制省市区联动下拉菜单&#xff08;重新撰写简易版&#xff09;。 下拉菜单初稿为了节省时间&#xff0c;这里提前把…

vue实现打印浏览器页面功能(两种方法)

推荐使用方法二 方法一&#xff1a;通过npm 安装插件 1&#xff0c;安装 npm install vue-print-nb --save 2&#xff0c;引入 安装好以后在main.js文件中引入 import Print from vue-print-nbVue.use(Print); //注册 3&#xff0c;现在就可以使用了 div id"printTest…

ChatGPT爆火,释放了什么不寻常信号?

ChatGPT&#xff0c;真的火了&#xff01; 相信许多朋友都听说过 ChatGPT&#xff0c;但并不清楚它是个啥。 体制内让ChatGPT写材料&#xff0c;广告行业让ChatGPT写策划案&#xff0c;媒体让ChatGPT写新闻稿&#xff0c;程序员让ChatGPT写代码甚至还带修BUG服务。 可以说是“…

告诉ChatGPT,我想读博了!

告诉ChatGPT&#xff0c;我想读博了&#xff01; 上篇文章详细写了如何体验ChatGPT。在实际使用中发现它对固定模板式的文字工作做的比较好。于是我瞬间想起了毕业前被论文支配的恐惧&#xff0c;我突然有一个大胆的想法&#xff0c;那么ChatGPT是否能帮我写一篇毕业论文呢&am…