关键词:
一、Pod生命周期
- init container:初始化容器,可以有多个
- main container:主容器
- post start:在初始化容器执行完后,主容器启动前的操作
- pre stop:结束前的清理操作
- liveness probe:在主容器运行是进行存活性检测
- rediness probe:就绪状态检测
1、Pod的生命周期状态
- Pending:挂起,没有合适的节点运行
- Running:运行态
- Failed:失败态
- Succeeded:成功态
- Unknown:未知态
2、创建Pod时
pod生命周期中的重要行为
- 初始化容器
- 容器探测
- liveness:探测pod中容器是否正常
- restartPolicy:Always(只要容器挂了就重启), OnFailure(只要容器发生错误时重启), Never(从来不会重启),默认为Always
- readiness:探测是否可以正常提供服务
- liveness:探测pod中容器是否正常
探针类型
- ExecAction
- TCPSocketAction
- HTTPGetAction
二、存活性探测
# vim liveness-exec.yaml
apiVersion: v1
kind: Pod
metadata:
name: liveness-exec-pod
namespace: default
spec:
containers:
- name: liveness-exec-container
image: busybox:latest
imagePullPolicy: IfNotPresent
command: ["/bin/sh","-c","touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 3600"]
livenessProbe:
exec:
command: ["test","-e","/tmp/healthy"]
initialDelaySeconds: 1
periodSeconds: 3
# kubectl create -f liveness-exec.yaml
三、http的存活性探测
apiVersion: v1
kind: Pod
metadata:
name: livenessi-httpget-pod
namespace: default
spec:
containers:
- name: liveness-httpget-container
image: dongfeimg/myapp:v1
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
livenessProbe:
httpGet:
port: http
path: /index.html
initialDelaySeconds: 1
periodSeconds: 3
# kubectl describe pod livenessi-httpget-pod
# kubectl exec -it livenessi-httpget-pod -- /bin/sh
四、就绪性探测
# kubectl create -f readness-httpget-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: readness-httpget-pod
namespace: default
spec:
containers:
- name: readness-httpget-container
image: dongfeimg/myapp:v1
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
readinessProbe:
httpGet:
port: http
path: /index.html
initialDelaySeconds: 1
periodSeconds: 3
# kubectl exec -it readness-httpget-pod -- /bin/sh
/ # rm -f /usr/share/nginx/html/index.html
五、启动后钩子
# vim poststart-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: poststart-pod
namespace: default
spec:
containers:
- name: busybox-httpd
image: busybox:latest
imagePullPolicy: IfNotPresent
lifecycle:
postStart:
exec:
command: ["/bin/sh","-c","mkdir -p /data/web/html"]
command: ["/bin/sh","-c","sleep 3600"]
# kubectl create -f poststart-pod.yaml
command中的命令不能强依赖与postStart中的command所执行的结果
未完待续。。。
kubernetes第七篇:pod进阶controller进阶resource和dashboard(代码片段)
文章目录一、前言二、Pod进阶学习之路2.1Pod的生命周期Lifecycle2.2Pod的重启策略RestartPolicy2.3静态Pod2.4Pod的健康检查2.5ConfigMap2.5.1ConfigMap的创建创建方式1:命令行创建configmap创建方式2:根据配置文件中创建configmap创建方式3... 查看详情
kubernetes进阶训练营pod基础(代码片段)
Pod基础K8s架构图组件kube-apiserverkube-controller-managerkube-controller-manageerkube-schedulerkubeletkube-proxykubectl核心资源对象PodLabelDeploymentService集群部署环境准备使用kubeadm部署Kubernetes初始化集群添加节点清理资源清单Pod原理Pod的生命周期 查看详情
二进制部署k8s集群进阶使用之第4节pod控制器(代码片段)
四、pod控制器controller用于控制pod控制器主要分为:ReplicationController(相当于ReplicaSet的老版本,现在建议使用Deployments加ReplicaSet替代RC)ReplicaSet副本集,控制pod扩容,裁减Deployments控制pod升级,回退StatefulSets部署有状态的pod应用DaemonSet运行... 查看详情
k8s进阶(代码片段)
K8s进阶文章目录K8s进阶核心组件HPAserviceAddOns附件dnspodpod容器分类控制器类型以及功能部署Kubernetes准备环境所有节点安装Docker/kubeadm/kubelet安装Docker添加kubernetes阿⾥云YUM软件源安装kubeadm,kubelet和kubectl部署Kubernetes安装Pod网络... 查看详情
kubernetes进阶训练营pod基础(代码片段)
...期Pod状态重启策略初始化容器InitCPodHookPod健康检查Pod使用进阶Pod资源配置静态PodDownwardAPI环境变量Volume挂载K8s架构图从上面我们可以看出Kubernetes由Master和Node两种节点组成,这两种角色分别对应着控制节点和工作节点(可... 查看详情
client-gogin的简单整合三(list列表相关再进阶关于pods)(代码片段)
背景:紧接client-gogin的简单整合二(list列表相关进一步操作),namespacedeploymentservice都list列表展现了,总觉得还少点什么?比如显示集群中所有运行的pod列表?根据namespace显示pod列表?按照deployment名称... 查看详情
k8s之pod进阶(代码片段)
注意此篇文章接上篇:K8s之Pod资源管理及创建Harbor私有镜像仓库https://blog.51cto.com/14464303/2471369一、资源限制:pod和container的资源请求和限制:spec.containers[].resources.limits.cpu#cpu上限spec.containers[].resources.limits.memory#内存上限spec.contain... 查看详情
kubernetes进阶训练营调度器(代码片段)
调度流程kube-scheduler的主要作用就是根据特定的调度算法和调度策略将Pod调度到合适的Node节点上去,是一个独立的二进制程序,启动之后会一直监听APIServer,获取到PodSpec.NodeName为空的Pod,对每个Pod都会创建一个bin... 查看详情
kubernetes进阶训练营调度器(代码片段)
调度流程kube-scheduler的主要作用就是根据特定的调度算法和调度策略将Pod调度到合适的Node节点上去,是一个独立的二进制程序,启动之后会一直监听APIServer,获取到PodSpec.NodeName为空的Pod,对每个Pod都会创建一个bin... 查看详情
kubernetes进阶训练营控制器(代码片段)
控制器前面我们一起学习了Pod的原理和一些基本使用,但是在实际使用的时候并不会直接使用Pod,而是会使用各种控制器来满足我们的需求,Kubernetes中运行了一系列控制器来确保集群的当前状态与期望状态保持一致... 查看详情
kubernetes系列k8s进阶容器和pod分配内存资源(代码片段)
作者:半身风雪上一节:ConfigMap进阶环境变量的配置及使用内容简介:上一节主要学习ConfigMap环境变量的配置及使用、ConfigMapvolume中的数据处理,那么本节内容主要容器和Pod分配内存资源。容器和Pod分配内存资源... 查看详情
k8s进阶(代码片段)
K8s进阶文章目录K8s进阶核心组件HPAserviceAddOns附件dnspodpod容器分类控制器类型以及功能部署Kubernetes准备环境所有节点安装Docker/kubeadm/kubelet安装Docker添加kubernetes阿⾥云YUM软件源安装kubeadm,kubelet和kubectl部署Kubernetes安装Pod网络... 查看详情
kubernetes基础(代码片段)
Kubernetes基础文章目录Kubernetes基础Pod是什么?Pod的作用Pod控制器LabelLabel为什么要用LabelLabel选择器NodeKubernetes集群架构masternode(worker节点)Kubernetes的特性Kubernetes进阶核心组件HPAserviceAddOns附件dnspod部署Kubernetes安 查看详情
kubernetes进阶训练营网络(代码片段)
网络Service三种IP定义Servicekube-proxy服务类型获取客户端IPDNS给Pod添加DNS记录Ingress资源对象定义rulesResourcepathTypeIngressClassTLSIngress-nginx运行原理安装第一个示例❤Nginx配置BasicAuthURLRewrite灰度发布HTTPS全局配置TCP与UDPTraefikGatewayAPIAPISIX 查看详情
kubernetes进阶训练营网络(代码片段)
网络Service三种IP定义Servicekube-proxy服务类型获取客户端IPDNS给Pod添加DNS记录Ingress资源对象定义rulesResourcepathTypeIngressClassTLSIngress-nginx运行原理安装第一个示例❤Nginx配置BasicAuthURLRewrite灰度发布HTTPS全局配置TCP与UDPTraefikGatewayAPIAPISIX 查看详情
kubernetes进阶训练营网络(代码片段)
网络Service三种IP定义Servicekube-proxy服务类型获取客户端IPDNS给Pod添加DNS记录Ingress资源对象定义rulesResourcepathTypeIngressClassTLSIngress-nginx运行原理安装第一个示例❤Nginx配置BasicAuthURLRewrite灰度发布HTTPS全局配置TCP与UDPTraefikGatewayAPIAPISIXSe... 查看详情
devops架构师--03kubernetes进阶实践(代码片段)
文章目录第三天Kubernetes进阶实践ETCD常用操作Kubernetes调度为何要控制Pod应该如何调度调度的过程CordonNodeSelectornodeAffinity污点(Taints)与容忍(tolerations)Kubernetes集群的网络实现CNI介绍及集群网络选型,Flannel网络模... 查看详情
kubernetes进阶训练营调度器(代码片段)
调度流程kube-scheduler的主要作用就是根据特定的调度算法和调度策略将Pod调度到合适的Node节点上去,是一个独立的二进制程序,启动之后会一直监听APIServer,获取到PodSpec.NodeName为空的Pod,对每个Pod都会创建一个bin... 查看详情