资讯专栏INFORMATION COLUMN

K8S Pod模板介绍和使用

白马啸西风 / 596人阅读

在Docker中,容器是最小的处理单元,增删改查的对象是容器,容器是一种虚拟化技术,容器之间是隔离的,隔离是基于Linux Namespace 实现的。而在Kubernetes中,Pod包含一个或者多个相关的容器,Pod可以认为是容器的一种延伸扩展,一个Pod也是一个隔离体,而Pod内部包含的一组容器又是共享的(包括PID、Network、IPC、UTS)除此之外,Pod中的容器可以访问共同的数据卷来实现文件系统的共享。

apiVersion: v1                   # 指定api版本,此值必须在kubectl apiversion中
kind: Pod                        # 指定创建资源的角色/类型
metadata:                        # 资源的元数据/属性
  name: web01-pod                # 资源名字,在同一个namespace中必须唯一
  labels:                        # 设定资源的标签
    k8s-app: apache
    version: v1
    kubernetes.io/cluster-service: "true"
  annotainons:                   # 自定义注解列表
    - name: String               # 自定义注解名字
spec:                            # specification of the resource content 指定该资源的内容
  restartPolicy:  Always         # 表明该容器一直运行,默认k8s策略,在此容器退出后,会立即创建一个相同的容器
  nodeSelector:                  # 节点选择
    zone: node1
  containers:
  - name: web01-pod              # 容器的名字
    image: web:apache            # 容器使用的镜像地址
    imagePullPolicy: Never       # 容器启动时检查仓库的策略,Always每次都检查,Never从不检查(不管本地是否有),IfNotPresent,如果本地有就不检查,没有就拉取
    command: ['sh']              # 启动容器的运行命令,将覆盖容器的Entrypoint,对应Dockefile中的ENTRYPOINT
    args: ["$(str)"]             # 启动容器的命令参数,对应Dockerfile中的CMD参数
    env:                         # 指定容器中的环境变量
    - name: str                  # 变量的名字
      value: "/etc/run.sh"       # 变量的值
    resources:                   # 资源管理
      requests:                  # 容器运行时的最低资源需求
        cpu: 0.1                 # CPU资源(核数),最少值为0.001核(1m)
        memory: 32Mi             # 内存资源
      limits:                    # 资源限制
        cpu: 0.5
        memory: 32Mi
    ports:
    - containerPort: 80          # 容器开放对外的端口
      name: httpd                # 名称
      protocol: TCP
    livenessProbe:               # pod内容器健康检查的设置
      httpGet:                   # 通过httpget检查健康,200-399之间的容器正常
        path: /                  # URI地址
        port: 80
        #host: 127.0.0.1         # 主机地址
        scheme: HTTP
      initialDelaySeconds: 180   # 表明第一次检测在容器启动后多次时间后开始
      timeoutSeconds: 5          # 检测的超时时间
      periodSeconds: 15          # 检查间隔时间
      
      #方法2
      #exec: 执行命令的发法进行监测,如果其退出码不为0,则认为容器正常
      #command:
        #- cat
        #- /tmp/health
      
      #方法3
      #tcpSocket: //通过tcpSocket检查健康
        #port: number
    lifecycle:                  # 声明周期管理
      postStart:                # 容器创建之后,运行之前运行的任务
        exec:
          command:
            - 'sh'
            - 'yum upgrade -y'
      preStop:                  # 容器关闭之前运行的任务
        exec:
          command: ['service httpd stop']
    volumeMounts:               # 永久存储挂载
    - name: volume              # 挂载设备名字,与volumes[*].name 需要对应
      mountPath: /data          # 挂载到容器的某个路径下
      readOnly: True
    volumes:                    # 定义一组挂载设备
    - name: volume              # 定义一个挂载设备的名字
      #meptyDir:{}
      hostPath:
        path:/opt               # 挂载设备类型为hostpath,路径为宿主下的/opt


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128143.html

相关文章

  • 一个网站的微服务架构实战(2)k8s迁移

    摘要:前言我们一起回顾上一篇文章平台的微服务架构和,一共通过构建了三个镜像数据库,部署前端页面的,和接口。最近阿里云产品春节大促销,我一时没忍住又买了一台服务器,打完折扣还是很贵。是一个非常稳定的,可移植的网络文件系统。 前言 我们一起回顾上一篇文章《Bees平台的微服务架构(1)docker和docker-compose》,一共通过Dockerfile构建了三个docker镜像:mysql...

    Forelax 评论0 收藏0
  • 一个网站的微服务架构实战(2)k8s迁移

    摘要:前言我们一起回顾上一篇文章平台的微服务架构和,一共通过构建了三个镜像数据库,部署前端页面的,和接口。最近阿里云产品春节大促销,我一时没忍住又买了一台服务器,打完折扣还是很贵。是一个非常稳定的,可移植的网络文件系统。 前言 我们一起回顾上一篇文章《Bees平台的微服务架构(1)docker和docker-compose》,一共通过Dockerfile构建了三个docker镜像:mysql...

    avwu 评论0 收藏0
  • 使用 Kubernetes 部署一个记事本项目

    摘要:简称,是在年发布的一个开源项目。网络要能够通信,必须部署网络,是其中一个可选方案。最常使用,可以管理多个副本,并确保按照期望的状态运行,底层调用。用于每个最多只运行一个副本的场景。 Kubernetes 简称 k8s,是 google 在 2014 年发布的一个开源项目。 Kubernetes 解决了哪些问题? 真实的生产环境应用会包含多个容器,而这些容器还很可能会跨越多个服务器主机部...

    null1145 评论0 收藏0
  • 【容器云 UK8S】最佳实践:基于Jenkins的CI/CD实践

    摘要:扩展性好当集群的资源严重不足而导致排队等待时,可以很容易的添加一个到集群中,从而实现扩展。用法,选择尽可能使用这个节点镜像,填写,这个容器镜像是我们的运行环境。更新文件,这里我们只是将中的镜像更换成最新构建出的镜像。基于Jenkins的CI/CD实践[TOC]一、概要提到K8S环境下的CI/CD,可以使用的工具有很多,比如Jenkins、Gitlab CI、新兴的drone等,考虑到大多公司...

    Tecode 评论0 收藏0
  • k8s 使用配合Jenkins CICD 方案

    摘要:使用配合方案环境描述为集群主节点,保证你的集群里与已经安装了编译打包就不叙述了,主要流程就是编译打包镜像上传镜像到私服使用拷贝模板文件到集群主节点更改模板文件,,图片上传中下图为配置中心配置替换图中图片上传中 k8s 使用配合Jenkins CICD 方案 环境描述: 192.168.0.63为k8s集群主节点,保证你的集群里dns与ingress已经安装了 编译打包就不叙述了,主要流...

    elliott_hu 评论0 收藏0
  • 构建与定制:唯品会 PaaS 基于 Kubernetes 的实践

    摘要:基于年底或年初没有推广的现状,唯品会部门目前已经做了两年的时间。唯品会现状唯品会目前线上有一千多个域,每个域之间相互的依赖比较复杂,每次的部署发布困难。这是唯品会的架构,主要包含持续集成和持续部署。 数人云上海&深圳两地容器之Mesos/K8S/Swarm三国演义的嘉宾精彩实录第三更来啦。唯品会是数人云Meetup的老朋友,去年曾做过RPC服务框架和Mesos容器化的分享。本次分享中,...

    JackJiang 评论0 收藏0

发表评论

0条评论

白马啸西风

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<