k8s学习四-核心技术~Pod

1 Pod 概述

Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在 k8s 上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展 Pod 对象功能的,比如控制器对象是用来管控 Pod 对象的,Service 或者Ingress 资源对象是用来暴露 Pod 引用对象的,PersistentVolume 资源对象是用来为 Pod 提供存储等等,k8s 不会直接处理容器,而是 Pod,Pod 是由一个或多个 container 组成
Pod 是 Kubernetes 的最重要概念,每一个 Pod 都有一个特殊的被称为”根容器“的 Pause 容器。Pause 容器对应的镜 像属于 Kubernetes 平台的一部分,除了 Pause 容器,每个 Pod 还包含一个或多个紧密相关的用户业务容器
在这里插入图片描述

2 pod存在的意义

1 创建容器使用docker,一个docker对应一个容器,一个容器有进程,一个容器运行一个应用程序
2 Pod是多进程设计,运行多个容器
3 pod存在为了亲密性应用

  • 两个应用进行交互
  • 网络之间调用
  • 使得两个应用需要频繁调用更加高效

3 pod实现机制

3.1 共享网络

在这里插入图片描述
一个pod中有很多容器,容器之间相互隔离(通过namespace或group)。每个pod会先创建一个pause跟容器,然后创建一个个业务容器,所有的业务容器会加入到pause容器中,pause容器会独立出一个ip地址,同时会把业务容器放到同一个ns中,实现网络共享

3.2 共享存储

pod运行过程中会产生很多数据,如日志数据、业务数据等。这些数据如果要一直使用则需要做持久化。通过引入数据卷volumn,使数据卷进行持久化存储。
yaml文件示例:
在这里插入图片描述

4 镜像拉取策略

在这里插入图片描述

5 Pod资源限制

在这里插入图片描述
对于cpu度量按照1c=1000m计算

6 重启策略

在这里插入图片描述
always策略用于需要一直运行的容器如nginx、业务服务器等
onFailure和Never策略常用于批量任务

7 健康检查

应用程序有时候虽然是running状态,但是已经不能再提供服务了。如java应用OOM后
在这里插入图片描述

8 调度策略

8.1 pod创建过程

在这里插入图片描述
master节点:

  • 进入API Server把相关信息写入etcd中
  • scheduler模块监测到由新的pod创建后,通过etcd读取到创建的pod,读取之后通过特定的调度算法把pod调度某个node节点上。

node节点:

  • node通过kubelet先访问apiserver,读取etcd拿到pod,通过docker创建容器。

8.2 影响调度的属性

8.2.1 pod资源限制对pod调度的影响

会根据request的资源配置来选择有足够资源的node进行调度

8.2.2 节点选择器标签

在这里插入图片描述
表示把pod调度到开发环境中,需要首先给节点打标签

kubectl label node node1 env_role=prod

8.2.3 节点亲和性

在这里插入图片描述

8.2.4 污点和污点容忍

nodeSelector和nodeAffinity:Pod调度到某些节点上,Pod属性,调度时实现
Taint污点:是节点属性,节点用于特殊分配调度,如

  • 专用节点,如针对某些用户
  • 配置特点硬件节点,如固态硬盘
  • 基于Taint驱逐,如node1中加驱逐,都分配到node2中

查看节点污点情况
kubectl describe node k8smaster | grep Taint
Taints: node-role.kubernetes.io/master:NoSchedule
污点值有三个

  • NoSchedule:一定不被调度
  • PerferNoSchedule:尽量不被调度
  • NoExecute:不会调度,并且会驱逐已有的pod

为节点添加污点
kubectl taint node [node] key=value:污点三个值
在这里插入图片描述

删除节点污点
kubectl taint node k8snode1 env_role:NoSchedule-
在这里插入图片描述

污点容忍
假如某个节点存在污染但仍希望被可能调度,需要配置污点容忍
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值