什么是Pod?

   Pod 是一组紧密关联的容器集合,它由一组、一个或多个容器组成,每个Pod还包含了一个Pause容器,Pause容器是Pod的父容器,主要负责僵尸进程的回收管理,通过Pause容器可以使同一个Pod里面的 多个容器共享存储、网络、PID、IPC等。
  定义一个Pod
   [root@k8s-master01 ~]# vim nginx1.yaml
   apiVersion: v1   # Api的版本号
   kind: Pod        # 定义类型
   metadata:        # 元数据
     name: nginx    # pod名称,命名规范需符合RFC 1035规范
     labels:        # 自定义标签
       app: nginx
   spec:            # 定义容器的详细信息
     containers:    # 容器列表
     - name: nginx  # 容器名称,需符合RFC 1035规范
       image: nginx # 容器所用镜像
       ports:       # 容器要暴露的端口号列表
       - containerPort: 80  端口号
   [root@k8s-master01 ~]# kubectl create -f nginx1.yaml    #创建pod
  

kubectl get pod nginx -o yaml

   #以yaml格式显示pod的详细信息

kubectl get pod --show-labels

   #根据yaml文件里定义的标签筛选出符合条件的pod

kubectl get rc,service

#查看rc和service列表

kubectl describe node k8s-master

  #显示node的详细信息

kubectl describe pod nginx

#显示pod的详细信息

kubectl delete -f nginx1.yaml

#使用删除yaml文件的方式删除pod

kubectl delete pod --all

  #删除所有pod

   #进入某个容器

#查看容器日志

#实时查看容器日志,想当于tail -f命令退出ctrl+c

#打开了一个新的yaml文件,在线修改,修改完退出即更新

  #将容器80端口映射本地521端口

#查看命名空间,默认创建的pod都在default下,也可创建新的命名空间。

  #删除命名空间biubiubiu

Pod生命周期跟Pod重启策略

     #pod整个生命周期中的各种状态

  pod的重启策略

变量Phase的取值还取决于结构体PodSpec中的RestartPolicy变量,这个RestartPolicy变量是用来设置Pod中容器重启策略的,包括三个可选值,分别是Always、OnFailure和Never。

Always:当容器失效时,由kubelet自动重启容器。

OnFailure:当容器终止运行或以不正常情况退出(退出码非0),由kubelet自动重启该容器。

Never:不对容器设置重启策略。

Pod探针

  startupProbe:

k8s1.16版本后新加的探测方式,用于判断容器内应用程序是否已经启动,如果配置了startupProbe就会先禁止其他的探测,直到它成功为止,成功后将不在进行探测。

LivenessProbe:

用于探测容器是否运行,如果探测失败,kubelet会根据配置的重启策略进行相应的处理。若没有配置该探针,默认就是success。

存活性探测。判断pod是否需要重启。

ReadinessProbe:一般用于探测容器内的程序是否健康,它的返回值如果为success,那么就代表这个容器已经完成启动,并且程序已经是

可以接受流量的状态。

   就绪性探测。判断pod是否能够提供正常服务。

  Pod的探测方式

  ExecAction

在容器内执行一个命令,如果返回值为0,则认为容器健康。

TcpSocketAction

通过TCP连接检查容器内的端口是否是通的,如果是通的就认为容器健康。

HttpGetAction

通过应该程序暴露的API地址来检查程序是否是正常的,如果状态码为200-400之间,则认为容器健康。

Pod退出流程

用户执行删除操作    kubectl delete pod nginx

pod状态会变成Terminating状态(这种状态停留默认时间为30秒)

在30秒期间,会从Endpoint中删除该pod的IP地址,最后执行yaml文件中Prestop命令。

 

