spec

kubernetes 的pod控制器

孤人 提交于 2019-11-29 03:52:13
转载于网络 pod是kubernetes的最小单元,自主式创建的pod删除就没有了,但是通过资源控制器创建的pod如果删除还会重建。pod控制器就是用于实现代替我们去管理pod的中间层,并帮我们确保每一个pod资源处于我们所定义或者所期望的目标状态,pod资源出现故障首先要重启容器,如果一直重启有问题的话会基于某种策略重新编排。自动适应期望pod数量 pod控制器类型简介:   1.ReplicaSet:     代用户创建指定数量的pod副本数量,确保pod副本数量符合用户期望的数量状态,如果少了多退少补,并且支持滚动式自动扩容和缩容机制。     ReplicaSet主要三个组件组成:         (1)用户期望的pod副本数量          (2)标签选择器,判断哪个pod归自己管理          (3)pod资源模板(当现存的pod数量不足,会根据pod资源模板进行新建帮助用户管理无状态的pod资源,精确反应用户定义的目标数量。不直接使用)   Deployment: (无状态,守护进程类,只关注群体不关注个体)     工作在ReplicaSet之上,用于管理无状态应用,目前来说最好的控制器。支持滚动更新和回滚功能,还提供声明式配置。(pod数量和node没有精确的配比,没有一对一的关系)   DaemonSet:(无状态,守护进程类,只关注群体不关注个体)

kubernetes资源类别介绍

本小妞迷上赌 提交于 2019-11-29 03:12:52
类别 名称 资源对象 Pod、ReplicaSet、ReplicationController、Deployment、StatefulSet、DaemonSet、Job、CronJob、HorizontalPodAutoscaling 配置对象 Node、Namespace、Service、Secret、ConfigMap、Ingress、Label、ThirdPartyResource、 ServiceAccount 存储对象 Volume、Persistent Volume 策略对象 SecurityContext、ResourceQuota、LimitRange pod状态介绍 1、pending(挂起) 例如没有适合的节点运行pod 2、running (运行) 3、fAILED (失败) 4、Succeeded(成功) 5、Unknown (例如kubelet挂了) 创建Pod经历阶段 apiservice -> etcd -> statefulset(调度) -> node节点 Pod生命周期的重要行为: 1、初始化容器 2、容器探测: 1、liveness 探测容器是否处于存活状态 2、readiness 容器中的程序是否正常提供服务 pod重启策略 restartPolicy 1、Always 总是重启 (默认策略) 2、OnFailure 状态错误时重启 3

k8s pod 详述

半世苍凉 提交于 2019-11-29 03:06:21
Kubernetes |Pod 深入理解与实践 这篇文章参考自《Kubernete权威指南》,对其中的相关章节做了一些总结,从下面十个点对pod进行深入讲解,也会有些配置的实例,希望对大家学习kubernetes带来些许帮助。 1pod定义详解 2pod到底是什么 3静态pod 4pod容器共享volume 5pod的配置管理 6pod的生命周期和重启策略 7pod健康检查 8玩转pod调度 9pod的扩容和缩容 10pod的滚动升级 1pod定义详解 下面是一个完整的yaml格式定义的文件,注意格式,子集包含关系,不要有tab,要用空格。不是所有的元素都要写,按照实际应用场景配置即可。 apiVersion: v1 //版本 kind: pod //类型,pod metadata: //元数据 name: String //元数据,pod的名字 namespace: String //元数据,pod的命名空间 labels: //元数据,标签列表 - name: String //元数据,标签的名字 annotations: //元数据,自定义注解列表 - name: String //元数据,自定义注解名字 spec: //pod中容器的详细定义 containers: //pod中的容器列表,可以有多个容器 - name: String image: String /

9、kubernetes之statefulset控制器

元气小坏坏 提交于 2019-11-28 20:54:26
一、StatefulSet 有状态副本集 必要的三个组件:headless service、StatefulSet、volumeClaimTemplate 准备pv apiVersion: v1 kind: PersistentVolume metadata: name: pv001 labels: name: pv001 spec: nfs: path: /data/volumes/v1 server: 192.168.100.1 accessModes: ["ReadWriteOnce"] capacity: storage: 5Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: pv002 labels: name: pv002 spec: nfs: path: /data/volumes/v2 server: 192.168.100.1 accessModes: ["ReadWriteOnce"] capacity: storage: 5Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: pv003 labels: name: pv003 spec: nfs: path: /data/volumes/v3 server: 192.168

Ubuntu部署Kubernetes集群记录

