基于k3s集群学习Pod基础概念
2022-12-19 10:30:14
Pod
Pod 是包含一个或多个容器的容器组,是 Kubernetes 中创建和管理的最小对象。
一个pod里可以存在多个容器,pod中的容器共享存储卷和ip地址。
Pod 有以下特点:
- Pod是kubernetes中最小的调度单位****(原子单元),Kubernetes直接管理Pod而不是容器。
- 同一个Pod中的容器总是会被自动安排到集群中的同一节点(物理机或虚拟机)上,并且一起调度。
- Pod可以理解为运行特定应用的“逻辑主机”,这些容器共享存储、网络和配置声明(如资源限制)。
- 每个 Pod 有唯一的 IP 地址。 IP地址分配给Pod,在同一个 Pod 内,所有容器共享一个 IP 地址和端口空间,Pod 内的容器可以使用
localhost
互相通信
创建Pod
1.第一种方法直接通过命令行创建
1 | kubectl run mynginx --image=nginx #mynginx pod的名称 --image指定pod中的容器镜像 |
2.第二种方法通过yaml文件创建
yaml文件示例:
1 | apiVersion: v1 |
执行创建pod命令
1 | kubectl apply -f nginx.yaml |
管理Pod
- 查看pod
1
2
3
4
5kubectl get pod #查看默认命名空间下的pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-79b458c974-6drv6 1/1 Running 0 12h
nginx-deployment-79b458c974-l4b6s 1/1 Running 0 10h
nginx-deployment-79b458c974-4jbn2 1/1 Running 0 5h36m - 查看描述
1
kubectl describe pod mynginx #mynginx pod的name
- 查看pod的运行日志
1
kubectl logs mynginx #mynginx pod的name
- 显示pod的ip和运行节点信息
1
kubectl get pod -owide
- 使用Pod的ip+pod里面运行容器的端口
1
curl http://ip:80
- 进入指定的pod
1
kubectl exec mynginx -it -- /bin/bash #myginx pod的name
- 观察pod
1
kubectl get po --watch
- 删除pod
1
2kubectl delete pod mynginx #myginx pod的name
kubectl delete pod mynginx --force