K8S:Pod资源管理

认识 Pod

Pod是Kubernetes的最基本操作单元,也是应用运行的载体,包含一个到多个密切相关的容器。整个Kubernetes系统都是围绕着Pod展开的,比如如何运行Pod、如何保证Pod的数量、如何访问Pod等。

特点:
·pod是对象;
最小的部署单元,最基本的管理单元;
一组容器的集合;(为便于管理,生产环境一般情况是放一个容器)
一个pod中的容器共享网络命名空间,相当于小型局域网;
pod是有生命周期的,所以是短暂的

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-exec
spec:
  containers:
  - name: liveness
    image: k8s.gcr.io/busybox
    args:
    - /bin/sh
    --c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 30
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5

定义文件中Pod的主要要素如下:
1)apiVersion:Kubernetes的API版本声明,目前是v1。
2)kind:API对象的类型声明,当前类型是Pod。
3)metadata:设置Pod的元数据。

■ name:指定Pod的名称,Pod名称必须在namespace内唯一,需符合RFC1035规范。
■ namespace:命名空间,不指定时将使用名为“default”的命名空间。
■ labels:自定义标签属性列表。
可根据需要对所创建的Pod自定义标签,再利用Service或者ReplicationController的Label Selector来选择自定义的Pod。
4)spec:配置Pod的详细描述。
■ containers:Pod中运行的容器列表,数组形式,每一项定义一个容器。
■ name:指定容器的名称,在Pod的定义中唯一。
■ image:设置容器镜像名,在Node上如果不存在该镜像,则Kubelet会先下载。
■ command:设置容器的执行命令。

Pod容器的分类

官方网站:https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1: infrastructure container 基础容器
维护整个Pod网络空间

查看容器的网络
# docker ps -a 
registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0

在kubelet配置文件中已经定义好了
# cat /opt/kubernetes/cfg/kubelet
--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0

基础容器跟着kubelet一起产生的
Kubelet创建好了之后 去提交申请给master,master同意证书许可颁发的时候,开始建基础容器,基础容器有了之后,在建初始化容器,加载完初始化容器,再加载业务容器

2:initcontainers 初始化容器
先于业务容器开始执行
在之前版本,初始化容器与业务容器是并行开启的,现在进行了改进
3:container 业务容器
业务容器就是真正提供服务的
app容器就是业务容器
apply和create都可以创建资源,不过 apply还可以更新资源

镜像拉取策略(image PullPolicy)

Pod被分配到Node之后会根据镜像下载策略进行镜像下载,因此,用户可以根据自身集群的特点来决定采用何种下载策略。无论何种策略,都要确保Node上有正确的镜像可用。

有以下3种:
IfNotPresent: 默认值,镜像在本地没有的时候才下载镜像。
Always: 每次创建Pod都会重新拉取一次镜像,每次都下载最新的镜像。
Never: Pod永远不会主动拉取这个镜像,只使用本地镜像,从不下载。

示例:

# vim pod1.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: nginx
      image: nginx
      imagePullPolicy: Always
定义镜像拉取策略为Always

定义了镜像拉取策略是Always,也就是说,每次创建Pod都会重新拉取一次镜像
在这里插入图片描述

创建启动pod
# kubectl create -f pod1.yam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值