pod管理
pod :装(docker run)容器的容器(虚壳子)
k8s操作pod就相当于是操作容器
为什么k8s要有pod,并不直接操作容器
市面上底层的容器管理软件太多,要是直接去管理底层的容器管理软件的话会很复杂,出一个新的就需要专门去对接容器管理软件、改一版;
引入了pod.实现了统一的管理方式,
1、k8s集群所能管理的最小单元
2、一个pod只放一个容器
3、支持一个pod放多个容器,但是实际不建议适用
IP等配置都是配在pod身上的;
K8S帮我们建立容器的同时,会自动再建立一个pause镜像的容器,因为pause镜像所创的这个容器的存在,pod才可以获取IP等等这些配置
pod yaml文件、
vim centos-7.yaml
apiVersion: v1 #指定apiserver的版本
kind: Pod #指定资源类型
metadata: #指定pod元数据信息
name: test1
namespace: wordpress #pod属于哪个命名空间
spec:
containers:
- name: c1
image: centos:7
imagePullPolicy: IfNotPresent #如果本地有就用本地的镜像
conmmand: #创建pod执行什么命令
- sleep
args: #可写可不写 直接 -"360" 传参
- "360"
# 导入镜像的时候适用
ctr image import *.tar
1.29之前的版本下载镜像后会存在本地的文件系统
1.29之后的版本会默认将镜像存放在 k8s.io的命名空间里
#将镜像导入本地的k8s.io的命名空间
k8s 1.29
ctr -n k8s.io images import 镜像.tar
# 要查看名为test1的Pod在指定命名空间中的详细信息:
kubectl describe pod pod名称 -n 命名空间
#创建完后查看pod的状态以及详细信息就加-o wide
kubectl get pod -n wordpress -o wide
#连接登录pod
kubectl exec -ti pod名称 -n wordpress bash
#查看pod日志
kubectl logs pod名称
#copy
kubectl cp
# 删除pod
1) kubectl delete pod pod名称 -n wordpress
2) kubectl delete -f centos-7.yaml
健康状态检查,探针
LivenessProbe
判断容器是否健康,如果不健康,kubelet将删除该容器并根据重启策略做相应的处理
ReadlinessProbe
判断是否启动完成且准备接收请求,如果检测失败,则endpoint会被从service对应的endpoint中删除