
k8s中的资源
集群资源分类
- 名称空间级别
使用ku’beadm安装的时候 所有系统组件安装放在kube-system命名空间下运行
例如使用kubectl get pod 的情况时默认是kubectl get pod -n default - 集群级别
- 元数据型


资源清单
YAML






常用字段解释说明
使用命令kubectl explain pod 即可查看pod参数项所有说明
如果想细看pod某个参数描述信息kubectl explain pod.apiversion
创建pod yaml文件必须存在的字段

创建pod主要对象


创建pod额外的参数项

pod demo
编辑pod yaml文件

kubectl appply -f pod.yaml通过yaml创建pod
查看pod启动失败原因
kubectl describe pod pod名称 查看对应pod中的信息

查看名称为app的容器是正常启动的

查看test容器是启动报错的

使用kubectl log pod pod名称 -c 容器名称查看pod中对应容器的日志显示80端口被占用

使用kubectl delete pod pod名删除pod

将pod中test容器的yaml删除重新启动即可看pod中容器启动成功

容器生命周期
创建pod后会先执行一个pause容器再执行初始化容器initc 最后才执行C容器,


- readiness:就绪检测 ,通过tcp连接,命令,http协议状态等判断服务是否可以,如果就绪检测服务可用,则将pod设置为running状态
- liveness:生存检测,当通过某个机制容器内部无法对外正常提供服务的时候,将pod重启或者重建pod等操作
init容器解释:


init C 容器创建demo:

创建对应pod

查看pod
查看pod中的容器

查看到 init-myservice init c 容器 一直无法解析,所以一直循环无法创建pod成功

创建一个新的svc

创建完svc后,使用kubectl get pod继续查看前面创建的pod,即可查看到init的容器已经启动一个

查看svc,因为启动svc后,pod创建会先请求k8s中的2个dns,svc启动会将svc的名称注册进2个k8s自带的dns中,pod请求的时候通过k8s中的dns即可解析nslookup的域名请求到对应的svc上面.


同理创建名称为mydb的svc

再次查看pod状态为running

init c 容器的特殊说明


容器探针

readinessProbe和livenessProbe

就绪检测

查看pod状态,虽然pod是running状态,但是pod未ready

查看容器日志,readnessProbe失败

使用kubectl exec pod名称 -it -- /bin/sh 进入对应pod容器中,如果有pod中有多个容器需要加参数-c 容器名称,创建index.html 并且推出

再次查看pod status为running,ready

存活检测
命令检测

创建完livenessProbe 存活检测后使用命令
kubectl get pod pod名称 -w 监控查看pod变化

可以看到该pod restarts 重启次数增加,因为容器启动后,创建/tmp/live目录后进程睡眠60s,存活检测成功,睡眠后删除目录,存活检测失败会停掉pod,然后pod自动重启再次重新创建/tmp/live目录重新拉起pod
http检测

创建后pod是running状态

并且直接访问容器里面的index.html可以访问到

进入容器中将/index.hmtl文件删除掉

查看到对应pod已经重启一次

tcp检测

创建pod,查看存活检测不满足,所以重启pod

注意:就绪检测可以是把pod改为ready状态,存活检测是不满足就停掉pod
启动退出

pod可能存在的值


本文介绍Kubernetes(K8s)中资源的分类及管理方法,包括命名空间与集群级别的资源,YAML配置文件的使用,Pod的创建、查看与删除流程。详细解释了容器生命周期管理,如就绪检测、存活检测及其配置方法。
5462

被折叠的 条评论
为什么被折叠?



