什么是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. Typora中本地图片无法上传CSDN解决方案

    解决方法 本地图片无法上传,我们可以选择使用在线免费图床 把想要使用的图先上传到图床后复制对应的MarkDown语句到typora即可 在这里,给大家推荐一个图床 [图床链接](Image Uploa ...

  2. [爱偷懒的程序员系列]-Section 1. “懒”是一切需求的根源

    一直认为"懒"推进了科技的发展,因为"懒"而促生了各种各样的需求.科技的进步加速了各种信息的交互频率,站在台面上说是因为业务需要提高效率,成本需要降低,服务需要 ...

  3. Android官方文档翻译 十三 3.1Supporting Different Languages

    Supporting Different Languages 支持不同语言 This class teaches you to 这节课教给你 Create Locale Directories and ...

  4. 2月3日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.回返地址学习,下载导入相关jar包

  5. nginx的fastcgi配置

    首先参考了一份配置注释(来自"小刚的博客"): #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错 ...

  6. zabbix安装 报错 socket '/var/lib/mysql/mysql.sock' (13)]

    安装界面提示: Error connecting to database: Can't connect to local MySQL server through socket '/var/lib/m ...

  7. 写react项目需要注意的

    key应该是稳定的,且唯一的,尽量不要用索引作为key 都知道React组件渲染列表时需要为每个列表元素分配一个在列表中独一无二的key,key可以在DOM中的某些元素被增加或删除视乎帮助React识 ...

  8. JavaScript之详述闭包导致的内存泄露

    一.内存泄露 1. 定义:一块被分配的内存既不能使用,也不能回收.从而影响性能,甚至导致程序崩溃. 2. 起因:JavaScript的垃圾自动回收机制会按一定的策略找出那些不再继续使用的变量,释放其占 ...

  9. numpy 矩阵在作为函数参数传递时的奇怪点

    numpy 矩阵在作为函数参数传递时的奇怪点 import numpy as np class simpleNet: def __init__(self): self.W = np.array([1, ...

  10. Visual Studio 2022 下载链接及激活密钥

    Visual Studio 2022 下载链接:https://visualstudio.microsoft.com/zh-hans/vs/ 激活码: 专业版: TD244-P4NB7-YQ6XK-Y ...