k8s学习笔记-基础概念

(作者:陈玓玏)

  1. deployment特别的地方在于replica和selector,docker根据镜像起容器,pod控制容器,job、cronjob、deployment控制pod,job做离线任务,pod大多一次性的,cronjob控制离线定时任务,deployment保证pod挂掉的情况下自动重启,永远保持设置的副本数个的pod,修改副本数即可伸缩容(应该都是基于同一个镜像的容器的pod的副本),通过selector可以管理对应标签的pod;
  2. daemonset和deployment的区别是,deployment会自动重启pod到副本个数,保证业务永远在线,但不会在意pod在集群的哪个节点上。而daemonset会保证每个节点上都有一个pod,用于与其他节点进行通信、监控本节点、上报节点信息等,是守护进程,又称看门狗,能让每个节点都得到守护。但daemonset可能不会运行在master上,因为master上默认有一个“污点”,为了避免乱七八糟的业务都往master上部,所以如果想要master也有守护进程,可以修改守护进程的yaml中的“容忍度”。
  3. 容忍度就是每个pod能容忍有哪些“污点”的节点,“污点”就是节点有哪些限制等,修改污点和容忍度就能调节pod可以部署在哪些节点上,对deployment、daemonset来说都是一样的;
  4. service存在的意义就是,deployment保证永远能保持有n个在线的pod,daemonset就是能保证每个节点上都有可通信、监控的pod,service就是在复杂的pod重启后,保持前端只需要访问固定的ip。如果没有service,pod重启后,ip可能会变化,但service让前端只需要访问固定的ip,service去把具体的需求转发给具体的pod,称为服务发现。Service是利用kubeproxy实现的,有四层结构,有四种模式,只有nodeport和clusterip是非云厂商模式,前者能直接外网访问服务,后者只能集群内部访问。service是为动态ip地址的服务提供静态ip或域名访问,域名访问需要dns解析。域名访问可以用服务名加命名空间的形式来访问,Service另一个主要功能就是做负载均衡。
  5. Service的四层负载均衡和虚拟ip域名这些,导致它只适合做集群内部的负载均衡,要做外部的负载均衡,还需要更高级的功能,比如能利用常用的七层网络协议做负载均衡,并且能对接外部流量,对接到内部以后再由sevice做负载均衡。所以就有了ingress。Ingress的意思就是集群内外边界上的入口。你应该知道,Service 本身是没有服务能力的,它只是一些 iptables 规则,真正配置、应用这些规则的实际上是节点里的 kube-proxy 组件。如果没有 kube-proxy,Service 定义得再完善也没有用。ingress controller最常用的就是nginx。ingress和ingress controller中间还有一层ingress class,不同业务领域可以用不同的class,对接到不同的controller,避免了太多controller无法管理。
  6. 为什么要有持久卷?因为pod里的容器是由镜像产生的,镜像文件不能写,只能在pod里临时有个存储空间来写,如果pod消失了,存储空间和它里面的文件也就消失了,所以需要持久卷来持久化存储某些文件。持久卷一般通过挂载的形式挂载到容器中,其本质就是ceph、nfs等存储空间,pod没有管理权限。持久卷涉及两个概念,pvc和sc,pvc是代表pod向系统申请pv,一旦申请成功,k8s会把pv和pvc绑定在一起,sc叫storageclass,可以帮pvc找到合适的pv,避免pvc自己在一堆pv里面去找。pv就是持久卷,可以挂载到pod中的可持久化存储的位置,pvc就是代替pod向系统申请pv存储资源的,sc就是帮助pvc快速找到合适的pv的。一般我们想要持久化存储,先创建pv,再创建pvc,再把pv挂载到容器中,就可以在容器中实现持久化存储了。
  7. 持久卷如果使用hostpath,就是在本机,但pod可能在任意节点上,想要在集群任意节点实现持久化存储,就需要用网络存储,通常采用的就是分布式存储。
  8. 为什么有了deployment,还要有statefulset?因为deployment可以部署无状态应用,比如nginx,随时重启都可以接受网络请求,不需要记住上次运行到哪里了,然后接着运行,但有些应用是需要记住上次崩溃或者结束时的运行状态,中断重启需要能够接着运行,这就叫有状态的应用,deployment做不到,就需要statefulset。statefulset应用如果要对外提供服务,也需要配service,一般的service的域名使用的是“对象名. 名字空间”,每个 Pod 也会有一个域名,形式是“IP 地址. 名字空间”,但pod的ip不稳,所以一般不用,但有状态集的pod是有状态应用,需要有稳定的pod地址,所以service一般用有状态pod的新的域名,格式是“Pod 名. 服务名. 名字空间.svc.cluster.local”。为了保证有状态应用的持久化存储不会因为读写冲突而丢失数据,statefulset的持久化存储是专门内嵌在statefulset的yaml中的volumeClaimTemplates字段表示的。
  9. 滚动升级,pod中会定义策略strategy字段,用来指定应用升级的方式,比如滚动升级,共20个pod,每次杀掉的pod不能超过75%,必须留下25%的pod保证应用稳定运行,让前端客户感知不到升级。当机器资源足够时,我们可以先起升级的20个pod,确定可以运行之后再杀掉原来的20个pod,或者一部分一部分地升级,如果资源不够,就只能一次少升级几个pod,或者先杀掉pod,再升级。有状态应用的升级比较复杂,还需要考虑到pod之间的依赖关系,即使按照依赖关系进行升级,升级过程中也可能出现问题,比如前一个未执行完,就因为时间到了而被杀掉,或者被杀掉的pod还没完全启动,就已经跑到这个位置了,容易出现问题。
    10.怎么让应用运行得更健康? 可以限制pod能够申请的资源,通过resource字段,其中的requests和limits,可以写申请的资源和资源的上限。cpu一般用0.1之类的,memory一般用Ki、Mi、Gi 来表示 KB、MB、GB。还可以设置容器探针,Startup是启动探针,检查程序是否成功启动,Liveness是存活探针,用来检查应用是否正常运行,是否存在死锁、死循环。Readiness,就绪探针,用来检查应用是否可以接收流量,是否能够对外提供服务。另一种方法是对命名空间使用ResourceQuota这个api对象,来限制每个命名空间可占用的资源份额。

