kubernetes集群核心技术----pod(四)

目录

1.基本概念

2.pod和docker

3.pod实现机制

4.pod镜像拉取策略(imagePullPolicy)

5.pod资源限制

6.pod重启策略(restartPolicy)

7.pod状态

8.pod健康检查

9.pod调度,影响调度的4大因素

9.1.资源限制和节点选择器

9.2.节点亲和性

9.3.污点和污点容忍


1.基本概念

  • pod是k8s系统中可以创建和管理的最小单元
  • pod包含一个或者多个容器(一组容器的集合)
  • pod容器共享网络命名空间,每一个 Pod 都有一个特殊的被称为”根容器“的 Pause 容器
  • pod是短暂的

2.pod和docker

  1. docker是单进程的设计,创建容器使用的docker,一个docker容器对应一个应用进程
  2. pod是多进程设计,运行多个应用程序,换句话说一个pod有多个容器,一个容器里面运行一个应用程序
  3. pod存在为了亲密性应用,如下:
  • 两个应用程序之间进行亲密交互;
  • 网络之间的调用;
  • 两个应用需要频繁调用

3.pod实现机制

pod内的容器实现共享网络?

  • 容器之间本身是相互隔离的
  • 每个 Pod 都是应用的一个实例,有专用的IP
  • 一个pod内共享网络和存储资源,每个 Pod 中有一个 Pause 容器保 存所有的容器状态, 通过管理 pause 容器,达到管理 pod 中所有容器的效果。
  • 每当创建一个新的应用容器时候,会加入到Pause 容器中,在同一个命名空间ns,共享ip地址,mac地址,端口port

示例如下:

pod内的容器实现共享存储?

  • 引入数据卷,使用数据卷进行持久化存储

4.pod镜像拉取策略(imagePullPolicy)

5.pod资源限制

  • 每个 Pod 都可以对其能使用的服务器上的计算资源设置限额。
  • Kubernetes 中可以设置限额 的计算资源有 CPU 与 Memory 两种,
  • 其中 CPU 的资源单位为 CPU 数量,是一个绝对值而非相对值;Memory 配额也是一个绝对值,它的单 位是内存字节数。

请最少 0.25 个 CPU 以及 64MiB 内存,在运行过程中容器所能使 用的资源配额为 0.5 个 CPU 以及 128MiB 内存
 

6.pod重启策略(restartPolicy)

Pod 的重启策略包括 Always、OnFailure 和 Never,默认值是 Always
 

7.pod状态

kubectl get pods

8.pod健康检查

  • 容器检查:一般都是kubectl get pods,查看是否是Running状态,但不准确,比如java内存溢出,状态依旧是Running,但是已经不能提供服务了
  • pod健康检查:livenessProbe(存活检查)和readinessProbe(就绪检查)

livenessProbe(存活检查):如果检查失败,将杀死容器,根据pod的restartPolicy来操作

readinessProbe(就绪检查):如果检查失败,k8s会把pod从service endpoints 中剔除

文件示例如下:

9.pod调度,影响调度的4大因素

pod创建流程

watch代表监控

------------------------------------------------------------------------------------------------------------------------------------------------------------------

影响pod调度的可能性如下:资源限制,节点选择器,节点亲和性,污点和污点容忍

9.1.资源限制和节点选择器

 

#给node1节点打标签env_role=prod
kubectl label node node1 env_role=prod
#查看node的所有标签
kubectl get pods node1 --show-labels

9.2.节点亲和性

节点亲和性:硬亲和性,软亲和性

9.3.污点和污点容忍

命令行如下:

#查看节点的污点情况
kubectl describe node k8smaster | grep Taint
#为节点k8snode1 添加污点
kubectl taint node k8snode1 env_role=yes:NoSchedule

#创建pod
kubectl create deployment web --image=nginx
#查看pod,就1个
kubectl get pods -o wide
#扩容5个pod
kubectl scale deployment web --replocas=5

#删除污点
kubectl taint node k8snode1 env_role:NoSchedule-
#查看节点的污点情况
kubectl describe node k8snode1 | grep Taint

上一章:kubernetes集群---yaml文件(三)

https://blog.csdn.net/weixin_42211693/article/details/115209862

下一章:kubernetes集群核心技术---Controller(Deployment)(五)

https://blog.csdn.net/weixin_42211693/article/details/115230592

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彼岸花@开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值