一.Pod定义

  • 最小部署单元
  • 一组容器集合
  • 一个pod中的容器共享网络命名空间
  • Pod是短暂的

二.Pod容器分类

  • 基础容器

    维护整个Pod的网络命名空间

  • 初始化容器

    先于业务容器开始执行,在应用启动之前进行初始化操作

  • 业务容器

    并行启动

三.镜像拉取策略(imagePullPolicy)

  • IfNotPresent:(建议)表示如果本地有该镜像,则使用本地的镜像,本地不存在时下载镜像。
  • Always: 默认值,表示每次都重新下载该镜像。
  • Never: 表示仅使用本地镜像

     认证镜像拉取(例如k8s拉取harbor镜像仓库):

创建secret 认证:

# kubectl create secret docker-registry harborkey --docker-username=xubaolong --docker-password=xbl --docker-email=admin@126.com --docker-server="192.168.1.156"

引用认证:

   sepc.imagePullSecrets:harborkey

四.资源限制

  Pod和Container的资源请求和限制:

  • spec.containers[].resources.limits.cpu :

    CPU限制,单位core数,将用于docker run --cpu-shares参数

  • spec.containers[].resources.limits.memory

    内存限制,单位可以为MiB/GiB等,将用于docker run --memory参数

  • spec.containers[].resources.requests.cpu

    CPU请求,单位core数,容器启动的初始可用数量

  • spec.containers[].resources.requests.memory

    内存请求, 单位可以为MiB/GiB等,容器启动的初始可用数量

五.重启策略(restartPolicy)

  • Always:当容器终止退出后,总是重启容器,默认策略。
  • OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
  • Never:当容器终止退出,从不重启容器。

六.健康检查(Probe)

  Probe有以下两种类型:

  • livenessProbe

          如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。

  • readinessProbe

          如果检查失败,Kubernetes会把Pod从service endpoints中剔除。

  Probe支持以下三种检查方法:

  • httpGet

          发送HTTP请求,返回200-400范围状态码为成功。

  • exec

          执行Shell命令返回状态码是0为成功。

  • tcpSocket

          发起TCP Socket建立成功。

七. 调度约束

  • nodeName用于将Pod调度到指定的Node名称上
  • nodeSelector用于将Pod调度到匹配Label的Node上 

八. 故障排查

描述

Pending

Pod创建已经提交到Kubernetes。但是,因为某种原因而不能顺利创建。例如下 载镜像慢,调度不成功。

Running

Pod已经绑定到一个节点,并且已经创建了所有容器。至少有一个容器正在运行 中,或正在启动或重新启动。

Succeeded

Pod中的所有容器都已成功终止,不会重新启动。

Failed

Pod的所有容器均已终止,且至少有一个容器已在故障中终止。也就是说,容器 要么以非零状态退出,要么被系统终止。

Unknown

由于某种原因apiserver无法获得Pod的状态,通常是由于Master与Pod所在主机 kubelet通信时出错。

kubectl describe TYPE/NAME
kubectl logs TYPE/NAME [-c CONTAINER]
kubectl exec POD [-c CONTAINER] -- COMMAND [args...]

