随笔分类 - Kubernetes-K8s
30、k8s-service类型-ClusterIP(默认值、属于Cluster IP类型的)-分配的IP只能在集群内部访问
摘要:实验:实验Deployment控制器创建三个pod、pod里面创建nginx、pod暴露80端口、再创建一个service服务来对pod里的nginx进行访问(service切换不同的类型) 1、部署deployment和pod 1、先准备deployment下的pod ·创建yaml文件:vim
29、k8s-service的类型-四种-ClusterIP、NodePort、LoadBalancer、ExternalName
摘要:service的资源清单 vim service.yaml apiVersion: v1 kind: Service metadata: name: sevice namespace: dev spec: selector: #标签选择器、用于确定当前service代理哪些pod app: ngin
28、k8s-service-简介-kube-proxy-ipvs
摘要:概念:在kubernetes中、pod是应用程序的载体、我们可以通过pod的ip来访问应用程序、但是pod的ip地址是不固定的、这也就意味着不方便直接采用pod的ip对服务进行访问 为了解决这个问题、kubernetes提供了service资源、service会对提供同一个服务的多个pod进行聚合、
27、k8s-pod的控制器-第六种-CronJob(CJ)-定时执行Job任务(控制job控制器)
摘要:概念:CronJob控制器以Job控制器资源为其管控对象、并借助它管理pod资源对象、Job控制器定义的作业任务在其控制器资源创建之后便会立即执行、 但CronJob可以以类似于linux操作系统的周期性任务作业计划的方式控制其运行的 时间点 及 重复运行的方式、也就是说、CronJob可以在特定的
26、k8s-pod的控制器-第五种控制器-Job-处理一次性任务的pod
摘要:概念:Job主要用于负责批量处理(一次要处理指定数量的任务)短暂的一次性(每个任务仅运行一次就结束)的任务 Job特点: ·当Job创建的pod执行成功时、Job将记录成功结束的pod数量 ·当成功结束的pod达到指定的数量时、Job将完成执行 Job的资源清单文件: vim job.yaml ap
25、k8s-pod的控制器-第四种-DaemonSet(DS)-有几个node就自动创建几个pod
摘要:概念:DaemonSet类型的控制器可以保证集群中的每一台(或指定)节点上都运行一个副本、一般适用于日志收集、节点监控场景等、也就是说、如果一个pod 提供的功能是节点级别的(每个节点都需要且只需要一个)、那么这类pod就适合使用DaemonSet类型的控制器创建 DaemonSet的特点: ·每当
24、k8s-pod的控制器-第三种-HPA(Horizontal Pod Autoscaler)-自动调整pod的数量
摘要:监测pod的使用情况来做调整 概念:HPA可以获取每个pod的利用率、然后和HPA中定义的指标(如cpu、内存等使用情况)进行对比、同时计算出需要伸缩的具体值、最后实现pod数量的调整、其实HPA与之前的Deployment 控制器一样、也属于一种kubernetes资源对象、它通过追踪分析目标po
23、k8s-pod的控制器-第二种-Deployment(Deploy)-pod的增减(edit、scale)-更新(set镜像)策略(pod重建更新、滚动更新)-rs版本回退(--record)-金丝雀发布(pause、resume)
摘要:概念:Deployment控制器是在Replicaset基础上衍生而来的、Deployment是通过控制Replicaset来间接管理pod的、所以Deployment的功能比Replicaset强大、也常用 Deployment的功能: ·支持Replicaset的所有功能 ·支持发布的停止、继续
22、k8s-pod的控制器-第一种-ReplicaSet(RS)
摘要:作用:ReplicaSet的主要作用是保证一定数量的pod能够正常的运行、他会: ·持续监听这些pod的运行状态、一旦发生故障、就会重启或重建、 ·同时它还支持对pod数量的扩容、缩减pod和版本镜像的 升级 1、创建Rs:新建文件 apiVersion: apps/v1 kind: Replica
20、k8s-污点(Taints)--针对node设置和容忍(Toleration)--针对pod设置
摘要:污点(Taints): ·前面的调度方式都是站在pod上添加属性、来确定pod是否要调整到指定的Node上、其实我们也可以站在Node的角度上、通过添加污点属性、来决定是否允许pod调度过来 ·Node被设置上污点后就和pod之间存在了一种相斥的关系、进而拒绝pod调度进来、甚至可以将已存在的pod
19、k8s-pod调度-自动调度、定向调度、亲和性调度
摘要:概念:在默认请款下、一个pod在哪个节点上运行、是由Scheduler组件采用相应的算法计算出来的、这个过程是不受人为控制的。 kubernetes提供了四种调度方式: ·自动调度:由Scheduler来计算pod运行在哪个节点上(默认的) ·定向调度:由人为定义的NodeName、NodeSele
18、k8s-pod的生命周期-重启策略(Always、OnFailure、Nerver)
摘要:实例:容器如果探测、获取不到http地址的话、让容器不再尝试重启(Nerver) 1、新建yaml文件:vim pod-restartpolicy.yaml apiVersion: v1 kind: Pod metadata: name: pod-restartpolicy namespace: d
17、k8s-pod的生命周期-主容器-容器探测(livenessProbe-存活性探针、readinessProbe就绪性探针)
摘要:概念: 上面的两种探针目前均支持三种探测方式: ·Exec命令:在容器内执行一次命令、如果命令执行的退出码为0、则人为程序正常、否则不正常 ........ livenessProbe: exec: command: - cat - /tmp/health ........ 实例 1、创建yaml文
16、k8s-pod的生命周期-主容器-钩子函数(postStart-容器启动时执行、perStop-容器暂停前执行)命令
摘要:概念:kubernetes再主容器的启动之后核停止之前提供了两个钩子函数: ·post start:容器创建之后执行、如果失败了会重启容器 ·per stop:容器终止之前执行、执行完成之后容器将成功终止、在其完成之前会堵塞删除容器的操作 钩子处理 器支持使用下面三种方式定义动作: ·Exec命令:
15、k8s-pod的生命周期-pod的创建、初始化容器、运行主容器、pod终止
摘要:概念:一边将pod对象从创建到pod的终止过程的这段时间称为pod的生命周期、主要有4个过程: ·pod的创建 ·运行初始化容器(init container)过程 ·运行主容器(mian container)过程 ··容器启动后钩子(post start)、容器终止前钩子(pre stop) ··
14、k8s-pod资源-pod下的spec:containers属性
摘要:使用命令查看containers的可选项:kubectl explain pod.spec.containers 1、kubectl explain pod.spec.containers KIND: Pod VERSION: v1 containers <[]Object> #数组,代表可以有多个
k8s-删除资源-pod或者ns时一直卡住-强制删除
摘要:删除pod 1、强制删除pod:kubectl delete pod nginx0-64777cd554-d28k4 -ndev --force --grace-period=0#--force --grace-period=0 为强制删除命令
13、k8s-pod模块-pod结构-pod的yaml属性
摘要:每个pod中都可以包含一个或多个容器、这些容器可以分为两类: ·用户程序所在的容器、数量可多可少 ·pause容器,这是每个pod都会有的一个根容器、它的作用有两个: ·可以以它为依据、评估整个pod的健康状态 ·可以在根容器上设置ip地址,其它容器都以此IP(pod ip) 来实现pod内部的网络
12、k8s-资源-server-pod里面的服务
摘要:注意:pod在建立的时候会、每一个pod都会分配一个单独的pod IP 、然而却存在如下问题: ·pod IP 会随着新的pod的重建而发生变化 ·pod IP 仅仅是集群内可见的虚拟IP,外部无法去访问 这样对于访问pod里的服务就备隔离开了、因此、kubernetes设计了service来解决这