Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。Pod(就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个)容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。简言之如果用 Docker 的术语来描述,Pod 类似于共享名字空间并共享文件系统卷的一组容器。
定义
定义: Pod 就是用来管理一组(一个|多个)容器的集合 特点: 共享网络 共享存储 共享上下文环境
Pod 中的容器被自动安排到集群中的同一物理机或虚拟机上,并可以一起进行调度。 容器之间可以共享资源和依赖、彼此通信、协调何时以及何种方式终止自身。例如,你可能有一个容器,为共享卷中的文件提供 Web 服务器支持,以及一个单独的 "边车 (sidercar)" 容器负责从远端更新这些文件,如下图所示:
通常你不需要直接创建 Pod,甚至单实例 Pod。 相反,你会使用诸如 Deployment 或 Job 这类工作负载资源来创建 Pod。 如果 Pod 需要跟踪状态,可以考虑 StatefulSet 资源。
Kubernetes 集群中的 Pod 主要有两种用法:
说明:
shell#查看所有的命名空间
kubectl get po -A
shell#查看默认的命名空间
kubectl get po
shell#查看详细的命名空间
kubectl get pod -o wide -n kube-system
js#查看所有pod的命名空间详细信息 kubectl get po -o wide -A
js#-w 监控 kubectl get po -o wide -A
创建一个yaml文件
jstouch nginx.yaml
写入以下内容:
yamlapiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.19
ports:
- containerPort: 80
启动 nginx.yaml
jskubectl apply -f nginx.yaml
js# 使用 kubectl apply/create -f 创建 pod
kubectl create -f nginx.yml
kubectl apply -f nginx.yml
注意
注意: create 仅仅是不存在时创建,如果已经存在则报错!apply 不存在创建,存在更新配置。推荐使用 apply!
js格式:kubectl exec -it pod的名字 -- bash (--bash固定写死)
shellkubectl exec -it nginx -- bash
shell#进入一个pod的指定容器内
kubectl exec -it nginx pod名称 -c 容器名称 -- bash
会查看pod所有容器的日志
shellkubectl logs -f nginx
查看指定pod下指定容器的日志
jskubectl logs -f pod的名称 -p 容器名称
jskubectl describe pod
jskubectl delete pod pod名称
kubectl delete -f pod.yml
本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!