(K8s入门到精通) 07( 重要)资源清单方案(pod.yaml)去部署pod或者服务
如果我们想去部署一些pod,或者服务,采用资源清单的方案,最为常用资源清单可以理解为剧本,告诉我们该怎么做,k8s拿着剧本去执行,努力达到预期名称空间 集群 元数据 三种级别,根据适用性范围进行分类pod : k8s中最下的组成部分 ,和pause 共享网络栈(ReplicaSet)rs 调度器,管理我们pod 的创建,通过标签的选择去控制pod的副本数目deployment 控制器,通过控制rs
如果我们想去部署一些pod,或者服务,采用资源清单的方案,最为常用
资源清单可以理解为剧本,告诉我们该怎么做,k8s拿着剧本去执行,努力达到预期
剧本写在xxpod.yaml中
名称空间 集群 元数据 三种级别,根据适用性范围进行分类
pod : k8s中最下的组成部分 ,和pause 共享网络栈
(ReplicaSet)rs 调度器,管理我们pod 的创建,通过标签的选择去控制pod的副本数目
deployment 控制器,通过控制rs 创建,去创建pod
statefulset: 涉及有状态服务
damonset:每个节点都运行一个pod 组件
service 简称svc
volume(存储卷): 容器持久化的能力
csi :只要资源要符合接口规范,k8s 就可以去调度
configMap: 存储配置文件,达到热更新的状态
secret: 加密了 保存密码文件 秘钥
也可以使用行内表示法
不写默认是null
必须有的字段
如果创建pod ,书写yaml 的时候,没有这些属性存在,不允许被执行的
kind 资源类型,比如pod
command 容器启动的时候会执行一些命令,可以进行编写和修改
工作目录,我们一旦进入到容器中,就会处于这个目录下
,
pod 里面是容器 ,kubelet 负责容器的生命周期
查看更多参数
来来来,自己写一个yaml
一个pod里面有多个容器,并且多个容器共享pause
apply一下
检查yaml ,Pod P要大写
多刷几下,error,因为两个容器使用的是同一个镜像,导致端口相同, pause出错
出错了,进去看一下
第一个是app ,第二是test
这里有一个错误
看一下日志,
kubectl log myapp-pod -c test,-c test 指定容器名称
80 端口被占用了,容器无法启动
思路整理
容器报错,descrip pod ,看一下pod 里面的信息,检查每个容器的state runnning is ok,ignore,不running的 比如waiting 的,restart count 重启次数,events事件,当前pod的运行状态, 找到了是哪个容器出错了,看它的日志
kubectl log myapp-pod -c 容器名称,如果pod里面只有一个容器,不需要指定-c 参数
多个容器加-c 参数
kubectl 删除pod,先去get pod 然后delete pod 重新创建pod
kubectl create pod -f .yaml
kubectl get pod -o wide 查询详细信息
本机直接访问:
pod创建时,同时创建pause
initC : 读取配置文件,初始化容器,,进行容器的创建,多个intC 线性执行
Main c,主容器 start stop
pod running: svc 已经把它拿到client对外的访问队列中去了,但是并不意味pod 中的容器 已经可以访问了,比如 一个容器中部署的是Tomcat,如何检测Tomcat也就绪了呢?,readness 说,我可以
readness: 就绪状态检测 给出ready/running 检测容器中的服务是否可用,如果检测到容器内部不能正常提供访问,里面的服务挂了,它挂了,它挂了,你有什么办法吗? 此时liveness出现
liveness:可以对pod中的容器进行重启,或者重建pod 删除
pod 生命周期总结
更多推荐
所有评论(0)