首页 > 其他分享 >k8s知识

k8s知识

时间:2024-06-16 16:35:36浏览次数:27  
标签:容器 container ReplicaSet 知识 Infra Deployment Pod k8s

共享网络

每个Pod 里,额外起一个Infra container小容器来共享整个Pod的Network Namespace
Infra container 是一个非常小的镜像,大概 100~200KB 左右,是一个汇编语言写的、永远处于“暂停”状态的容器。由于有了这样一个Infra container之后,其他所有容器都会通过Join Namespace的方式加入到Infra container的Network Namespace中
整个 Pod 里面,必然是 Infra container 第一个启动

共享存储

 Pod来给容器共享存储可以通过挂载同一个Volume(EmptyDir)来解决

容器设计模式

Sidecar边车模式,执行主业务容器所需要的一些辅助工作
(1)需要在主业务容器启动前做一些前置准备可使用Init Conainer来解决
(2)日志收集,转发到ELK集群,打包进Pod里做收集工作(Fluentd)
(3)监控业务,将监控组件或者监控脚本装进Sidecar容器与主容器进行协作
(4)Proxy代理:代理容器能够实现对业务容器屏蔽被代理的服务集群,简化业务代码实现的逻辑
(5)适配器容器:将业务容器暴露出来的接口转换成另一种模式,比如业务容器暴露接口/metrics,监控系统升级需要访问/health才能够访问,这时候Sidecar容器就可以起到转发请求的作用,且由于Pod之间是Localhost直接通信,不存在性能损耗。

管理模式

Deployment只负责管理不同版本的ReplicaSet,由ReplicaSet来管理Pod副本数,每个RS对应了Deployment template的一个版本,一个RS下的Pod的都是同一版本,Template Hash都是一样的
Deployment负责创建ReplicaSet,ReplicaSet负责创建Pod
Deployment 发布部署的根本原理是调整不同版本的ReplicaSet的终态副本数,回滚也是通过回滚到不同版本的ReplicaSet

image

Deployment控制器

控制器都是通过 Informer 中的 List-Watch机制 对订阅到的事件 通过注册的Event Handler 进行处理

Deployment 控制器会将 DP 和 RS 的Event加入到队列,Deployment Controller从队列中取出事件后会判断Paused是否为True来决定是更新ReplicaSet

注意:Deployment Controller主要负责管理Deployment对象,创建和管理ReplicaSet,并不会直接对Pod资源变更做出反应,而是监控和管理ReplicaSet

image

ReplicaSet控制器

ReplicaSet controller只管理副本数,Deployment 控制器负责ReplicaSet版本管理

Spec字段解析

(1)inReadySeconds:Deployment 就一定会等到 Pod ready 超过MinReadySeconds才会认为是Available的,Available的前提是Pod ready
(2)revisionHistoryLimit:保留历史 revision,即保留历史 ReplicaSet 的数量,默认值为 10 个
(3)paused:paused 是标识,Deployment 只做数量维持,不做新的发布
(4)progressDeadlineSeconds:当 Deployment 处于扩容或者发布状态时,如果超过DeadlineSeconds还处于 processing,那么 controller 将认为这个 Pod 会进入 failed 的状态

Deployment更新升级策略字段解析

MaxUnavailable:滚动过程中最多有多少个 Pod 不可用
MaxSurge:滚动过程中最多存在多少个 Pod 超过预期 replicas 数量
在生产环境中,如果资源足够,注重服务可用性,MaxUnavailable 可设置25%以下、MaxSurge可设置50%以上

image

DaemonSet控制器

(1)保证集群内的每一个节点都运行一组相同的Pod
(2)保证新加入集群节点自动创建相应DaemonSet的Pod
(3)在节点移除集群时自动删除对应Pod
(4)监控Pod状态,如Deployment一样保持DaemonSet Pod的数量

适用于:(1)日志Fluentd(2)持久化存储NFS(3)性能Metricbeat

配置管理

可变配置就用 ConfigMap
敏感信息是用 Secret
身份认证是用 ServiceAccount 这几个独立的资源来实现的
资源配置是用 Resources
安全管控是用 SecurityContext
前置校验是用 InitContainers 这几个在 spec 里面加的字段,来实现的这些配置管理

