Pod与容器的区别联系
发布网友
发布时间:2023-06-11 09:52
我来回答
共1个回答
热心网友
时间:2024-10-21 02:50
众所周知,Pod是Kubernetes 中创建和管理的、最小的可部署的计算单元。已经有了容器概念,为什么要抽象一个pod组件来增加认知的成本?k8s 抽象出Pod主要是为解决以下两类问题:
Pod可以分成动态Pod和静态Pod,动态Pod又可以分为自主式的Pod和控制器管理的Pod
Pod中容器按功能特点可以分为以下四类:
Init 容器是一种特殊容器,在 Pod内的应用容器启动之前运行,通过 spec.initContainers 指定。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本,用于在Pod应用容器启动之前做一些额外工作。
ctr -n k8s.io c ls 发现一些名为pause的容器,为什么会有这么多pause容器呢?
k8s 创建pod是,都会为每个pod创建一个特殊的pause容器,该pause容器作pod中所有容器的父容器,用于实现共享命名空间,对pod中的容器的进程的管理
一种特殊的容器,该容器在现有Pod中临时运行,以便完成用户发起的操作,例如故障排查。 你会使用临时容器来检查服务,而不是用它来构建应用程序。
当由于容器崩溃或容器镜像不包含调试工具而导致 kubectl exec 无用时, 临时容器对于交互式故障排查很有用
1.在 Kubernetes 的各个组件中开启特性。
也可以创建Pod的拷贝方式,会产生一个Pod=my-debugger-pod
查看临时容器
实际跑业务的容器,包含sidecar容器,sidecar代理本身也是业务;当然也有人把sidecar容器和应用容器区分开,但是不影响我们对Pod容器的理解