kubernetes_02_资源清单_01_简介_20190918

1.kubernetes中的资源

kubernetes中所有的抽象内容(如模板、java中类等)为资源,资源实例化之后,叫做对象

以适用性范围来分类:集群资源分类:

1.1 名称空间级别(属于某个名称空间的资源 ):  default、kube-system、kube-public、kube-node-lease、ingress-nginx、monitoring 

1)工作负载资源(workload):Pod、ReplicaSet(--replicas)、Deployment、StatefulSet(有状态)、DaemonSet、Job、CronJob、ReplicationController(在v1.11版本以后被废除)

2)服务发现及负载均衡型资源(ServiceDiscovery LoadBalance): Sevice、Ingress

3)配置与存储型资源:Volume(存储卷)、CSI(容器存储接口,可以扩展各种第三方存储卷)

4)特殊类型的存储卷:ConfigMap(配置文件)、Secret(保存敏感数据)、DownwardAPI(外部信息输出给容器)

1.2 集群级别(跨名称空间): Namespace、Node、Role、ClusterRole、RoleBinding、ClusterRoleBinding

1.3 元数据型:HPA、PodTemplate、LimitRange(资源限制)

2.Yaml语法

3.yaml文件中,Pod常用字段解释

可使用explais一级一级进行查看:

kubectl explain pod

kubectl explain pod.spec

kubectl explain pod.spec.containers

Pod必须属性:

String version K8S API的版本,目前基本上是v1,可以用kubectl api-versions命令查询

String kind yaml文件定义的资源类型和角色

Object metadata 元数据对象,固定值就写metadata

String metadata.name 元数据对象的名字,这里由我们编写,比如命名Pod的名字

String metadata.namespace 元数据对象的命名空间,默认名称空间default

Obeject Spec 详细定义对象,固定值就写Spec

List spec.containers[] Spec对象的容器列表定义,是个list

String spec.containers[].name 定义容器的名字(可选属性)

String spec.containers[].image 定义用到的镜像名称

Pod可选属性

Strinag spec.restartPolicy Pod重启策略。Always、OnFailure、Never

Object spec.nodeSelector 选择节点运行,定义Node的Label过滤标签

Object spec.imagePullSecret pull镜像的secret名称。name:secretkey格式指定

Boolean spec.hostNetwork 是否使用主机网络模式,默认false。true:不使用docker网桥,使用宿主机node网络,同一台宿主机node则无法启动第二个Pod副本

String spec.containers[].imagePullPolicy 定义镜像的拉取策略,有Always(默认值)、Never、IfNotPresent三个值可选

(1)Always:每次都拉取镜像

(2)Never:表示仅使用本地镜像。没有就不用

(3)IfNotPresent:如果本地有镜像就使用本地镜像,没有就拉取在线镜像。

List spec.containers[].command[] 容器启动指令。因为是数组可以指定多个,不指定则使用镜像打包时使用的启动命令

List spec.containers[].args[] 指定容器启动指令参数,因为是数组可以指定多个

String spec.containers[].workingDir 指定容器的工作目录

spec.containers[].volumeMounts[] 指定容器内部的存储卷配置

List spec.containers[].ports[] 指定容器需要用到的端口列表

String spec.containers[].ports[].name 指定端口的名称

String spec.containers[].ports[].containerPort 指定容器需要监听的端口号

String spec.containers[].ports[].hostPort 指定容器所在主机需要监听的端口号,默认跟containerPort相同。

注意:设置了hostPort同一台主机无法启动该容器的相同副本(主机端口不能相同,相同则冲突)

String spec.containers[].ports[].protocol 指定端口协议,tcp/udp,默认TCP

List spec.containers[].env[] 指定容器运行前需要设置的环境变量列表

Object spec.containers[].resource 容器资源限制 request、limit

4.示例:

Example_001:

/root/yaml/001_pod_rs_deployment_svc/001_pod.yaml

注意:同一个pod内的多个容器共享一个网络栈,端口不能冲突

发布了16 篇原创文章 · 获赞 0 · 访问量 72

猜你喜欢

转载自blog.csdn.net/wuyuezhengbian/article/details/105003272
今日推荐