K8S哲学 - Pod、RC、RS、deployment

pod(最小的可部署单元)

容器组(运行一个或多个容器)

Pod(容器组)是Kubernetes 中最小的可部署单元。
一个Pod(容器组)包含了一个应用程序容器(某些情况下是多个容器)、存储资源、
一个唯一的网络 iP 地址、以及一些确定容器该如何运行的选项。Pod 容器组代表了 Kubernetes 中一个独立的应用程中运行实例,该实例可能由单个容器或几个紧藕合在一
起的容器组成。


Docker 是 Kubernetes Pod 中使用最广泛的容器引擎;
Kubernetes Pod 同时也支诗其他类型的容器引擎

Kubernetes 集群中的Pod 存在如下两种使用途径

一个Pod 中只运行一个容器。"one-container-per-pod " 是Kubernetes 中最常见的使用方式。此时、可以认为 Pod容器组是该容器的 wrapper. Kubernetes 通过 Pod 管理容器,而不是直接管理容器。


一个pod中运行多个需要互相协作的容器。可以将多个紧密耦合、共享资源且始终

在一起运行的容器编排在同一个Pod 中,

pod 副本(replicas)

一个pod可以被复制成多份,每一份可被称之为一个"副本”,这些副本-除了一些描述性的信息 (Pod的名字、uid 等)不一样以外,其它信息都是一样的,譬如Pod
内部的容器 容器数量,容器里面运行的应用等的这些信息都是一样的,这些副本提供同样的功能。
Pod 的“控制器“通常包含一个名为“replicas” 的厲性。“replicas”属性则指定了特定 Pod 的副本的数量,当前集群中该 Pod 的数量与该属性指定的值不一致时,k8s 会采取一些策路去使得当前状态满足配置的要求。

如何共享容器间的 网络?

每个容器有自己独立的网络,

java(容器一) 和 mysql (容器二) 不能通过  locallost连接(相当于容器一本身)

docker 连接同一网络 或  容器间  --links (/etc/host加链接容器ip)

如何共享文件系统? 

docker  连接同一个 volume、

k8s 延伸出pod 来实现 网络、文件系统共享

pod 里面的 基础服务 pause 容器 是 多容器间实现 网络、文件系统共享的基础

控制器

在 Kubernetes 中,Pod 控制器是用于管理 Pod 生命周期的对象。它们可以确保指定数量和类型的 Pod 始终在运行。

无状态:nginx

有状态(statefulSet):mysql、redies

守护进程:日志收集

定时任务:

rc:replicationController 

动态更新 pod副本数 、v1.11后被废弃,用replicaSet替代

repilcas = 3

Kubernetes 官方建议使用 RS (Replicaset)替代RC(ReplicationController)进行部署,RS 跟 RC 没有本质的不同,只是名字不一样,井且 RS 支持集合式的 selector

rs:replicaSet

相较于 replicationController 增加了 lable 和 selector 的机制、可以更为精确对某一个 pod打标签,后期可以只对 选中标签的pod进行操作

lable :app1 、app2 ,将lable为app2的pod的副本设置为 3个 

如果你在 Pod 模板的 metadata.labels 部分定义了多个标签,
如 app=nginx、app2=gyk 和 app3=cnm,
那么 Kubernetes 将在创建每个 Pod 时都会包含这些标签。
这意味着,如果 replicas=3,
那么将会有三个 Pod,每个 Pod 
都包含 app=nginx、app2=gyk 和 app3=cnm 这三个标签在这个例子中,Deployment 将创建三个 Pod,
每个 Pod 都包含 app=nginx、app2=gyk 和 app3=cnm 这三个标签。apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment1
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxapp2: gykapp3: cnmspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80在 Kubernetes 的 Deployment 配置中,
selector.matchLabels 定义了 Deployment 
如何找到它应该管理的 Pod。selector.matchLabels 是一个标签选择器,
它会匹配所有具有指定标签的 Pod。在你的例子中,
selector.matchLabels 是 {app: nginx},
这意味着这个 Deployment 
将管理所有带有 app=nginx 标签的 Pod。在你的配置中,template.metadata.labels 
定义了由这个 Deployment 
创建的每个 Pod 的标签,
包括 app: nginx、app2: gyk 和 app3: cnm。
因为这些 Pod 都有 app=nginx 标签,
所以它们都会被这个 Deployment 管理。