痞子三分冷 提交于 2019-11-28 20:11:59
Master节点: 1 . 关闭防火墙 // 关闭防火墙 sudo ufw disable 2 . 关闭swap并重新加载配置 sudo swapoff -a sudo sysctl -p sudo sysctl --system 3 . 设置机器名称,用于在集群中显示,以便分辨机器 sudo hostnamectl set-hostname 主机名 4 . 安装kubeadm、kubectl、kubelet apt-get update # add aliyun resource curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg| apt-key add - cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF apt-get update # default is latest version apt-get install -y kubelet kubeadm kubectl 5 . 安装docker 安装方式参考: https://blog.csdn.net/nickDaDa/article

Kubernetes 动态PV使用

蹲街弑〆低调 提交于 2019-11-28 19:47:50
Kubernetes 动态PV使用 Kubernetes支持动态供给的存储插件: https://kubernetes.io/docs/concepts/storage/storage-classes/ Dynamic Provisioning机制工作的核心在于StorageClass的API对象。 StorageClass声明存储插件,用于自动创建PV。 创建动态PVStorageClass 1、创建storageclass相关文件 1.1、vim storageclass-nfs.yaml:标识插件创建storageclass名称 apiVersion: storage.k8s.io/v1beta1 kind: StorageClass metadata: # StorageClass名称 name: managed-nfs-storage # 默认不支持nfs存储,添加支持web插件标识 provisioner: fuseim.pri/ifs 1.2、vim deployment-nfs.yaml:创建nfs相关存储指定服务名称 apiVersion: apps/v1beta1 kind: Deployment metadata: name: nfs-client-provisioner spec: replicas: 1 strategy: type: Recreate

(四)Kubernetes 资源清单定义

久未见 提交于 2019-11-28 13:06:54
Kubernetes常用资源对象 依据资源的主要功能作为分类标准, Kubernetes 的 API 对象大体可分为五个类别,如下: 类型 名称 工作负载(Workload) Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、Cronjob 负载均衡(Discovery &LB) Service、Ingress 配置和存储(Config&Storage) Volume、CSI、ConfigMap、Secret、DownwardAPI 集群(Cluster) Namespace、Node、Role、ClusterRole、RoleBinding、ClusterRoleBinding 元数据(metadata) HPA、PodTemplate、LimitRange 对象资源格式 Kubernetes API 仅接受及响应 JSON 格式的数据( JSON 对象),同时,为了便于使用,它也允许用户提供 YAML 格式的 POST 对象,但 API Server 需要实现自行将其转换为 JSON 格式后方能提交。 API Server 接受和返回的所有 JSON 对象都遵循同一个模式,它们都具有 kind 和 apiVersion 字段,用于标识对象所属的资源类型、 API 群组及相关的版本。 大多数的对象或列表类型的资源提供元数据信息

k8s的Pod控制器

偶尔善良 提交于 2019-11-28 12:57:14
pod的配置清单常见选项: 1 apiVersion,kind,metadata,spec,status(只读) 2 spec: 3 containers: 4 nodeSelector: 5 nodeName: 6 restartPolicy: 7 Always,Never, OnFailure 8 containers: 9 name 10 image 11 imagePullPolicy: Always,Never,IfNotPresent 12 ports: 13 name: 14 containerPort 15 livenessProbe 16 readinessProbe 17 lifecycle 18 ExecAction: exec 19 TCPSocketAction: tcpSocket 20 HTTPGetAction:httpGet pod控制器: ReplicaSet:通常管理无状态pod,带用户创建指定数量的pod副本,并确保pod副本一直处于满足用户期望数量的状态。 多退少补,并且支持扩缩容 ReplicaSet:常用的3个组件;1,用户期望的副本数。2,标签选择器,以便选择自己管控的pod副本。3,pod资源模板,通过标签选择器选定的pod副本数少于用户所期望,则引用pod的资源模板来创建。 Deployment:Deployment--

k8s之pod控制器

六月ゝ 毕业季﹏ 提交于 2019-11-28 12:56:36
Pod控制器类型: ReplicationController à Replicaset Replicaset:维持用户期望的pod副本数 标签选择器:以便选定由自己选定管理的pod副本 pod资源模板:完成pod资源的新建 特点:管理无状态的pod资源,精确反映用户所定义的目标数量 K8s不建议直接使用Replicaset,而是使用Deployment Deployment:工作在replicaset上,通过控制replicaset来控制pod Deployment具备replicaset功能,还具有滚动更新,回滚,等更多强大机制,还提供声明式配置功能,管理群体,而不关注单个节点 DaemSet:确保集群中的每一个node只运行一个特定的pod副本,实现系统级的后台任务,也具有标签选择器,也可以指定部分满足条件的node运行一个pod副本,比如监控具有ssd存储的node节点 以上共同的特点:pod服务无状态,pod服务必须是守护进程类的, Job:一次性作业,任务完成,pod退出 Cronjob:周期性运行,每一次完成,pod退出 Statefulset:管理有状态的运用pod,每一个pod运用,每一个pod副本,都是单独管理, 备注: TPR: third party resource, 1.2 ~ 1.7版本 支持第三方资源 CDR: custom defined