第6章:深入理解Pod对象

1. Pod基本概念

·最小部署单元
·一组容器的集合
·一个Pod中的容器共享网络命名空间
·Pod是短暂的

2. Pod存在的意义

Pod为亲密性应用而存在。

亲密性应用场景:

  • 两个应用之间发生文件交互
  • 两个应用需要通过127.0.0.1或者socket通信(典型组合php+nginx)
  • 两个应用需要发生频繁的调用

3.Pod实现机制与设计模式

共享网络

共享存储

apiVersion:v1
kind: Pod
metadata:
 name: my-pod
spec: 
containers:
-name: write 
image: centos 
command:["bash","-c","for iin {1..100]; do echo $i>>/data/hello; sleep 1; done"]
volumeMounts:
-name: data
mountPath:/data
-name: read image: centos command:["bash","-c","tail-f/data/hello"]
volumeMounts:
-name: data mountPath:/data
-name: data emptyDir:

·Infrastructure Container:基础容器
· 维护整个Pod网络空间
·InitContainers:初始化容器
· 先于业务容器开始执行
·Containers:业务容器
· 并行启动

4.镜像拉取策略(imagePullPolicy)

  • lfNotPresent:镜像在宿主机上不存在时才拉取
  • Always:每次创建 Pod 都会重新拉取一次镜像
  • Never:Pod 永远不会主动拉取这个镜像

5.资源限制

资源限制好处:避免某容器资源利用率异常突发影响其他容器,可能会产生雪崩效应!
Pod和Container的资源请求和限制:
容器资源限制:
内存
CPU
1imits:实际最大使用的配额
requests:申请的配额,主要用于k8s做资源调度分配时参考值
1000m=1c
500m=0.5c
250m=0.25c
·spec.containers[].resources.limits.cpu
·spec.containers[].resources.limits.memory
·spec.containers[].resources.requests.cpu
·spec.containers[].resources.requests.memory

6.重启策略(restartPolicy)

·Always:当容器终止退出后,总是重启容器,默认策略。
·OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
·Never:当容器终止退出,从不重启容器。
守护进程式:要求持续性运行,例如nginx、mysq1、redis
预期终止:批处理,定时任务

7.健康检查(Probe)

Probe有以下两种类型:
·livenessProbe (存活检查)
如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。
readinessProbe(就绪检查)
如果检查失败,Kubernetes会把Pod从service endpoints中剔除。
Probe支持以下三种检查方法:
·httpGet
发送HTTP请求,返回200-400范围状态码为成功。
exec
执行Shell命令返回状态码是0为成功。
·tcpSocket
发起TCP Socket建立成功。

8.调度策略

9.故障排查

kubectl describe TYPE/NAME

例:

kubectl describe rs web-d86c95cc9
kubectl describe deploy web

kubectl logs TYPE/NAME [-c CONTAINER]

kubectl exec POD [-c CONTAINER]–COMMAND [args…]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值