Pod
Pod 是包含一个或多个容器的容器组,是 Kubernetes 中创建和管理的最小对象。
Pod 有以下特点:
- Pod是kubernetes中最小的调度单位(原子单元),Kubernetes直接管理Pod而不是容器。
- 同一个Pod中的容器总是会被自动安排到集群中的同一节点(物理机或虚拟机)上,并且一起调度。
- Pod可以理解为运行特定应用的“逻辑主机”,这些容器共享存储、网络和配置声明(如资源限制)。
- 每个 Pod 有唯一的 IP 地址。 IP地址分配给Pod,在同一个 Pod 内,所有容器共享一个 IP 地址和端口空间,Pod 内的容器可以使用
localhost
互相通信。
简单运行一个容器
kubectl run nginx --image=nginx:1.22
持续追踪查看日志
kubectl logs -f nginx
查看pod详细日志
kubectl describe pod nginx
Normal Scheduled 5m16s default-scheduler Successfully assigned default/nginx to k8s-slave2 –分配节点
Normal Pulling 5m16s kubelet Pulling image “nginx:1.22” –拉取镜像
Normal Pulled 4m52s kubelet Successfully pulled image “nginx:1.22” in 23.770229322s –拉取镜像成功
Normal Created 4m52s kubelet Created container nginx –创建容器nginx
Normal Started 4m52s kubelet Started container nginx –运行容器nginx
参数-owide
另外还可以使用 -owide显示更详细的信息,例如IP,位于的节点都会显示出来。
kubectl get pod nginx -owide
可以curl测试下
进入容器的命令与docker类似
kubectl exec -it nginx -- /bin/bash
kubectl exec -it nginx -- bash
运行一次性容器(busybox)并ping测试主机ip,查看pod已不存在,只剩nginx
退出后会自动删除 pod “test-busybox” deleted
kubectl run test-busybox --image=busybox -it --rm
手动删除pod
kubectl delete pod nginx