kubernetes实践之三:深入理解Pod对象的更多相关文章

  1. kubernetes-深入理解pod对象(七)

    Pod中如何管理多个容器 Pod中可以同时运行多个进程(作为容器运行)协同工作.同一个Pod中的容器会自动的分配到同一个 node 上.同一个Pod中的容器共享资源.网络环境和依赖,它们总是被同时调度 ...

  2. 第6章:深入理解Pod对象

    Pod是最小的部署单元,也是后面经常配置的地方,本章节带你熟悉Pod中常见资源配置及参数. 也就是YAML这部分: ... template: metadata: labels: app: web s ...

  3. Kubernetes — 深入解析Pod对象:基本概念(二)

    作为 Kubernetes 项目里最核心的编排对象,Pod 携带的信息非常丰富.其中,资源定义(比如 CPU.内存等),以及调度相关的字段.在本篇,我们就先从一种特殊的 Volume 开始,来帮助你更 ...

  4. [Kubernetes]深入解析Pod对象

    k8s集群搭建是比较容易的,但是我们为什么要搭建,里面涉及到的内容,我们为什么需要? 这篇文章就尝试来讲讲,我们为什么需要一个Pod,对Pod对象来一个深入解析. 我们为什么需要Pod 我们先来谈一个 ...

  5. Kubernetes — 深入解析Pod对象:基本概念(一)

    在上一篇文章中,我详细介绍了 Pod 这个 Kubernetes 项目中最重要的概念. 现在,你已经非常清楚:Pod,而不是容器,才是 Kubernetes 项目中的最小编排单位.将这个设计落实到 A ...

  6. 14. 深入解析Pod对象(一)

    14. 深入解析Pod对象(一) """ 通过前面的讲解,大家应该都知道: Pod,而不是容器,它是 Kubernetes 项目中的最小编排单位.将这个设计落实到 API ...

  7. 15. 深入解析Pod对象(二):使用进阶

    15. 深入解析Pod对象(二):使用进阶 15.1 Projected Volume,投射数据卷 备注:Projected Volume 是 Kubernetes v1.11 之后的新特性 在 Ku ...

  8. 第4 章 : 理解 Pod 和容器设计模式

    理解Pod和容器设计模式 本文整理自 CNCF 和阿里巴巴联合举办的云原生技术公开课的课时 4:理解 Pod 和容器设计模式.本次课程中,阿阿里巴巴高级技术专家.CNCF 官方大使张磊为大家介绍了为什 ...

  9. Kubernetes家族容器小管家Pod在线答疑?

    Kubernetes家族容器小管家Pod在线答疑 不知道学习k8s的小伙伴们有没有跟我一样的疑问? k8s为什么不是直接运行容器,而是让Pod介入? Pod又是什么?为什么在应用容器化如此普遍的情况下 ...

随机推荐

  1. Java面试官最常问的volatile关键字

    在Java相关的职位面试中,很多Java面试官都喜欢考察应聘者对Java并发的了解程度,以volatile关键字为切入点,往往会问到底,Java内存模型(JMM)和Java并发编程的一些特点都会被牵扯 ...

  2. Python_mongoDB

    ''' MogoDB数据库可以到官方网站https://www.mongodb.org/downloads下载,安装之后打开命令提示符环境并切换到MongoDB安装目录总的 server\3.2\bi ...

  3. Python_struct模块操作二进制文件

    ''' 使用struct模块写入二进制文件 ''' import struct n=130000000 x=96.45 b=True s='a1@中国' sn=struct.pack('if?',n, ...

  4. Http Header信息

    REMOTE_ADDR – 访问客户端的 IP 地址 HTTP_VIA – 如果有该条信息, 就证明您使用了代理服务器,代理服务器的地址就是后面的数值. HTTP_X_FORWARDED_FOR – ...

  5. spring 切入点表达式

    spring表达式有多种的指示符,如: 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: exe ...

  6. 2018-05-17-OAA-一种mermaid脚本驱动的软件项目模块图形化表述思路

    layout: post title: 2018-05-17-OAA-一种mermaid脚本驱动的软件项目模块图形化表述思路 key: 20180517 tags: OAA flow chart se ...

  7. 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装

    在asp.net项目中,添加一个[一般处理程序]来处理请求是很自然的事,这样会得到一个实现自IHttpHandler的类,然后只需在ProcessRequest方法中写上处理逻辑就行了.但是这样的一个 ...

  8. LeetCode Javascript实现 283. Move Zeroes 349. Intersection of Two Arrays 237. Delete Node in a Linked List

    283. Move Zeroes var moveZeroes = function(nums) { var num1=0,num2=1; while(num1!=num2){ nums.forEac ...

  9. 浅谈前端中的mvvm与mvc

    用了vue这么久,却没有认真的关注mvvm与mvc,着实汗颜.趁着周末刚好看了一下网上的文章还有书籍,简单的谈一下我的理解. -以下图片均摘自网络. 一.MVC 特点:单项通讯 视图(View):用户 ...

  10. windows server 2012 R2汉化 -- 玩转Microsoft Azure

    Microsoft Azure 试用版小试牛刀 首先需要申请一个账号获得试用权 我这里是1元免费试用, 进入后就可以创建自己的虚拟机及数据库 在这里先说创建的windows server 2012 R ...