您现在的位置是:首页 >技术教程 >K8S中最小的单位Pod资源介绍网站首页技术教程
K8S中最小的单位Pod资源介绍
简介K8S中最小的单位Pod资源介绍
1. Pod
-
- Pod是一组容器, 在K8S中,最小的单位是Pod, 一个Pod可以包含多个容器,但通常情况下我们在每个Pod中仅使用一个容器,可以把Pod理解成豌豆荚, Pod内的每个容器是一颗颗豌豆
- Pod 的核心是运行容器,必须指定容器引擎,比如 Docker是其中一种技术
- 分类
-
-
- 自主创建:直接创建出来的Pod,这种pod删除后就没有了,也不会自动重建
- 控制器创建:通过控制器创建的pod,这类Pod删除了之后还会自动重建
-
-
- Pod运行容器数量
-
-
- 每个Pod中一个容器的模式是最常见的用法,Pod是容器的简单封装,K8S管理Pod而不是直接管理容器
- 一个Pod中同时运行多个需要互相协作的容器,它们共享资源,同一个Pod中的容器可以作为service单位
-
2. Pod网络
-
-
- 一个 pod 包含一组容器,一个 pod 不会跨越多个工作节点(不会跨机器)
- 每个Pod都会被分配一个唯一的IP地址,Pod中的所有容器共享网络空间,包括IP地址和端口
- Pod内部的容器可以使用localhost互相通信
-
3. Pod存储
-
-
- Volume 也可以用来持久化Pod中的存储资源,以防容器重启后文件丢失
- Pod中 的所有容器都可以访问共享的Volume
-
4. K8S集群中的系统组件都是以Pod方式运行的
kubectl get pod -n kube-system
5. 命令
#查看创建的资源
kubectl get pod,deploy
# 删除nginx pod,如果是靠deploy控制器创建的pod, 直接删除则会自动创建新的;
kubectl delete pod pod名称 -n 名称空间
#通过控制器创建pod,则删除控制器即可
kubectl delete pod控制器名称 -n 名称空间
# 运行pod,指定名称空间
kubectl run xdclass-nignx-pod --image=nginx:1.23.0 --port=80 --namespace dev
# 通过 deployment控制器导出yaml文件,指定名称空间
kubectl create deployment xdclass-nginx --image=nginx:1.23.0 --namespace dev -o yaml --dry-run=client > nginx.yaml
#一次性部署3个pod,修改nginx.yaml 下面的从 1 改为 3
#使用 kubectl apply -f nignx.yaml
spec:
replicas: 3
6. 访问
#查看某个名称空间下 pod 更多信息
kubectl get pod -n dev -o wide
#访问pod,同个集群下面,master和node节点都可以访问(同个K8S内部网络)
curl 10.244.1.20
#备注,如果使用了Service,即NodePort端口,开放了网络安全组则外网也可以访问
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。