deployment

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

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

相关文章

Java高阶私房菜:高并发之线程池底层原理学习

以往我们需要获取外部资源(数据源、Http请求等)时,需要对目标源创建链接对象,三次握手成功后方可正常使用,为避免持续的资源占用和可能的内存泄漏,还需要调用目标对象close方法释放资源销毁对象。这一建一销…

墨子web3实时周报

蚂蚁集团Web3研发进展与布局 国内Web3赛道的领军企业——蚂蚁集团,凭借其在前沿科技领域的深耕不辍,已在Web3技术研发疆域缔造了卓越战绩。特别是在引领行业革新的关键时刻,集团于今年四月末震撼推出了颠覆性的Web3全套解决方案,…

Vue+OpenLayers7入门专栏目录,OpenLayers7中文文档,OpenLayers7中文手册api,OpenLayers7中文教程

返回入门到实战汇总目录:汇总目录 前言 本篇作为《VueOpenLayers7入门教程》所有文章的二合一汇总目录,方便查找。 本专栏源码是由OpenLayers7.x版本结合Vue框架编写。本专栏基本上每章都有详细的源代码和运行示例以供参考,且保证每章代码都…

git远程分支强制覆盖本地分支

目录 第一章、问题1.1)报错提示:没有为分支主机或分支配置被跟踪的分支1.2)报错分析与解决 第二章、2.1)本地误删代码后想要git pull拉取覆盖:失败2.2)报错分析和解决 友情提醒: 先看文章目录,…

《设计模式之美》- 总结

《设计模式之美》- 总结 第一章 概述 1.1 为什么学习代码设计 编写高质量的代码应对复杂代码的开发程序员的基本功职业发展的必备技能 1.2 如何评价代码的质量 1.2.1 可维护性 可维护性代码的特性:代码简洁、可读性好、可扩展性好代码分层结构清晰、模块化程度…

SQLite FTS3 和 FTS4 扩展(三十二)

返回:SQLite—系列文章目录 上一篇:SQLite 的命令行 Shell(三十一) 下一篇:SQLite—系列文章目录 概述 FTS3 和 FTS4 是 SQLite 虚拟表模块,允许用户执行 对一组文档进行全文搜索。最常见(和最有效…

「51媒体」新闻媒体邀约如何进行媒体宣传(方法)

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 新闻媒体邀约进行媒体宣传是一个策略性的过程,旨在吸引媒体的注意力并促使其对特定事件、产品发布或企业活动进行报道。以下是一些关键步骤和策略: 制定媒体传播方…

人工智能论文GPT-3(2):2020.5 Language Models are Few-Shot Learners;微调;少样本Few-Shot (FS)

2 方法Approach 我们的基本预训练方法,包括模型、数据和训练,与GPT-2中描述的过程相似,只是模型规模、数据集规模和多样性,以及训练时长有所扩大,相对简单直接。 我们使用的上下文学习也与GPT-2相似,但在…

黑马鸿蒙学习5:LIST容器

LIST容器,其实就是如果FOREACH容器展示不全的话,会自动有滚动条了。要注意的是,LIST中必须有固定的listitem这个项,而且列表里面只能包含一个根组件。 必须把ROW容器放到listitem中,如下:

c++补充

构造函数、析构函数 #include <iostream> using namespace std;// 构造函数、析构函数 // --- "构造函数"类比生活中的"出厂设置" --- // --- "析构函数"类比生活中的"销毁设置" --- // 如果我们不写这两种函数&#xff0c;编译…

layui框架实战案例(27):弹出二次验证

HTML容器 <button class"layui-btn layui-btn-sm layui-btn-danger" lay-event"delete"><i class"layui-icon layui-icon-delete"></i>批量删除</button>删除封装函数 function delAll(school_id, school_name) {var lo…

开源贡献代码之​探索一下CPython

探索一下Cython 本篇文章将会围绕最近给Apache提的一个feature为背景&#xff0c;展开讲讲CPython遇到的问题&#xff0c;以及尝试自己从0写一个库出来&#xff0c;代码也已经放星球了&#xff0c;感兴趣的同学可以去下载学习。 0.背景 最近在给apache arrow提的一个feature因为…