概述
1、Pod是什么?
1)k8s中最小的部署单元。
2)是1个容器或者多个容器的集合。
3)一个pod中的容器共享网络命名空间和存储,即IP地址也相同。
4)Pod是短暂的,不是持久存在的。
2、Pod存在的意义?
POd为亲密性应用而存在。
亲密性应用场景:
1)两个应用之间发生文件交互。
2)两个应用需要通过127.0.0.1或者socket通信。
3)两个应用需要发生高频的调用。
3、Pod共享的实现:
共享网络?基于同一个Network namespace,通过基础容器infra docker来关联实现。
共享存储?基于volume,确保有效数据存储,支持动态挂载。
4、容器分类:
1)基础容器(infra docker):docker ps查看,每创建1个pod,都会创建一个基础容器pause标记,每一个pod都是绑定这个基础容器IP。
2)初始化容器(init docker):先于业务容器开始执行,做初始化工作,需要在yaml配置中自定义。
3)业务容器:运行业务的容器,pod里面的容器都是并行启动的。
5、镜像拉取策略:imagePullPolicy
ifNotPresent: 镜像再宿主机上不存在时才去外拉取【默认值】。
Always:每次创建Pod都会重新拉取一次镜像。
Never:Pod永远不会主动拉取这个镜像。
root@master01 demo]# kubectl get deploy/nginx-deployment -o yaml |grep imagePull #查看策略
[root@master01 demo]# kubectl describe pod nginx-harbor-dbfb75fb9-cszb6 #查看Pod的详细配置
6、资源限制
Pod与Container的资源请求和限制:
spec.containers[].resources.limits.cpu #资源总限制。
spec.containers[].resources.limits.memory
spec.containers[].resources.requests.cpu
#最低分配的资源,宿主机只有满足requsts才能创建资源。
spec.containers[].resources.requests.memory
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-harbor-limit
labels:
app: nginx-harbor-limit
spec:
replicas: 3
selector:
matchLabels:
app: nginx-harbor-limit
template:
metadata:
labels:
app: nginx-harbor-limit
spec:
imagePullSecrets:
- name: registry-pull-152.148-harbor
containers:
- name: nginx-harbor-limit
image: 42.159.152.148/mydate/nginx:latest
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
[root@master01 demo]# kubectl describe node node02
Non-terminated Pods: (8 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
default nginx-deployment-9b644dcd5-dbdbr 0 (0%) 0 (0%) 0 (0%) 0 (0%) 11h
default nginx-deployment-9b644dcd5-rcp88 0 (0%) 0 (0%) 0 (0%) 0 (0%) 11h
default nginx-harbor-59cc5c8d8c-6qjgj 0 (0%) 0 (0%) 0 (0%) 0 (0%) 9h
default nginx-harbor-limit-7cc8bb749d-8ctfn 250m (25%) 500m (50%) 64Mi (7%) 128Mi (14%) 2m12s
default nginx-harbor-limit-7cc8bb749d-rhjrz 250m (25%) 500m (50%) 64Mi (7%) 128Mi (14%) 2m12s
kube-system kube-flannel-ds-amd64-7q54b 100m (10%) 100m (10%) 50Mi (5%) 50Mi (5%) 52d
kube-system kube-proxy-7ddkf 0 (0%) 0 (0%) 0 (0%) 0 (0%) 52d
kubernetes-dashboard kubernetes-metrics-scraper-86456cdd8f-7js7v 0 (0%) 0 (0%) 0 (0%) 0 (0%) 52d
最后
以上就是多情路人为你收集整理的Pod的理解及pod使用的资源限制的全部内容,希望文章能够帮你解决Pod的理解及pod使用的资源限制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复