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

Pod基本概念与Pod应用生命周期

Pod是一个逻辑抽象概念,kubernetes创建和管理的最小单元,一个Pod由一个容器或多个容器组成。
特点:
一个Pod可以理解为是一个应用实例,提供服务
Pod中容器始终部署在一个Node上
Pod中容器共享网络、存储资源
Pod主要用法:
运行单个容器:最常见的用法,在这种情况下,可以将Pod看作是单个容器的抽象封装。
运行多个容器:边车模式(Sidecar),通过在Pod中定义专门容器,来执行主业务容器需要的辅助工作,这样好处是将辅助功能同主业务容器解耦,实现独立发布和能力重用。
例如:
日志收集
应用监控
Pod对象:资源共享实现机制
Pod管理命令
创建Pod:
kubectl apply -f pod.yaml
或者使用命令: kubectl run nginx --image=nginx
查看Pod:
kubectl get pods
kubectl describe pod <Pod名称>
查看日志:
kubectl logs <Pod名称> [-c CONTAINER]
kubectl logs <Pod名称> [-c CONTAINER] -f
进入容器终端:
kubectl exec -it <Pod名称> [-c CONTAINER] -- bash
删除Pod:
kubectl delete pod <Pod名称>
Pod对象:资源共享实现机制
Pod对象:重启策略+健康检查(应用自修复)
重启策略(restartPolicy):
• Always:当容器终止退出后,总是重启容器,默认策略。
• OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
• Never:当容器终止退出,从不重启容器。
健康检查有以下3种类型:
• livenessProbe(存活检查):如果检查失败,将杀死容器,根据Pod
的restartPolicy来操作。
• readinessProbe(就绪检查):如果检查失败, Kubernetes会把
Pod从service endpoints中剔除。
• startupProbe(启动检查):检查成功才由存活检查接手, 用于保护
慢启动容器
支持以下三种检查方法:
• httpGet发送HTTP请求,返回200-400范围状态码为成功。
• exec:执行Shell命令返回状态码是0为成功。
• tcpSocket:发起TCP Socket建立成功。
rollout 查看历史版本
rs 可以看到历史版本号与rs对应关系,从rs可以再得知当前对应的镜像
# 获取发布版本与对应镜像
kubectl describe $(kubectl get rs -o name -n test |grep "web1-") -n test |grep -E "revision:|Image:"
# 回滚到上一个版本或者指定版本
kubectl rollout undo deployment web1 -n test
kubectl rollout undo deployment web1 --to-revision=1 -n test
常规健康检查方法:端口监听、运行进程、HTTP状态码、端口探测
环境变量
创建 Pod 时,可以为其下的容器设置环境变量。
应用场景:
容器内应用程序获取Pod信息
容器内应用程序通过用户定义的变量改变默认行为
变量值几种定义方式:
• 自定义变量值
• 变量值从Pod属性获取
• 变量值从Secret、 ConfigMap获取
Pod对象:Init Container
Init Container:顾名思义,用于初始化工作,执行完就结束,可以理解为一次性任务。
• 支持大部分应用容器配置,但不支持健康检查
• 优先应用容器执行
应用场景:
环境检查:例如确保应用容器依赖的服务启动后再启动应用容器
初始化配置:例如给应用容器准备配置文件
Pod中会有这几种类型的容器?
1、Infrastructure Container: 基础容器
         维护整个Pod网络空间
2、 InitContainers: 初始化容器
         先于业务容器开始执行
3、 Containers: 业务容器
         并行启动
Pod对象:静态Pod
静态Pod特点:
Pod由特定节点上的kubelet管理
不能使用控制器
Pod名称标识当前节点名称
在kubelet配置文件启用静态Pod的参数:
vi /var/lib/kubelet/config.yaml
...
staticPodPath: /etc/kubernetes/manifests
注:将部署的pod yaml放到该目录会由kubelet自动创建
http://www.lryc.cn/news/8441.html

相关文章:

  • DDL 数据定义语言
  • 设计模式概述
  • 华为OD机试 - 箱子之形摆放(Python)| 真题+思路+考点+代码+岗位
  • 第九章:创建用户和用户权限
  • 如何制定人生目标
  • 用户认证概述
  • XQuery FLWOR + HTML
  • MySQL用户管理
  • C++【模板初阶】
  • 华为OD机试 - 磁盘容量(Python)| 真题+思路+考点+代码+岗位
  • 更专业、安全、可控!政企都选择WorkPlus私有化部署
  • [SDX12] X12 USB to LTE IPA概率不生效问题分析及优化策略
  • mysql8.0(单表查询与多表拆线)
  • 用于汽车传感器的混合点云语义压缩:性能评估
  • 最流行十大在线客服系统排行榜-市场常见客服系统软件排行-2023最新
  • 算法笔记(六)—— 二叉树相关概念及经典算法题
  • redux全网最详细教程
  • 华为OD机试 - 匿名信(Python)| 真题+思路+考点+代码+岗位
  • 【Python】编写代码实现指定下标值顺序进行正序和倒序排序算法编程
  • Sitara™处理器的产品开发路线图
  • 岗位来啦-华为研发OD招聘
  • 【LeetCode】剑指 Offer 06. 从尾到头打印链表 p58 -- Java Version
  • 童年回忆--扫雷(包括标记功能和递归展开)--万字讲解让你学会扫雷制作
  • 【重器】GPS北斗卫星时钟基准与卫星授时服务技术原理
  • 软件测试未来发展趋势怎么样
  • aws Distro for OpenTelemetry 可观测性workshop记录
  • Leetcode力扣秋招刷题路-0068
  • Nginx介绍及安装(windows版,Linux版)
  • Camera | 4.瑞芯微平台MIPI摄像头应用程序编写
  • 【1250. 检查「好数组」】