女人脸上长白癜风 http://pf.39.net/xwdt/150707/4651547.html0x00前言简述
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对象数据描述的信息
/p>
集群中运行了哪些容器化应用程序(以及在哪个节点上运行)
集群中对应用程序可用的资源
应用程序相关的策略定义,例如,重启策略、升级策略、容错策略
其他Kubernetes管理应用程序时所需要的信息
如何进行Kubernetes对象的CURD呢?
答:自带的kubectl命令或者一些管理k8s的图形化界面工具比如Kuboard或者Kubedash;
PS:kubectl、kuboard最终都通过调用kubernetesAPI来实现对Kubernetes对象的操作。您也可以直接在自己的程序中调用KubernetesAPI,此时您可能要有用到ClientLibraries
基础补充
/p>
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
od #VERSION:v1 #DESCRIPTION: # Podisacollectionofcontainersthatcanrunonahost.Thisresourceis # createdbyclientsandscheduledontohosts. #FIELDS: # apiVersionstring # APIVersiondefinestheversionedschemaofthisrepresentationofan # object.Serversshouldconvertrecognizedschemastothelatestinternal # value,andmayrejectunrecognizedvalues.Moreinfo: #