k8s之pod讲解
什么是Pod?
kind: Pod # 定义类型
metadata: # 元数据
name: nginx # pod名称,命名规范需符合RFC 1035规范
labels: # 自定义标签
app: nginx
spec: # 定义容器的详细信息
containers: # 容器列表
- name: nginx # 容器名称,需符合RFC 1035规范
image: nginx # 容器所用镜像
ports: # 容器要暴露的端口号列表
- containerPort: 80 端口号
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讲解的更多相关文章
- K8s的POD连接数据库时报错
[root@cccc xxxx]# ./showlog.sh dr iff-dr-1128668949-lb90g 2017-09-29 03:21:57,575 INFO [org.wildfly. ...
- k8s之pod与Pod控制器
k8s中最为重要的基础资源,pod,pod controller,service pod controller类型有多种需要向控制器赋值之后使用: kubectl命令使用 kubectk get no ...
- 为什么k8s引入pod概念?
为什么k8s引入pod概念? 1.可管理性 有些容器天生需要紧密关联,以pod为最小单位进行调度 扩展 共享资源 管理生命周期 例如: 一个容器写日志,一个容器读取日志进行相关内容的展示 2.通信和资 ...
- k8s家族Pod辅助小能手Init容器认知答疑?
k8s家族Pod辅助小能手Init容器认知答疑? k8s集群Init 容器是一种特殊容器,职责是在Pod的生命周期中作为应用容器的前置启动容器. 在很多应用场景中,在 Pod 内的应用容器正式启动之前 ...
- k8s 中 Pod 的控制器
k8s 中 Pod 的控制器 前言 Replication Controller ReplicaSet Deployment 更新 Deployment 回滚 deployment StatefulS ...
- k8s之pod连接被拒排查
k8s之pod连接被拒排查 pod链接被拒 查看pod的时候发现pod的状态为crashloopbackoff 然后看看日志发现报错如下 kubectl -n kf10 logs easydata-r ...
- 13.深入k8s:Pod 水平自动扩缩HPA及其源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 Pod 水平自动扩缩 Pod 水平自动扩缩工作原理 Pod 水平自动 ...
- k8s创建pod流程
kubernetes 创建Pod 的 工作流: step.1 kubectl 向 k8s api server 发起一个create pod 请求(即我们使用Kubectl敲一个create pod命 ...
- K8s创建pod yaml文件详解
kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...
随机推荐
- Android官方文档翻译 十四 3.2Supporting Different Screens
Supporting Different Screens 支持不同的屏幕 This lesson teaches you to 这节课教给你 Create Different Layouts 创建不同 ...
- 【记录一个问题】铁威马NAS存储中的python3,安装后找不到xml这个包
如题 因为找不到xml,所以无法安装setuptools 因为无法安装setuptools,所以无法安装pip3 现在准备重新下载python3的源码自己编译. 铁威马的系统中还缺少libm这个库,导 ...
- Redis数据库各种数据结构的内部实现。
Redis数据库是一种非关系型数据库,基于key/value对,运行时加载到内存,对value支持虚拟内存, 支持多种数据结构,支持持久化,以性能著称,可用于存储,缓存,消息队列等场景.主要介绍下Re ...
- 加深对AQS原理的理解示例二:自己设计一个同步工具,同一时刻最多只有两个线程能访问,超过线程将被阻塞
/** *@Desc 设计一个同步工具,同一时刻最多只有两个线程能访问,超过线程将被阻塞<br> * 思路分析: * 1.共享锁 两个线程及以内能成功获取到锁 * 2. *@Author ...
- Casbin + Gin + Gorm 学习探索
Casbin 是一个强大的,开源的访问控制框架,权限管理机制支持多种访问控制模型: 并且支持多种编程语言: 文档地址:https://casbin.org/docs/zh-CN/overview Gi ...
- For Update 加锁分析
MySQL InnoDB 锁 - For Update 加锁分析: 1. InnoDB锁 简单介绍 2. 当前读加锁分析:REPEATABLE-READ 可重复读.READ-COMMITTED 读已提 ...
- Python的开发环境
Python的开发环境 在 Python 开发环境中我们能看到很多工具,如 pip .conda .poetry . virtualenv . venv . pyenv 等等.他们是什么,都有什么作用 ...
- 从Apache官网下载Jar包步骤
第一步:在官网找寻需要的包 Apache网址:http://commons.apache.org/ 在官网中,可以直接看到不同jar包的分类,如下图所示: 也可以点击官网左侧栏目里的 Release, ...
- 对于网络请求ajax理解
先对原生Ajax进行理解: Ajax=异步JS和XML,用于创建快速动态网页的技术 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 工作原理 对于Ajax的 ...
- JavaWeb编码浅解
感谢原文作者:少年无形 原文链接:https://blog.csdn.net/dl18215164175/article/details/72512131?depth_1-utm_source=dis ...