Kubernetes 资源清单 常用字段,Pod 实例
2021-03-27 04:28
标签:冲突 字段 注意 apply sts ati 分类 memory template 一 集群资源分类 k8s 中所有的内容都抽象为资源,资源实例化之后叫做对象。 1.名称空间级别:仅在此名称空间下生效。 ① 工作负载型资源(workload):Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,CronJob( ReplicationController 在 v1.11 版本被废弃 ) ② 服务发现及负载均衡型资源(ServiceDiscovery LoadBalance ):Service,Ingress... ③ 配置与存储型资源:Volume( 存储卷 ),CSI(容器存储接口,可以扩展各种各样的第三方存储卷) ④ 特殊类型的存储卷:ConfigMap(当配置中来使用的资源那类型),Secret(保存敏感数据),DownwardAPI(把外部环境中的信息输出给容器) 2.集群级别:不管在什么名称空间下定义,在其他的名称空间中都能看的到。 例如:Namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding 3.元数据型 例如:HPA,PodTemplate,LimitRange 二 常用字段说明 1.必须存在的属性 2.spec 主要对象
3.额外的参数项 定义Pod重启策略,可以选择值为 Always、OnFailure,默认值为 Always。 1.Always:Pod一旦终止运行,则无论容器是如何终止的,kubelet 服务都将重启它。 2.OnFailure:只有 Pod 以非零退出码终止时,kubelet 才会重启该容器。如果容器正常结束(退出码为0),则 kubelet 将不会重启它。 3.Never:Pod 终止后,kubelet 将退出码报告给 Master,不会重启该 Pod 定义是否使用主机网络模式,默认值为 false。设置 true 表示使用宿主机网络,不使用 docker 网桥,同时设置了 true 将无法在同一台宿主机上启动第二个副本。
以上是 pod 常用的一些资源清单 属性信息,如果想查看更多,可以使用一下命令查看 4.创建 Pod 的资源模板 实例 创建 pod yaml文件 编写yaml 文件内容 测试启动 Pod Kubernetes 资源清单 常用字段,Pod 实例 标签:冲突 字段 注意 apply sts ati 分类 memory template 原文地址:https://www.cnblogs.com/gyli20170901/p/12612356.html
参数名
字段类型
说明
version
String
K8S API 的版本,目前基本是v1,可以用 kubectl api-version 命令查询
kind
String
这里指的是 yaml 文件定义的资源类型和角色, 比如: Pod
metadata
Object
元数据对象,固定值写 metadata
metadata.name
String
元数据对象的名字,这里由我们编写,比如命名Pod的名字
metadata.namespace
String
元数据对象的命名空间,由我们自身定义
Spec
Object
详细定义对象,固定值写Spec
spec.container[]
list
这里是Spec对象的容器列表定义,是个列表
spec.container[].name
String
这里定义容器的名字
spec.container[].image
String
这里定义要用到的镜像名称
参数名
字段类型
说明
spec.containers[].name
String
定义容器的名字
spec.containers[].image
String
定义要用到的镜像的名称
spec.containers[].imagePullPolicy
String
定义镜像拉取策略,有 Always,Never,IfNotPresent 三个值课选 (1)Always:意思是每次尝试重新拉取镜像 (2)Never:表示仅使用本地镜像 (3)IfNotPresent:如果本地有镜像就是用本地镜像,没有就拉取在线镜像。上面三个值都没设置的话,默认是 Always.
spec.containers[].command[]
List
指定容器启动命令,因为是数组可以指定多个,不指定则使用镜像打包时使用的启动命令。
spec.containers[].args[]
List
指定容器启动命令参数,因为是数组可以指定多个。
spec.containers[].workingDir
String
指定容器的工作目录
spec.containers[].volumeMounts[]
List
指定容器内部的存储卷配置
spec.containers[].volumeMounts[].name
String
指定可以被容器挂载的存储卷的名称
spec.containers[].volumeMounts[].mountPath
String
指定可以被容器挂载的容器卷的路径
spec.containers[].volumeMounts[].readOnly
String
设置存储卷路径的读写模式,true 或者 false,默认为读写模式
spec.containers[].ports[]
List
指定容器需要用到的端口列表
spec.containers[].ports[].name
String
指定端口名称
spec.containers[].ports[].containerPort
String
指定容器需要监听的端口号
spec.containers[].ports.hostPort
String
指定容器所在主机需要监听的端口号,默认跟上面 containerPort 相同,注意设置了 hostPort 同一台主机无法启动该容器的相同副本(因为主机的端口号不能相同,这样会冲突)
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
指定 MEM 内存的限制,单位为 MIB,GIB
spec.containers[].resources.requests
Object
指定容器启动和调度室的限制设置
spec.containers[].resources.requests.cpu
String
CPU请求,单位为 core 数,容器启动时初始化可用数量
spec.containers[].resources.requests.memory
String
内存请求,单位为 MIB,GIB 容器启动的初始化可用数量
参数名
字段类型
说明
spec.restartPolicy
String
spec.nodeSelector
Object
定义 Node 的 Label 过滤标签,以 key:value 格式指定
spec.imagePullSecrets
Object
定义pull 镜像是使用 secret 名称,以 name:secretkey 格式指定
spec.hostNetwork
Boolean
#查看 pod 的模板属性
kubectl explain pod
#查看 pod 的 spec 模板中的属性
kubectl explain pod.spec
vim pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
version: v1
spec:
containers:
- name: app
image: hub.harbor.com/kubernetes-test/kubernetes-test:latest
kubectl apply -f pod.yaml
#查看 pod 是否启动成功
kubectl get pod
文章标题:Kubernetes 资源清单 常用字段,Pod 实例
文章链接:http://soscw.com/index.php/essay/68427.html