标签:容器,container,ReplicaSet,知识,Infra,Deployment,Pod,k8s
From: https://www.cnblogs.com/iamxiaofu/p/18197764

相关文章

  • k8s 使用docker作为容器进行时
    在Kubernetes集群中使用Docker作为容器运行时,您需要确保Kubernetes的配置能够正确地指向Docker守护进程。以下是使用Docker作为Kubernetes容器运行时的一般步骤:安装Docker:在所有Kubernetes节点(包括主节点和工作节点)上安装Docker。参考上一个回答中的步骤来在R......
  • 移动端超超超详细知识点总结(Part4)
    rem基础1.rem单位rem(rootem)是一个相对单位,类似于em,em是父元素字体大小。不同的是rem的基准是相对于html元素的字体大小。比如,根元素(html)设置font-size=12px;非根元素设置width:2rem;则换成px表示就是24px。rem的优势:父元素文字大小可能不一致,但是整个页面只有一个html,......
  • 软考 系统架构设计师系列知识点之杂项集萃(38)
    接前一篇文章:软考系统架构设计师系列知识点之杂项集萃(37)第62题以下关于域名服务器的叙述,错误的是()。A.本地缓存域名服务不需要域名数据库B.顶级域名服务器是最高层次的域名服务器C.本地域名服务器可以采用递归查询和迭代查询两种查询方式D.权限服务器负责将其管辖......
  • 软考 系统架构设计师系列知识点之杂项集萃(37)
    接前一篇文章:软考系统架构设计师系列知识点之杂项集萃(36)第60题用例(usecase)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户账号是否正确。用例“创建新订单”、“更新订单”与用例“核......
  • k8s资源管理方式
    目录一、什么是k8s资源管理1、简介2、系统资源查看3、常见的资源类型二、资源管理的方式1、命令式对象管理2、命令式对象配置3、声明式对象配置4、区别三、命令式对象管理1、kubectl命令1.1、语法格式1.2、常见操作1.3、示例1.3.1、查看所有的pod1.3.2、查看某个pod1.3.3、查看某......
  • Git 关键知识
    **一、安装Notepad++**二、安装git在编辑工具选Notepad++三、建立本地用户名和邮件地址信息建立本地用户名:gitconfig--globaluser.name"zf_fish"建立本地邮件地址:gitconfig--globaluser.email"[email protected]"查询git配置:gitconfig-l可以看到最后用户名和......
  • 用python写一个企业知识库算法
    企业知识库算法是一个用于管理和检索企业内部知识的系统。在这个例子中,我们将使用Python编写一个简单的企业知识库算法,该算法将实现以下功能:1.添加知识条目2.搜索知识条目我们将使用一个字典来存储知识库中的知识条目。每个知识条目都是一个字典,包含以下字段:-id:知识条......
  • k8s学习--Traffic Shifting 流量接入
    文章目录应用环境一、Argorollouts安装1.在Kubernetes集群中安装argorollouts2.安装argorollouts的kubectlplugin3.Argo-RolloutsDashboard二、负载均衡器metallb部署1.修改kube-proxy代理模式2.metallb部署3.IP地址池准备4.开启二层通告三、TrafficShifting......
  • Python学习笔记8:入门知识(八)
    前言本篇是元组的知识点学习以及知识点的补充元组概念不可变的列表,叫做元组。在之前列表的特性中,我们就说过列表是可变的,但是在实际使用过程中,我们有时候仍然需要一系列不可变的元素,这个时候就需要元组出场了。定义元组看起来犹如列表,但使用圆括号而不是方括号来标识......
  • 基于知识图谱的古诗词问答系统(全网首份 + 包复现 + 理论篇)
    目录一、前言二、问答系统架构三、系统处理模块3.1系统注册与登录3.2数据交互四、古诗词知识图谱模块4.1数据获取与处理4.2知识表示与建模4.3知识抽取与挖掘4.4知识存储与融合4.5知识检索与推理五、问答交互模块5.1系统注册与登录六、问句解析模块6.1意图......