当前位置: 首页 > news >正文

K8s:Pod初识

Pod

Pod是k8s处理的最基本单元。容器本身不会直接分配到主机上,封装为Pod对象,是由一个或多个关系紧密的容器构成。她们共享 IPC、Network、和UTS namespace

pod的特征

  • 包含多个共享IPC、Network和UTC namespace的容器,可直接通过loaclhost通信
  • 所有Pod内容器都可以访问共享的Volune可以访问共享数据
  • 无容错性;直接创建的Pod一旦被调度后跟Node绑定,即使Node挂掉也不会重新调度

创建Pod

使用yaml文件定义Pod

apiVersion: v1
kind: Pod
metadata:name: examplepod
spec:containers:- name: examplepod-containerimage: busyboximagePullPolicy: IfNotPresentcommand: ['sh', '-c']args: ['echo "Hello Kubernetes!"; sleep 3600']
  • apiVersion: 表示使用的API版本。v1表示使用k8s API的稳定版本

  • **kind:**表示要创建的资源对象,使用关键字Pod

  • **metadata:**表示该资源对象的元数据。一个资源对象可拥有多个元数据,name表示当前资源的名称

  • Spec:表示该资源对象的具体设置。containers表示容器的集合,设置容器属性

    • name:要创建的容器名称
    • image:容器的镜像地址
    • imagePullPolicy:镜像的下载策略,支持三种下载策略
      • ALways:不管镜像是否存在都会进行一次拉取
      • Nerver:不管镜像是否存在都不会进行拉取
      • IfNotPresent:只有镜像不存在时,才会进行拉取
    • command:容器的启动命令
    • args:启动参数列表

    使用kubectl创建Pod

    kubectl apply -f *.yaml
    

    apply声明式对象配置命令。-f表示用文件名作为参数,apply既便于跟踪,又具备很好的可读性

    查看pod

    kubectl get pod
    

    可以在查询命令中带上参数-w,以对Pod状态进行持续监控

    $ kubectl get pod {Pod名称} -o wide
    

    还可以在查询命令中带上-o wide参数,输出Pod的更多概要信息(如调度到哪台机器上,Pod本身的虚拟IP等信息

    $ kubectl get pod {Pod名称} -o wide
    

    可以用describe命令查看详情,格式如下。

    $ kubectl describe pods {Pod名称}
    

    如果要查询Pod本身输出的日志信息,还可以使用logs命令

    $ kubectl logs {Pod名称}
    

    Pod模板

    apiVersion: v1            #版本,必填,v1代表稳定版本
    kind: pod                 #类型,必填,Pod
    metadata:                 #元数据,表示资源的标识信息name: String            #元数据,必填,Pod的名字namespace: String       #元数据,Pod的命名空间labels:                 #元数据,标签列表- key: value          #元数据,可定义多个标签的键/值对annotations:            #元数据,自定义注解列表- key: value          #元数据,可定义多个注解的键/值对
    spec:                     #Pod中容器的详细定义,必填containers:             #Pod中的容器列表,必填,可以有多个容器- name: String          #容器名称,必填image: String         #容器中的镜像地址,必填imagePullPolicy: [Always|Never|IfNotPresent]#获取镜像的策略,Always表示下载镜像;#IfNotPresent表示优先使用本地镜像,否则下载镜像;Never表示仅使用本地镜像command: [String]     #容器的启动命令列表(不配置的话,使用镜像内部的命令)args: [String]        #启动命令参数列表workingDir: String    #容器的工作目录volumeMounts:         #挂载到容器内部的存储卷设置- name: String        #为了引用Pod定义的共享存储卷的名称,要用volumes[]部分定义的卷名mountPath: String   #存储卷在容器内挂载的绝对路径,应少于512个字符readOnly: boolean   #是否为只读模式ports:                #容器需要暴露的端口号列表- name: String        #端口名称containerPort: int  #容器要暴露的端口hostPort: int       #容器所在主机监听的端口(把容器暴露的端口映射到宿主机的端口)protocol: String    #端口协议,支持TCP和UDP,默认为TCPenv:                  #容器运行前要设置的环境变量列表- name: String        #环境变量名称value: String       #环境变量值resources:            #资源限制和请求的设置limits:             #资源限制的设置cpu: String       #CPU的限制,单位为CPU内核数。将用于docker run --cpu-quota 参数,#也可以使用小数,例如0.1,0.1等价于表达式100m,表示100milicpumemory: String    #内存限制,单位可以为MiB/GiB/MB/GB(1MiB=1024×1024B,#1MB=1000×1000B),将用于docker run --memory参数requests:           #资源请求的设置cpu: String       #CPU请求,容器启动时的初始可用数量,将用于docker run --cpu-shares参数memory: String    #内存请求,容器启动时的初始可用数量livenessProbe:        #Pod内容器健康检查的设置,当探测几次无响应后将自动重启该容器,#检查方法有exec、httpGet和tcpSocket,对一个容器只要设置一种方法即可exec:               #通过exec方式来检查Pod内各容器的健康状况command: [String] #exec方式需要指定的命令或脚本httpGet:            #通过httpGet方式来检查Pod中各容器的健康状况,需要指定path、portpath: Stringport: numberhost: Stringscheme: StringhttpHeaders:- name: Stringvalue: String tcpSocket:             #通过tcpSocket检查Pod中各容器的健康状况port: numberinitialDelaySeconds: 0 #容器启动完成后,首次探测的时间(单位为秒)timeoutSeconds: 0      #对容器进行健康检查时探测等待响应的超时时间(单位为秒,默认为1s)periodSeconds: 0       #对容器监控检查的定期探测时间设置(单位为秒),默认10s一次successThreshold: 0failureThreshold: 0securityContext:       #安全配置privileged: falserestartPolicy: [Always|Never|OnFailure]#Pod的重启策略,Always表示不管以何种方式终止#运行,kubelet都将重启;OnFailure表示只有Pod以非0码退出才重启;Never表示不再重启该PodnodeSelector: object     #节点选择,设置nodeSelector表示将该Pod调度到包含这个标签的#节点上,以key:value格式来指定imagePullSecrets:        #拉取镜像时使用的secret名称,以key:secretkey格式指定- name: StringhostNetwork: false       #是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络volumes:                   #在该Pod上定义共享存储卷列表- name: String             #共享存储卷名称emptyDir: {}             #类型为emptyDir的存储卷,与Pod有相同生命周期的一个临时目录,为空值hostPath:                #类型为hostPath的存储卷,将会挂载Pod所在宿主机的目录path: string           #Pod所在宿主机的目录,该目录将在容器中挂载secret:                  #类型为secret的存储卷,在容器内部挂载集群中预定义的secret对象secretName: Stringitems:- key: Stringpath: StringconfigMap:               #类型为configMap的存储卷,挂载预定义的configMap对象到容器内部name: Stringitems:- key: Stringpath: String 
    ``
    

相关文章:

K8s:Pod初识

Pod Pod是k8s处理的最基本单元。容器本身不会直接分配到主机上,封装为Pod对象,是由一个或多个关系紧密的容器构成。她们共享 IPC、Network、和UTS namespace pod的特征 包含多个共享IPC、Network和UTC namespace的容器,可直接通过loaclhos…...

HCIP-Datacom-ARST自选题库__MAC【14道题】

一、单选题 1.缺省情况下,以下哪种安全MAC地址类型在设备重启后表项会丢失? 黑洞MAC地址 Sticky MAC地址 安全动态MAC地址 安全静态MAC地址 2.华为交换机MAC地址表中的动态sticky MAC地址的默认老化时间是多少秒? 300 不会老化 400 500 3.华为交换机MA…...

Go基础编程 - 03 - init函数、main函数、_(下划线)

目录 1. init 函数2. main 函数3. init 函数与 main 函数异同4. _ (下划线)示例 1. init 函数 Go语言中,init 函数用于包(package)的初始化。具有以下特征: 1. init 函数用于程序执行前包的初始化,如初始化变量等。2…...

【TensorFlow深度学习】LeNet-5卷积神经网络实战分析

LeNet-5卷积神经网络实战分析 LeNet-5卷积神经网络实战分析:从经典模型到现代实践LeNet-5的历史背景LeNet-5网络架构实战代码解析实战分析结论 LeNet-5卷积神经网络实战分析:从经典模型到现代实践 在深度学习的历程中,LeNet-5无疑是一座里程…...

错误发生在尝试创建一个基于有限元方法的功能空间时

问题&#xff1a; index cell.index(#直接使用从0开始的索引if0<1ndex<10: #正集流体 subdomains_x[cell,index(] 1 fem1 /usr/bin/python3.8 /home/wy/PycharmProjects/pythonProject2/fem1.pyUnknown ufl object type FiniteElementTraceback (aost recent call last)…...

【八股】Hibernate和JPA:理解它们的关系

在Java开发中&#xff0c;持久化框架是至关重要的工具&#xff0c;它们帮助开发者将Java对象与关系数据库中的数据进行映射和管理。Hibernate和JPA&#xff08;Java Persistence API&#xff09;是两个广泛使用的持久化框架。那么&#xff0c;Hibernate和JPA之间到底是什么关系…...

C++类型参数技术以及常见的类型擦除容器

文章目录 一、类型擦除的作用二、常见的类型擦除容器1.std::any2.std::function3.std::shared_ptr\<void\>和 std::unique_ptr\<void\>4.总结 三、实现一个any参考 类型擦除&#xff08;Type Erasure&#xff09;是一种编程技术&#xff0c;通过它可以在运行时存储…...

SpringBoot如何缓存方法返回值?

Why&#xff1f; 为什么要对方法的返回值进行缓存呢&#xff1f; 简单来说是为了提升后端程序的性能和提高前端程序的访问速度。减小对db和后端应用程序的压力。 一般而言&#xff0c;缓存的内容都是不经常变化的&#xff0c;或者轻微变化对于前端应用程序是可以容忍的。 否…...

C#的web项目ASP.NET

添加实体类和控制器类 using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace WebApplication1.Models {public class Company{public string companyCode { get; set; }public string companyName { get; set; }public string com…...

Spring MVC 源码分析之 DispatcherServlet#getHandlerAdapter 方法

前言&#xff1a; 前面我们分析了 Spring MVC 的工作流程源码&#xff0c;其核心是 DispatcherServlet#doDispatch 方法&#xff0c;我们前面分析了获取 Handler 的方法 DispatcherServlet#getHandler 方法&#xff0c;本篇我们重点分析一下获取当前请求的适配器 HandlerAdapt…...

假设检验学习笔记

1. 假设检验的基本概念 1.1. 原假设&#xff08;零假设&#xff09; 对总体的分布所作的假设用表示&#xff0c;并称为原假设或零假设 在总体分布类型已知的情况下&#xff0c;仅仅涉及总体分布中未知参数的统计假设&#xff0c;称为参数假设 在总体分布类型未知的情况下&#…...

vue3 watch学习

watch的侦听数据源类型 watch的第一个参数为侦听数据源&#xff0c;有4种"数据源"&#xff1a; ref&#xff08;包括计算属性&#xff09; reactive(响应式对象) getter函数 多个数据源组成的数组。 //ref const xref(0)//单个ref watch(x,(newX)>{console.…...

推荐的Pytest插件

推荐的Pytest插件 Pytest的插件生态系统非常丰富&#xff0c;以下是一些特别推荐的Pytest插件&#xff1a; pytest-sugar 这个插件改进了Pytest的默认输出&#xff0c;添加了进度条&#xff0c;并立即显示失败的测试。它不需要额外配置&#xff0c;只需安装即可享受更漂亮、更…...

C语言 | Leetcode C语言题解之第124题二叉树中的最大路径和

题目&#xff1a; 题解&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ int max; int dfs(struct TreeNode* root){if(!root) return 0;int left dfs(root->left…...

Linux综合实践(Ubuntu)

目录 一、配置任务 1.1 配置该服务器的软件源为中科大软件源 1.2 安装相关软件openssh-server和vim 1.3 设置双网卡&#xff0c;网卡1为NAT模式&#xff0c;网卡2为桥接模式(桥接模式下&#xff0c;使用静态ip&#xff0c;该网卡数据跟实验室主机网络设置相似&#xff0c;除…...

C++面试题其二

19. STL中unordered_map和map的区别 unordered_map 和 map 都是C标准库中的关联容器&#xff0c;但它们在实现和性能方面有显著区别&#xff1a; 底层实现&#xff1a;map 是基于红黑树实现的有序关联容器&#xff0c;而 unordered_map 是基于哈希表实现的无序关联容器。元素…...

系统架构设计师【第9章】: 软件可靠性基础知识 (核心总结)

文章目录 9.1 软件可靠性基本概念9.1.1 软件可靠性定义9.1.2 软件可靠性的定量描述9.1.3 可靠性目标9.1.4 可靠性测试的意义9.1.5 广义的可靠性测试与狭义的可靠性测试 9.2 软件可靠性建模9.2.1 影响软件可靠性的因素9.2.2 软件可靠性的建模方法9.2.3 软件的可靠性模…...

x264 参考帧管理原理:i_poc_type 变量

x264 参考帧管理 x264 是一个开源的 H.264 视频编码软件,它提供了许多高级特性,包括对参考帧的高效管理。参考帧管理是视频编码中的一个重要部分,它涉及到如何存储、更新和使用已经编码的帧以提高编码效率。 x264 参考帧管理的一些关键点总结如下: 参考帧的初始化和重排序:…...

高级Web Lab2

高级Web Lab2 12 1 按照“Lab 2 基础学习文档”文档完成实验步骤 实验截图&#xff1a; 2 添加了Web3D场景选择按钮&#xff0c;可以选择目标课程或者学习房间。...

Linux网络-使用Tcp协议进行网络通信并通过网络接口实现远端翻译

文章目录 Tcp协议Tcp协议常见API接口1. int socket(int domain, int type, int protocol);2. int bind(int socket, const struct sockaddr *address, socklen_t address_len);struct sockaddr 3. int listen(int socket, int backlog);4. int accept(int socket, struct socka…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...