首页 > 其他分享 >部署K8S集群(五):配置文件之Pod配置文件

部署K8S集群(五):配置文件之Pod配置文件

时间:2024-09-11 22:35:19浏览次数:12  
标签:容器 name 配置文件 app api path Pod K8S

● Pod是Kubernets中的基本执行单位,可以包含一个或多个容器。
● Pod提供了容器间的网络和存储共享。

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  labels:
    app: my-app
spec:
  containers:
  # 容器1:web页面
    # 容器名称
  - name: web-container
    # 容器使用的镜像
    image: nginx:latest
    # 容器暴露的端口
    ports:
    - containerPort: 80
    - containerPort: 81
    # 容器资源限制
    resources:
      requests:
        memory: "512Mi"
        cpu: "500m"
      limits:
        memory: "1Gi"
        cpu: "1"
    # Pod的虚拟卷与容器内的目录挂载关系
    volumeMounts:
    - name: nginx-volume
      mountPath: /usr/share/nginx/html
    # 检查容器是否正常运行
    livenessProbe:
      httpGet:
        path: /healthz
        port: 80
      initialDelaySeconds: 30
      periodSeconds: 10
    # 检查容器是否准备好接受流量
    readinessProbe:
      httpGet:
        path: /readiness
        port: 80
      initialDelaySeconds: 10
      periodSeconds: 5
  # 容器2:api后台
    # 容器名称
  - name: api-container
    # 容器使用的镜像
    image: my-api:latest
    # 容器暴露的端口
    ports:
    - containerPort: 80
    - containerPort: 81
    # 容器资源限制
    resources:
      requests:
        memory: "512Mi"
        cpu: "500m"
      limits:
        memory: "1Gi"
        cpu: "1"
    # Pod的虚拟卷与容器内的目录挂载关系
    volumeMounts:
    - name: api_app_volume
      mountPath: /app
    - name: api_conf_volume
      mountPath: /app/Confs
    # 检查容器是否正常运行
    livenessProbe:
      httpGet:
        path: /healthz
        port: 80
      initialDelaySeconds: 30
      periodSeconds: 10
    # 检查容器是否准备好接受流量
    readinessProbe:
      httpGet:
        path: /readiness
        port: 80
      initialDelaySeconds: 10
      periodSeconds: 5
  # 主机中的目录与Pod内虚拟卷挂载关系
  volumes:
  - name: nginx-volume
    hostPath:
      path: /data/web
      type: DirectoryOrCreate
  - name: api_app_volume
    hostPath:
      path: /data/api/app
      type: DirectoryOrCreate
  - name: api_conf_volume
    hostPath:
      path: /data/api/conf
      type: DirectoryOrCreate
  • apiVersion:API版本
  • kind:资源类型
  • metadata:元数据,包含Pod名称和标签
  • spec:规范,定义Pod的容器、端口和卷
    • containers:容器列表,定义一个或多个容器
      • name:容器名称
      • image:容器使用的镜像
      • ports:容器暴露的端口
      • resources: 容器资源的最小需求和最大限制
      • livenessProbe: 检查容器是否正常运行
      • readinessProbe: 检查容器是否准备好接受流量
      • volumeMounts:卷挂载到容器的路径
    • volumes:Pod内部虚拟卷定义,以及与主机目录挂载关系定义
  1. 在一个Pod中如何运行多个容器?
    在containers节点下增加多个容器配置
  2. 如何进行容器健康检查?
    使用 livenessProbe 检查容器是否仍在运行。如果探针失败,k8s会重启容器。这个探针确保容器在出现问题时能够自动尝试恢复。
    使用 readinessProbe 检查容器是否准备好接收流量。如果探针失败,k8s会从服务的负载均衡池中移除容器,直到容器恢复正常。这个探针确保容器在其准备好处理请求之前不会接收流量。
  3. 如何将主机目录挂载到容器内?
    先在Pod中volumes节点定义虚拟卷,将主机目录挂载到虚拟卷;再在容器中volumeMounts节点使用虚拟卷,将虚拟卷挂载到容器内目录。

标签:容器,name,配置文件,app,api,path,Pod,K8S
From: https://www.cnblogs.com/Ar4te-blog/p/18409164

相关文章

  • Pod管理策略(资源清单文件)
    了解模板和帮助信息方法[root@master~]#kubectlcreateTab键#查找需要使用的相关子命令[root@master~]#bubectl子命令--help[root@master~]#kubectlcreate复制查找出来的信息--dry-run=client-oyaml#获取资源对象模板[root@master~]#kubectlexplainP......
  • k8s dashboard token 生成/获取
    创建示例用户在本指南中,我们将了解如何使用Kubernetes的服务帐户机制创建新用户、授予该用户管理员权限并使用与该用户绑定的承载令牌登录仪表板。对于以下每个和的代码片段ServiceAccount,ClusterRoleBinding您都应该将它们复制到新的清单文件(如)中,dashboard-adminuser.yaml并......
  • 结合GPT使用k8s部署awx-oprator
    这个错误表明你尝试添加的Helm仓库URL无法访问,或者index.yaml文件不存在,可能是AWXOperator的Helm仓库已经变更或不再支持这个URL。根据AWXOperator项目的最新文档,它不再使用Helm作为主要的安装方式,而是通过直接应用Kubernetes自定义资源(CRD)和Operator来安装......
  • k8s环境搭建
    1.创建主机,设置ip,hostname,firewalldselinux,Netmanage2.设置主机之间的ssh免密3.三个节点yum源配置1.docker2.k8s3.清空以及创建缓存yumcleanall&&yummakecache4.四个源镜像aliyun,epel,kubernetes,docker-ce4.三个节点主机映射5.三个节点安装常......
  • 《JavaEE进阶》----14.<SpringMVC配置文件实践之【验证码项目】>
    本篇博客介绍的是Google的开源项目Kaptcha来实现的验证码。这种是最简单的验证码。也是很常见的一种验证码。可以去看项目结果展示。就可以明白这个项目了。前言:随着安全性的要求越来越高、很多项目都使用了验证码。如今验证码的形式也是有许许多多、更复杂的图形验证码......
  • k8s如何部署服务
    在Kubernetes中,配置文件通常以YAML格式编写,用于定义各种资源,如Deployments、Services、Pods等。以下是一个简单的示例,展示了如何编写一个Deployment和一个Service的配置文件。1.Deployment配置文件deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:my-......
  • 使用kube-prometheus部署k8s监控---超详细(Kubernetes Deployment of Kubernetes Moni
    ......
  • 理论+实战了解kubernetes及pod管理
    一、kubernetes简介及部署方法1.1kubernetes介绍kubernetes是一个容器编排软件工具,除了它还有doker自带的容器编排工具Swarm、apche的一个资源统一管控工具mesos等kubernetes在Docker作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年Borg系统运行......
  • Nacos bootstrap配置文件中关于spring.application.name命名注意事项
    在写配置文件时,把bootstrap文件中的spring.application.name命名时单词之间使用了下划线来连接,结果在启动nacos时报错找不到配置文件一直请求的是本地的nacos,最后发现是在spring.application.name命名时如果使用连接符时必须使用中间的连接符。在官方文档中是这样说的:spring.ap......
  • day10-配置文件&日志&多线程
    一、配置文件1.1properties配置文件properties配置文件特点:1、都只能是键值对2、键不能重复3、文件后缀一般是.properties结尾的​Properties这是一个Map集合(键值对集合),但是我们一般不会当集合使用主要用来代表属性文件,通过Properties可以读写属性文件里的......