k8s中pod的创建过程和阶段状态
管理k8s集群
kubectl
k8s中有两种用户
一种是登录的
一种是/sbin/nologin
linux可以用密码登录,也可以用证书登录
k8s只能用证书登录
谁拿到这个证书,谁就可以管理集群
在k8s中,所有节点都被网络组件calico设置了路由和通信
所以pod的ip是可以被主机访问到的
比如能ping 通
如果pod运行的是web服务
也可以直接curl pod_ip访问到web服务
k8s集群对容器的管理和使用方式:
pod在系统进程中,是一个多进程的聚合单位
一个容器,一个服务,就是一个进程
同一个pod共享网络和卷
pod的创建过程:
用户向apiserver发送指令,
apiserver会把指令的信息记录在数据库etcd中
pod的创建过程是一个异步创建,
scheduler通过watch机制,
发现集群中创建出来,但尚未被调度的pod
由scheduler决定这个pod运行在哪个节点上
scheduler作为集群中的调度器,会选择合适的节点
让这个pod进行运行
选择好节点之后
会把这个数据同步给apiserver
并且会记录在etcd数据库中
这个调度的过程叫做绑定。
第一个过程,是用户的指令过程
第二个过程,是pod的调度过程
这两个过程是分开执行的
这两个过程结束之后,pod还是没有被创建。
之前这两个过程都是在管理控制节点master上运行的
在master上执行完调度绑定之后,
就该到计算节点了。
被绑定的计算节点的kubelet通过watch机制,发现集群中
被绑定到这个节点上,但尚未被创建的pod
kubelet自己不会创建容器,
kubelet会去找runtime软件,比如containerd
runtime软件负责
按照kubelet的要求把pod创建出来
创建完之后
把结果反馈给kubelet
kubelet把结果反馈给apiserver
最终把结果写入到数据库中。
pod的创建,总共三个过程
第一个是与用户交互的过程
第二个是调度的过程
第三个是创建的过程
所以kubectl get 命令的查询
并不是去实际节点进行查询
而是查询etcd数据库中pod的状态。
至于pod的实际状态
是由kubelet更新进数据库的。
pod在创建过程中,会经历不同的状态
第一个是pending,是一个等待调度的过程
第二个是scheduler进行调度,调度之后,
pod会进入一个中间状态,叫createcontainer
第三个是runnning和failed其中的一种,就是创建失败还是成功了
如果未成功创建,pod隔一段时间还会重试,重新运行
尝试让pod成功运行
任务执行成功之后,会进入completed状态
这是pod的各种状态和相位。
failed是非0退出码
unknown 无法获取pod的状态,大多数是由于网络不通了或者被防火墙屏蔽了
了解这些,有助于pod的管理和排错。
-----------------------------------------------------------------------------------
namespace也是一种api资源
kube-system是系统名称空间
events是在describe里面,主要用途是排错
get看外观
describe看pod
logs看容器
排错三兄弟比装系统还重要
]# kubectl exec -it myweb -- ls
# 其中"--" 是选项终止符,这个不是k8s里面的东西,是shell的东西
]# ls --help | grep --time
# 这个里面"--time"没有被当成grep的参数,而被当成grep的选项了
]# ls --help | grep -- --time
# 加上选项终止符"--" , 就是告诉grep,后面的内容不是选项了,是参数
]# kubectl exec -it myweb -- ls
index.html info.php
]# kubectl exec -it myweb ls
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
index.html info.php
# k8s也告诉管理员了,pod后面要加命令,就用 -- [COMMAND]
“--”选项终止符的作用是,解决复杂命令之间选项和参数分割的问题。
pod会监控自己的容器
如果容器故障了,会自动restart容器
控制器可以跨节点搬运服务,如果有节点故障了
控制器自动把服务搬到其他节点上运行
exec主要用于在容器内运行命令
有时候通过看日志还搞不定了,就得进容器里面看
cp 把文件和目录拷贝进容器,也可以从容器中拷贝到宿主机
]# kubectl cp myweb:/var/www ./www
tar: Removing leading `/' from member names
docker的cp是本机复制
k8s的cp是跨主机复制
k8s是把要拷贝的数据先条带化打包,tar包是个条带化数据,按照条带化的方式
把数据发过来,发过来的东西就是个tar包,在本地做了一个解包的操作
所以k8s的cp是靠tar实现的
cp还有一个功能是重定向,
]# tar -cf - www
# 这里面的"-" 代表标准输入和标准输出
]# tar -cf - www |gzip >a.tar.gz
重定向可以实现跨主机重定向
可以在A机器重定向到B机器。
相关文章:

k8s中pod的创建过程和阶段状态
管理k8s集群 kubectl k8s中有两种用户 一种是登录的 一种是/sbin/nologin linux可以用密码登录,也可以用证书登录 k8s只能用证书登录 谁拿到这个证书,谁就可以管理集群 在k8s中,所有节点都被网络组件calico设置了路由和通信 所以pod的ip是可以…...

NSSCTF刷题篇1
js类型 [SWPUCTF 2022 新生赛]js_sign 这是一道js信息泄露的题目直接查看源码,有一个main.js文件点击之后,有一串数字和一段base64编码,解开base64编码得到这个编码为敲击码 解码在线网站:Tap Code - 许愿星 (wishingstarmoye.…...

[数据集][目标检测]棉花叶子病害检测数据集VOC+YOLO格式977张22类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):977 标注数量(xml文件个数):977 标注数量(txt文件个数):977 标注类别…...

产品经理面试整理-常见面试问题
以下是一些常见的产品经理面试问题及其解答思路。这些问题涵盖了产品管理的各个方面,包括战略、执行、数据分析、用户体验、跨团队合作等。在准备这些问题时,使用结构化的回答方式(如STAR法)能够帮助你更好地表达你的观点和经验。 1. 常见产品经理面试问题 1.1 你如何定义用…...

数据库(选择题)
基本概念 数据库(DB):长期存储在计算机内的、有组织的、可共享的数据集合。 数据库管理系统(DBMS):它是数据库的机构,是一个系统软件,负责数据库中的数据组织、数据操纵、数据维护…...

粒子向上持续瀑布动画效果(直接粘贴到记事本改html即可)
代码: 根据个人喜好修改即可 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>宽粒子向上…...

卷积神经网络(CNN):深度学习中的视觉奇迹
目录 一、什么是卷积神经网络? 二、CNN的核心组件 1. 卷积层(Convolutional Layer) 2. 激活函数(Activation Function) 3. 池化层(Pooling Layer) 4. 全连接层(Fully Connected…...

Vue:加载本地视频
目录 封装视频弹框调用视频组件 封装视频弹框 <template><el-dialog class"videoBox" :title"title" :visible.sync"visible" width"40%" :before-close"handleOnClose" :close-on-click-modal"false" …...

论文阅读:A Generalization of Transformer Networks to Graphs
论文阅读:A Generalization of Transformer Networks to Graphs 论文地址1 摘要2 贡献Graph TransformerOn Graph Sparsity(图稀疏)On Positional Encodings(位置编码)3 Graph Transformer Architecture(架…...

中国计量大学《2022年801+2022年819自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《25届中国计量大学801819自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2022年801真题 2022年819真题 Part1:2022年完整版真题 2022年801…...

创客匠人运营课堂|增强用户的参与度和忠诚度,这一个工具就能实现!
活动投票是通过营销活动来提升用户粘性及平台裂变效果的工具。可以让活动得到更好的传播,平台品牌得到更大的曝光。 使用场景 活动投票是一种互动营销手段,适用于各种活动场景,具有增强用户的参与度和忠诚度,提高活动的透明度和公…...

k8s 微服务 ingress-nginx 金丝雀发布
目录 一 什么是微服务 二 微服务的类型 三 ipvs模式 3.1 ipvs模式配置方式 四 微服务类型详解 4.1 clusterip 4.2 ClusterIP中的特殊模式headless 4.3 nodeport 4.4 loadbalancer 4.5 metalLB 4.6 externalname 五 Ingress-nginx 5.1 ingress-nginx功能 5.2 部署…...

Elasticsearch不停机切换(上云)方案
如何给飞行中的飞机换引擎? 背景 业务背景 略 技术背景 线下集群40个索引左右,总数据量不大,不到100G因为ES承担的业务鉴权业务,所以不能接受停机割接 还有就是ES中数据来自各个业务方,推送的时机不定,也没有完备的重推机制&…...

归纳一下Invoke,beginInvoke,还有InvokeRequire
1.在WinForms中的Invoke和BeginInvoke WinForms是一个单线程的UI框架。在多线程的环境下操作UI控件时。需要使用Invoke和BeginInvoke跨线程调起UI线程 这两的区别如下Invoke:同步调用,当前代码不在UI线程上执行时,会卡住当前线程࿰…...

Prompt最佳实践|指定输出的长度
在OpenAI的官方文档中已经提供了[Prompt Enginerring]的最佳实践,目的就是帮助用户更好的使用ChatGPT 编写优秀的提示词我一共总结了9个分类,本文讲解第6个分类:指定输出长度 提供更多的细节要求模型扮演角色使用分隔符指定任务步骤提供样例…...

离散制造 vs 流程制造:锚定精准制造未来,从装配线到化学反应,实时数据集成在制造业案例中的多维应用
使用 TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量替代 OGG, Kettle 等同步工具,以及基于 Kafka 的 ETL 解决方案,「CDC 流处理 数据集成」组合拳,加速仓内数据流转,帮助企业…...

教你一招:在微信小程序中为用户上传的图片添加时间水印
在微信小程序开发过程中,我们常常需要在图片上添加水印,以保护版权或增加个性化元素。本文将为大家介绍如何在微信小程序中为图片添加时间水印,让你的小程序更具特色。 实现步骤: 1. 创建页面结构 在pages目录下创建一个名为upl…...

MySQL --基本查询(上)
文章目录 1.Create1.1单行数据全列插入1.2多行数据指定列插入1.3插入否则更新1.4替换 2.Retrieve2.1 select列2.1.1全列查询2.1.2指定列查询2.1.3查询字段为表达式2.1.4 为查询结果指定别名2.1.5结果去重 2.2where 条件2.2.1英语不及格的同学及英语成绩 ( < 60 )2.2.2语文成…...

mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(19)
1、SQL 删除数据(DELETE 语句) 在SQL中,TRUNCATE TABLE 语句用于删除表中的所有行,但不删除表本身。这个操作通常比使用 DELETE 语句删除所有行要快,因为它不记录每一行的删除操作到事务日志中,而是直接重…...

RoguelikeGenerator Pro - Procedural Level Generator
这是怎么一回事? Roguelike Generator Pro:简单与力量的结合。使用GameObjects、Tilemaps或自定义解决方案轻松制作3D/2D/2.5D关卡。享受内置功能,如碰撞处理、高度变化、基本控制器和子随机化器,所有这些都由Drunkard Wlak程序生成算法提供支持。 我该如何使用它? 简单:…...

反病毒技术和反病毒软件(网络安全小知识)
一、反病毒技术的难点 病毒变异与多态性:病毒开发者不断利用新技术和漏洞,创造出新的病毒变种和多态病毒。这些病毒能够自我变异,从而避开传统的基于特征码的检测方法,使得反病毒软件难以识别和清除。 未知病毒检测:在…...

位图与布隆过滤器
引例 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 思路1:排序二分查找 思路2:哈希或红黑树 因为40亿个整数要占用16GB 102410241024Byte 约等于10亿Byte1GB 40亿*4Byte 16G…...

【题解】—— LeetCode一周小结38
🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结37 16.公交站间的距离 题目链接:1184. 公交站间的距…...

EvilScience靶机详解
主机发现 arp-scan -l 得到靶机ip 192.168.229.152 端口扫描 nmap -sV -A -T4 192.168.1.20 这段代码使用 nmap 命令来扫描目标主机 192.168.1.20,并执行以下操作:-sV:探测开放的端口,以确定服务/版本信息。-A:启…...

算法练习题24——leetcode3296移山所需的最小秒数(二分模拟)
【题目描述】 【代码示例(java)】 class Solution {// 计算让工人们将山的高度降到0所需的最少时间public long minNumberOfSeconds(int mountainHeight, int[] workerTimes) {long left 0; // 最少时间初始为0long right 0; // 最大时间初始化为0// …...

excel 单元格一直显示年月日
excel 单元格一直显示年月日,在单元格上右键选择单元格格式,选择日期时单元格会显示成日期格式...

【线程】线程的控制
本文重点:理解线程控制的接口 前言 内核中是没有很明确线程的概念的,只有轻量级进程的概念,不会提供直接给我们线程的系统调用,而会给我们提供轻量级进程的系统调用。我们用户是需要线程的接口的,在应用层࿰…...

掌握 Spring:从新手到高手的常见问题汇总
一提起Spring,总感觉有太多知识,无法详尽,有些基础理解就先不说了,相信大家都已经用过Spring了 下面简单针对常见Spring面试题做些回答 核心特性 IOC容器spring事件资源管理国际化校验数据绑定类型转换spirng表达式面向切面编程……...

机器学习——Bagging
Bagging: 方法:集成n个base learner模型,每个模型都对原始数据集进行有放回的随机采样获得随机数据集,然后并行训练。 回归问题:n个base模型进行预测,将得到的预测值取平均得到最终结果。 分类问题…...

日志体系结构与框架:历史、实现与如何在 Spring Cloud 中使用日志体系
文章目录 1. 引言2. 日志体系结构3. 日志框架的发展历程日志框架特点对比 4. 日志记录器的使用与管理使用 SLF4J 和 Logback 的日志记录示例 5. Spring Cloud 中的日志使用5.1 日志框架集成5.2 分布式追踪:Spring Cloud Sleuth 和 Zipkin添加 Sleuth 和 Zipkin 依赖…...