容器技术
ubuntu使用APT安装docker并指定版本
Helm部署与使用
Helm常用命令
从Helm仓库创建应用流程示例
Helm部署与使用
K8S中部署mysql-ha高可用集群
helm启动mysql-ha
helm几个常用仓库
Kubernetes使用helm部署Mysql-Ha
k8s入门:Helm 构建 MySQL
docker批量修改tag(批量push)
k8s之yaml文件详解
将 MySQL 通过 bitpoke/mysql-operator 部署到 k8s 内部
k8s pvc扩容:pvc创建后扩容
K8S性能分析
部署Metrics Server
Kubernetes集群搭建
kubespray 部署常见问题和优化汇总
kubernetes-sigs/kubespray at release-2.15
K8S-pod配置文件详解
KubeSphere知识库
在 Kubernetes 上最小化安装 KubeSphere
卸载 KubeSphere 和 Kubernetes
KubeSphere 应用商店
修改pod中容器的时区
k8s之Pod安全策略
Harbor 登陆失败,用户名或者密码不正确。405 Not Allowed
Docker-leanote_n1
kubesphere/kubekey
Kubernetes Static Pod (静态Pod)
kubernets kube-proxy的代理 iptables和ipvs - 30岁再次出发 - 博客园
k8s生产实践之获取客户端真实IP - SSgeek - 博客园
kube-proxy ip-tables故障解决
k8s入门:Helm 构建 MySQL
docker批量修改tag(批量push)
prometheus operator 监控redis-exporter
Helm3 安装 ElasticSearch & Kibana 7.x 版本
kubernete强力删除namespace_redis删除namespace命令
EFK (Elasticsearch + Fluentd + Kibana) 日志分析系统
k8s日志收集实战(无坑)
fluentd收集k8s集群pod日志
Elasticsearch+Fluentd+Kibana 日志收集系统的搭建
TKE/EKS之configmap,secret只读挂载
K8s基于Reloader的ConfigMap/Secret热更新
使用 Reloader 实现热部署_k8s reloader
k8s使用Reloader实现更新configmap后自动重启pod
在 Kubernetes 上对 gRPC 服务器进行健康检查 | Kubernetes
Kubernetes ( k8s ) gRPC服务 健康检查 ( livenessProbe ) 与 就绪检查 ( readinessProbe )
排查kubernetes中高磁盘占用pod
helm 安装 MongoDB 集群
helm 安装 Redis 1 主 2 从 3哨兵
【k8s】使用 Reloader 实现热部署
k8s证书过期,更新后kubelet启动失败
kubeadm证书/etcd证书过期处理
三种监控 Kubernetes 集群证书过期方案
K8s 集群(kubeadm) CA 证书过期解决方案
k8s调度、污点、容忍、不可调度、排水、数据卷挂载
5分钟搞懂K8S的污点和容忍度(理论+实战)
Kubernetes进阶-8基于Istio实现微服务治理
macvlan案例配置
快速解决Dockerhub镜像站无法访问问题
info_scan开源漏洞扫描主系统部署
本文档使用 MrDoc 发布
-
+
首页
K8S-pod配置文件详解
Pod是Kubernetes的最重要也是最基本的概念,每个Pod 都有个特殊被称为“根容器”的 Pause 容器 ,除了 Pause 容器,每个 Pod 还包含 一个或多个紧密相关的用户业务容器。下面为一个pod配置文件示例: ``` apiVersion : vl kind: Pod metadata : name : string namespace: string labels: - name: string annotations: - name: string spec: containers : - name : stri且q image : string imagePullPolicy:[Always I Never I IfNotPresent] command : [string] args: [string] workingDir: string volumeMounts: - name: string mountPath: string readOnly: boolean ports: - name: string containerPort: int hostPort : int protocol : string env: - name: string value : string resources : limits: cpu : string memory : string requests : cpu: string memory : str ng livenessProbe: exec: command: [string] httpGet: path: string port umber host: string scheme: string httpHeaders: - name: string value: string tcpSocket: port : number initialDelaySeconds : 0 timeoutSeconds: 0 periodSeconds: 0 successThreshold: 0 failureThreshold : 0 securityContext : privileged: false restartPolicy: [Always I Never I OnFailure] nodeSelector: object imagePullSecrets : - name: string hostNetwork : false volumes: - name : string emptyDir : {} hostPath : path : string secret : secretName : string items: - key : string path: string configMap: name: string items : - key : string path: string ``` 解析格式:编码:取值类型:是否必选:取值说明 **version**:String:必选:版本号,例如v1 **kind**:String:必选:pod **metadata**:String:必选:元数据 **metadata.namespace**:String:必选:pod的名称,命名规范需要符合RFC 1035规范 **metadata.lables\[\]**:List:非必选:自定义标签列表 **metadata.annotation\[\]**:List:非必选:自定义注解列表 **Spec**:Object:必选:pod中容器的详细定义 **spec.containers\[\]**:List:必选:Pod中的容器列表 **spec.containers\[\].name**:String:必选:容器的名称,需符合RFC 1035规范 **spec.containers\[\].image**:String:必选:容器的镜像名称 **spec.containers\[\].imagePullPolicy**:String:非必选:获取镜像的策略,可选值包括: Always,Never,IfNotPresent ,默认值为 Always Always 表示每次都尝试重新下载镜像; IfNotPresent 表示如果本地有该镜像,则使用本地[安卓](https://www.fgba.net/)的镜像,本地不存在时下载镜像; Never 表示仅使用本地镜像; **spec.containers\[\].command\[\]**:List:非必选:容器的启动命令,如果不指定,则使用镜像打包时使用的启动命令 **spec.containers\[\].args\[\]**:List:非必选:容器的启动命令参数列表 **spec.containers\[\].workingDir**:String:非必选:容器的工作目录 **spec.containers\[\].volumeMounts\[\]**:List:非必选:挂载到容梅内部的存储卷配置 **spec.containers\[\].volumeMounts\[\].name**:String:非必选:引用 Pod 定义的共享存储卷的名称,需使用volumes\[\]部分定义的共享存储卷名称 **spec.containers\[\].volumeMounts\[\].mountPath**:String:非必选:存储卷在容器内 Mount 绝对路径,应少于 12个字符 **spec.containers\[\].volumeMounts\[\].readOnly**:Boolean:非必选:是否为只读模式,默认值为读写模式 **spec.containers\[\].ports\[\]**:List:非必选:容器需要暴露的端口号列表 **spec.containers\[\].ports\[\].name**:String:非必选:端口名称 **spec.containers\[\].ports\[\].containerPort**:String:非必选:容器挥自要监听的端口号 **spec containers\[\].ports\[\] .hostPort**:String:非必选:容器所在主机需要监听的端口号,默认与containerPort 相同。设置 hostPort 时,同台宿主机将无法启动该容器的第2份副本 **spec.containers\[\].ports\[\].protocol**:String:非必选:端口协议,支持 TCP/UDP ,默认值为 TCP **spec.containers\[\] .env\[\]**:List:非必选:容器运行前需设置的环境变量列表 **spec.containers\[\].env\[\].name**:String:非必选:环境变盘的名称 **spec.containers\[\].env\[\].value**:String:非必选:环填变量的值 **spec.containers\[\].resources**:Object:非必选:资源限制和资源请求的设置 **spec.containers\[\].resources.limits**:Object:非必选:资源限制的设置 **spec.containers\[\] .resources.limits.cpu**:String:非必选:CPU 限制,单位为 core 数,将用 docker run --cpu- shares 参数 **spec.containers\[\].resources.limits.memory**:String:非必选:内存限制,单位可以为 MiB/GiB 等,将用于 docker run --memory 参数 **spec.containers\[\].resources.requests**:Object:非必选:资源限制的设置 **spec.containers\[\].resources.requests.cpu**:String:非必选:CPU 请求,单位为 core 数, 容器启动的初始可用数量 **spec.containers\[\] .resources.requests.memory**:String:非必选:内存请求,单位可以为 MiB/GiB 等,容器启动的初始可用数量 **spec.volumes\[\]**:List:非必选:在该 Pod 上定义的共享存储卷列表 **spec.volumes\[\].name**:String:非必选:共享存储卷的名称,在 Pod 中每个存储卷定义一个名称,应符合RFC 1035 规范。容器定义部分的 containers\[\].volumeMounts\[\].name 将引用该共享存储卷的名称。Volume 类型包括 emptyDir、 hostPathgce、PersistentDisk、awsElasticBlockStore、gitRepo、secret 、nfs 、iscsi 、glusterfs 、persistentVolumeClaim、rbd、flexVolume、cinder、cephfs、flecker 、downwardAPI、fc、azureFile、configMap、vsphereVolume,可以 定义多个 volume ,每个volume name 保持唯一 。 **spec.volumes\[\].emptyDir**:Object:非必选:类型为 emptyDir 的存储卷, 表示与 Pod 生命周期一个临时目录,其值为 个空对象: emptyDir: {} **spec. volumes\[\] .hostPath**:Object:非必选:类型为 hostPath 的存储卷,表示挂载 Pod 所在宿主机的目录,通过 volumes\[\]. hostPath.path 指定 **spec.volumes\[\].hostPath.path**:String:非必选:Pod 在主机的目录,将被用于容器中 mount的目录 **spec.volumes\[\].secret**:Object:非必选:类型为 secret 的存储,表示挂载集群预定义的secret 对象到容器内部 **spec.volumes\[\].configMap**:Object:非必选:类型为 configMap 的存储卷, 表示挂载集群预定义的 configMap 对象到容器内部 **spec.volumes\[\].livenessProbe**:Object:非必选:对Pod 内各容器健康检查的设置,当探测无响应几次之后,系统将自动启动该容器。可以设置的方法包括: exec httpGet tcpSocket。对一个容器仅需设置一种健康检查方法 **spec.volumes\[\].livenessProbe.exec**:Object:非必选:对Pod 内各容器健康检查的设置, exec 方式 **spec .volumes\[\] .livenessProbe.exec.command\[\]**:String:非必选:exec 方式需要指定的命令或者脚本 **spec.volumes\[\].livenessProbe.httpGet**:Object:非必选:对Pod 内各容器健康检查的设置, HTTPGet 方式.需指定 path、 port **spec.volumes\[\].livenessProbe.tcpSocket**:Object:非必选:对Pod 各容器健康检查的设置, tcpSocket 方式 **spec.volumes\[\] .livenssProbe.initialDelaySeconds**:Numeber:非必选:容器启动完成后进行首次探测的时间,单位为s **spec.volumes\[\] .livenessProbe.timeoutSeconds**:Numeber:非必选:对容器健康检查的探测等待响应的超时时间设置,单位为 s,默认值为1 s. 超过该超时时间设置,将认为该容器不健康,将重启该容器 **spec.volumes\[\] .livenessProbe.periodSeconds**:Numeber:非必选:对容器健康检查的定期探测时间设置,单位为 s,默认为10s探测一次 **spec.restartPolicy**:String:非必选:Pod 的重启策略,可选值为 Always,OnFailure,默认值为Always. Always: Pod 一旦终止运行,则无论容器是如何终止的, kubelet 都将将启它. OnFailure :只有 Pod 以非零退出码终止时, kubelet才会重启该容器.如果容器正常结束(退出码为0),则 kubelet 将不会重启它。 Never: Pod 终止后, kubelet将退出码报告给Master,不会再重启该Pod **spec.nodeSelector**:Object:非必选:设置 NodeSelector 表示将该 Pod 调度到包含这些 label的Node 上,以 key:value 格式指定 **spec.imagePullSecrets**:Object:非必选:Pull 镜像时使用的 secret 名称,以 name :sec retkkey格式指定 **spec.hostNetwork**:Boolean:非必选:是否使用主机网络模式,默认值为false ,如果设 置为true ,则表示容器使用宿主机网络,不再使用Docker 网桥,该 Pod 将无法在同一台宿主机上启动第2个副本
adouk
2023年2月13日 11:05
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码