北京那个医院治疗白癜风 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/

0x00前言简述

0x01资源清单

(1)对象字段

apiVersion-必须

kind-必须

metadata-必须

Annotation-注解

spec-必须

0x02NameSpace-名称空间

namespace创建查看

namespace配额

0x03Pod基础进阶

?(1)PodTemplateController

(2)StaticPod(静态)

(3)Pod生命周期?

PodPhase

Pod重启策略

PodInit容器

Pod容器探针

PodHook

0x00前言简述

前面简单的介绍了Kubernetes基础知识以及单节点和高可以用集群的搭建,本章将从实操来介绍Kubernetes概念和术语以及控制器,便于各位读者进行学习;

0x01资源清单

Q:什么是资源?

答:K8s中所有的内容都抽象为资源在资源实例化(容器被执行)之后叫做对象;

Q:什么是Kubernetes对象?

答:Kubernetes对象指的是Kubernetes系统的持久化实体,所有这些对象合起来代表了你集群的实际情况。创建一个k8s对象就是告诉Kubernetes,您需要的集群中的工作负载是什么(集群的目标状态),因为一个Kubernetes对象代表着用户的一个意图(arecordofintent),一旦您创建了一个Kubernetes对象,Kubernetes将持续工作以尽量实现此用户的意图。

常规的应用里我们把应用程序的数据存储在数据库中,Kubernetes将其数据以Kubernetes对象的形式通过apiserver存储在etcd中;Kubernetes对象数据描述的信息:

集群中运行了哪些容器化应用程序(以及在哪个节点上运行)

集群中对应用程序可用的资源

应用程序相关的策略定义,例如,重启策略、升级策略、容错策略

其他Kubernetes管理应用程序时所需要的信息

如何进行Kubernetes对象的CURD呢?

答:自带的kubectl命令或者一些管理k8s的图形化界面工具比如Kuboard或者Kubedash;

PS:kubectl、kuboard最终都通过调用kubernetesAPI来实现对Kubernetes对象的操作。您也可以直接在自己的程序中调用KubernetesAPI,此时您可能要有用到ClientLibraries

基础补充:

1.名称空间级别资源(NamespaceLevel):仅在此名称空间下生效k8s的系统组件是默认放在kube-system名称空间下的,而kubectlgetpod等价于kubectlgetpod-ndefault,因此查看不到k8s的系统组件。

工作负载型资源(workload):Pod、ReplicaSet(调度器控制器通过标签保证Pod的副本数以及创建Pod)、Deployment、StatefulSet(有状态服务的控制器)、DaemonSet(可以在每个节点都运行一个Pod的组件)、Job、CronJob(ReplicationController在v1.11版本被废弃)

服务发现及负载均衡型资源(ServiceDiscoveryLoadBalance):Service、Ingress、...

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

特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型可以达到热更新)、Secret(保存敏感数据)、DownwardAPI(把外部环境中的信息输出给容器)

2.集群级资源:不管在任何名称空间下定义,在其他的名称空间下都能看得到,在定义的时候无需指定名称空间

Namespace、Node、Role、ClusterRole、RoleBinding、ClusterRoleBinding

3.元数据型资源:提供一个指标,不像是名称空间类型又不像集群级别,本质上更像是在两者之间,但是它有自己的特点,所以更应该作为一个单独的分类,例如HPA就是一个很明显的元数据类型,通过指标进行操作。

HPA、PodTemplate、LimitRange(根据指标进行相对应的操作)

Q:什么是资源清单?

答:您可以将其理解为剧本,里面规定了每一步如何操作,Kubernets只需要按照要求去做即可;在K8s中一般使用Yaml格式或者Json格式的文件来创建符合我们预期期望的Pod,该yaml文件我们称为资源清单;

Q:如何编辑资源清单?

答:在编写清单时候必须对Kubernetes定义Pod以及控制器(Controller)的常用字段有一定的了解,如果忘记对象的资源清单字段可以通过explain命令查看相对应的控制清单编写字段;

资源清单编写帮助:获取资源的apiVersion的版本信息(以pod为例),该命令同时输出属性设置帮助文档

kubectlexplainpod  #KIND:Pod  #VERSION:v1  #DESCRIPTION:  #    Podisacollectionofcontainersthatcanrunonahost.Thisresourceis  #    createdbyclientsandscheduledontohosts.  #FIELDS:  #  apiVersionstring  #    APIVersiondefinestheversionedschemaofthisrepresentationofan  #    object.Serversshouldconvertrecognizedschemastothelatestinternal  #    value,andmayrejectunrecognizedvalues.Moreinfo:  #    



转载请注明地址:http://www.tanhuaa.com/gjth/7870.html