k8s之pod讲解的更多相关文章

  1. K8s的POD连接数据库时报错

    [root@cccc xxxx]# ./showlog.sh dr iff-dr-1128668949-lb90g 2017-09-29 03:21:57,575 INFO [org.wildfly. ...

  2. k8s之pod与Pod控制器

    k8s中最为重要的基础资源,pod,pod controller,service pod controller类型有多种需要向控制器赋值之后使用: kubectl命令使用 kubectk get no ...

  3. 为什么k8s引入pod概念?

    为什么k8s引入pod概念? 1.可管理性 有些容器天生需要紧密关联,以pod为最小单位进行调度 扩展 共享资源 管理生命周期 例如: 一个容器写日志,一个容器读取日志进行相关内容的展示 2.通信和资 ...

  4. k8s家族Pod辅助小能手Init容器认知答疑?

    k8s家族Pod辅助小能手Init容器认知答疑? k8s集群Init 容器是一种特殊容器,职责是在Pod的生命周期中作为应用容器的前置启动容器. 在很多应用场景中,在 Pod 内的应用容器正式启动之前 ...

  5. k8s 中 Pod 的控制器

    k8s 中 Pod 的控制器 前言 Replication Controller ReplicaSet Deployment 更新 Deployment 回滚 deployment StatefulS ...

  6. k8s之pod连接被拒排查

    k8s之pod连接被拒排查 pod链接被拒 查看pod的时候发现pod的状态为crashloopbackoff 然后看看日志发现报错如下 kubectl -n kf10 logs easydata-r ...

  7. 13.深入k8s:Pod 水平自动扩缩HPA及其源码分析

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 Pod 水平自动扩缩 Pod 水平自动扩缩工作原理 Pod 水平自动 ...

  8. k8s创建pod流程

    kubernetes 创建Pod 的 工作流: step.1 kubectl 向 k8s api server 发起一个create pod 请求(即我们使用Kubectl敲一个create pod命 ...

  9. K8s创建pod yaml文件详解

    kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...

随机推荐

  1. 《剑指offer》刷题目录

    <剑指offer>刷题目录 面试题03. 数组中重复的数字 面试题04. 二维数组中的查找 面试题05. 替换空格 面试题06. 从尾到头打印链表 面试题07. 重建二叉树 面试题09. ...

  2. 《剑指offer》面试题68 - II. 二叉树的最近公共祖先

    问题描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q ...

  3. 【pwn】攻防世界 pwn新手区wp

    [pwn]攻防世界 pwn新手区wp 前言 这几天恶补pwn的各种知识点,然后看了看攻防世界的pwn新手区没有堆题(堆才刚刚开始看),所以就花了一晚上的时间把新手区的10题给写完了. 1.get_sh ...

  4. Java常见对象内存分析

    首先要明确Java内存的个位置上放的是啥 类.对象.实例三者的关系: 1.类:是对象的模板,可以实例化对象.(this不能出现在静态方法中) 2.对象:类的个体. 3.实例:实现的对象. 4.对应的引 ...

  5. Nginx请求连接限制

    目录 Nginx的请求限制 HTTP协议的连接与请求 连接限制 配置示例 做个演示: 请求限制 配置示例 基本指令 limit_req_zone limit_req zone 做个演示: Nginx的 ...

  6. linux中uniq命令全面解析

    目录 一 :uniq作用 二:uniq格式 1.参数 2.参数案例解析: linuxuniq简介 Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用. u ...

  7. 推荐召回--基于内容的召回:Content Based

    目录 1. 前言 2. 构建画像 3. 内容召回的算法 1. 前言 在之前总结过协同过滤的召回通路后,今天我们来总结下召回策略中的重头戏:基于内容的召回通路,也即我们常说的基于标签的召回.这里就要涉及 ...

  8. java秒杀系列(1)- 秒杀方案总体思路

    前言 首先,要明确一点,高并发场景下系统的瓶颈出现在哪里,其实主要就是数据库,那么就要想办法为数据库做层层防护,减轻数据库的压力. 一.简单图示 我用一个比较简单直观的图来表达大概的处理思路 二.生产 ...

  9. docker daemon

    docker启动最先加载Docker Daemon. Docker Daemon的启动文件放在/etc/systemd/system/docker.service.d目录中,如果没有则手工创建该目录并 ...

  10. Java流程控制01:用户交互Scanner

    Scanner对象 之前我们学习的基本语法并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.Scanner 是java5 的新特征,我们可以通过Sca ...