Kubernetes Pod 资源

Pod资源,具体概念请阅读官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/

使用Pod

1
2
3
4
5
6
7
8
9
10
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
1
2
3
4
5
6
7
8
9
10
11
# 资源清单参数说明
apiVersion: v1 # 版本
kind: Pod # 资源类型
metadata: # 元数据
name: nginx # 定义该资源名称
spec: # 详情描述
containers: # 容器
- name: nginx # 定义该容器名称
image: nginx:1.14.2 # 镜像名称:镜像版本
ports: # 端口
- containerPort: 80 # 声明80端口
1
2
3
4
5
6
# 要创建上面显示的 Pod,请运行以下命令
kubectl create -f pod.yaml
# 或者
kubectl apply -f pod.yaml

# create跟apply的区别,前者只能创建后者创建和更新

Pod 模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
apiVersion: batch/v1
kind: Job
metadata:
name: hello
spec:
template: # 模板
# 这里是 Pod 模板
spec: # 模板详情描述
containers: # 容器
- name: hello # 定义容器名称
image: busybox:1.28 # 镜像名称:镜像版本
command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600'] # 执行命令
restartPolicy: OnFailure # 重新启动策略: Always(总是),OnFailure(失败时),Never(从不)
# 以上为 Pod 模板

查看运行的Pod

1
kubectl get pod

image-20221001193404601

1
2
3
4
5
6
# 参数说明
Name # Pod资源名称
READY # Pod数量
STATUS # Pod状态
RESTARTS # Pod重启次数
AGE # Pod运行时间

STATUS 状态具体说明Kubernetes Pod的生命周期

查看指定Pod的详细信息

1
2
# nginx 是 Pod名称
kubectl describe pod nginx

describe 详细信息说明Kubectl describe 参数解释

删除指定Pod

1
2
# nginx 是Pod的名称
kubectl delete pod nginx

删除指定资源清单的所有Pod

1
2
# pod.yaml 是资源清单文件
kubectl delete -f pod.yaml

删除所有资源清单的所有Pod(当前目录)

1
kubectl delete -f .

查看Pod内容器的日志

1
2
# nginx 是Pod的名称,nginx-2 是容器的名称
kubectl logs -f nginx -c nginx-2

进入容器命令

1
2
# nginx 是Pod的名称,nginx-2 是容器的名称
kubectl exec -it nginx -c nginx-2 -- /bin/bash