5Kubernetes入门基础之Pod
北京那个医院治疗白癜风 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
- 上一篇文章: 工具篇kalilinux中docker
- 下一篇文章: 没有了