问题:
11. deployment部署的是服务pod,所以才有下面这张图是吗?是不是表示,deployment部署服务pod,然后service可以去代理对应标签的服务pod?所以daemonset部署的应该不是服务pod,而是监控的pod对吗?
在这里插入图片描述

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

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

相关文章

Unity | Shader基础知识(第十集:shader常用外部资产单词速成)

目录 一、外部资产简介 二、常用的外部资产单词 三、常用的外部资产单词和引入内部 四、图片资产外部调整的具体讲解 1.Tiling,中文:铺地砖 2.Offset,中文:偏移 五、作者的话 一、外部资产简介 在第六集中,我们…

旧衣回收小程序开发,提高回收效率增加创收

在我国经济大力发展下,国人的生活水平不断提高。生活质量得到提升,衣食住行也从而得到了提升。因此,家家户户中产生的闲置衣物开始增加,我国旧衣回收市场规模非常庞大。 当下,时代发展主流是以互联网为主,…

C# EF Core迁移数据库

现象: 在CodeFirst时,先写字段与表,创建数据库后,再添加内容 但字段与表会变更,比如改名删除增加等 需求: 当表字段变更时,同时变更数据库,执行数据库迁移 核心命令 Add-Migrat…

云计算 2月20号 (认识操作系统)

1、认识操作系统 计算机系统的组成 知识点1:没有软件系统的计算机称之为"裸机" 知识点2:裸机提供基本的可计算性资源 知识点3:操作系统是最靠近硬件的软件层,负责管理和控制计算机硬件。 计算机硬件组成五大部件 运算器…

MySQL:合并查询语句

1、查询表的数据 t_book表数据 SELECT * FROM db_book.t_book; t_booktype表数据 SELECT * FROM db_book.t_booktype; 提醒: 下面的查询操作的数据来自上图查询表的数据 2. 使用 UNION 查询结果合并,会去掉重复的数据 使用UNION关键字是,数…

docker报错 fatal error: runtim: out of memory

fatal error: runtim: out of memory 真无语了 系统内存也够用 原来是虚拟机的不够用了 (原本1g已经加到2g还是会报错) 直接3台虚拟机都加到4g

计算机组成原理-第一/二章 概述和数据的表示和运算【期末复习|考研复习】

前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下计算机组成原理中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王道的计算机组成原理和西电的计算机组成原理。 计算机组成原理系列文章传送门: 第一/二章 概述和数据…

深度学习-回顾经典AlexNet网络:山高我为峰

深度学习-回顾经典AlexNet网络之山高我为峰 深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。2012年AlexNet大放异彩,它把深度学习技术引领第一个高峰&#x…

Linux进程管理:(二)进程调度原语

文章说明: Linux内核版本:5.0 架构:ARM64 参考资料及图片来源:《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址: zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 进程调度的概念比较简单&#xff0c…

ubuntu系统下大数据服务器磁盘调优测试记录

一、背景 在kvm虚拟机ubuntu操作系统大数据平台测试的过程中,遭遇了磁盘I/O性能的瓶颈,因有cpu绑核操作,故有做隔核操作验证是否是绑核影响的磁盘I/O,后又对磁盘进行透传以及挂内存盘等操作; 二、磁盘介绍 2.1 磁盘…

【Linux】部署单机项目(自动化启动)

目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.部署项目 一.jdk安装 1.上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2.解压安装包 防止后面单个系列解压操作,我这边就直接将所有的要用的全部给解压,如下图注…

分布式存储 ZBS 的 RoCE 技术支持与大数据应用场景性能评测

作者:深耕行业的 SmartX 金融团队 闫海涛 在《解决 SAN 交换机“卡脖子”并升级存储架构?一文解析 RoCE 与相关存储方案趋势》文章中,我们分析了如何利用支持 RoCE 技术的分布式存储,同步实现 IT 基础架构的信创转型与架构升级&a…

利用python爬取本站的所有博客链接

目录 前因 首先的尝试 解决办法 导入包 定义一个json配置文件 打开浏览器执行操作 注意 提取源代码并且进行筛选链接 执行结果 前因 由于自己要把csdn的博客同步到hugo中,把博客转为md格式已经搞好了,但是由于csdn的图片具有防盗链,…

通过一篇文章让你了解数据结构和算法的重要性

通过一篇文章让你了解数据结构和算法的重要性 前言一、 什么是数据结构?二、什么是算法?三、数据结构和算法的重要性在校园招聘的笔试中:在校园招聘的面试中:在未来的工作中: 四、如何学好数据结构和算法4.1 死磕代码&…

swift 长按桌面图标弹出快捷选项

文章目录 一、3D Touch二、主屏交互1. 静态添加2. 动态添加三、监听主屏交互按钮的点击事件四、预览和跳转1. 注册3D touch2. 实现协议3. 在目标控制器复写previewActionItems4. 使用UIContextMenuConfiguration一、3D Touch 3D Touch通过屏幕下方的压力感应器来感知不同的压力…

【学习记录】Resnet

Resnet的残差块 BasicBlock模块: Resnet的作用 解决梯度消失。网络越深,会导致梯度消失。Resnet可以解决梯度消失的问题。 Resnet的原理 参考视频:https://www.bilibili.com/video/BV1cM4y117ob/?spm_id_from333.337.search-card.all.cl…

虚拟机部署Sentry步骤,国内地址

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

vue3中实现elementPlus表格选中行的上移下移

先看效果&#xff1a; 实现步骤&#xff1a; 1、给el-table添加current-change事件、高亮属性及ref属性 2、给上移下移按钮添加事件 // 定义当前选中的行参数 const currentRow ref<any>(null); // 定义表格的ref const singleTableRef ref(); // 行选中事件 const ha…

AI智能分析网关V4智慧环保/智慧垃圾站视频智能分析与监控方案

一、背景介绍 随着城市化进程的加速&#xff0c;垃圾处理问题日益受到人们的关注&#xff0c;传统的垃圾站管理方式已经无法满足现代社会的需求。针对当前垃圾站的监管需求&#xff0c;TSINGSEE青犀可基于旗下视频智能检测AI智能分析网关V4与安防监控视频综合管理系统EasyCVR平…

Python+neo4j构建豆瓣电影知识图谱

文章目录 数据来源数据整理导入节点和关系导入使用Subgraph批量导入节点和关系 多标签实体和实体去重 数据来源 http://www.openkg.cn/dataset/douban-movie-kg 该网址拥有丰富的中文知识图谱数据集&#xff0c;OpenKG(Open Knowledge Graph)&#xff0c;可供研究人员使用研究…