kubernetes集群重启
1、Kubernetes集群重启涉及node节点的启停和pod的重启策略。Node节点的启停:启动Node节点:可以使用systemctl start flanneld kube-Proxy kubelet docker命令来启动Node节点相关的服务。
2、重启 Kubernetes 集群: 重启节点:在关闭节点后,按需求重启每个节点。这可以通过物理重启或云服务提供商的控制台完成。 检查状态:重启完成后,使用kubectl get nodes和检查其他核心组件的状态,确保所有节点都已恢复并正常运行。
3、在运维Kubernetes集群时,关闭与重启操作是日常维护中常见的需求。首先,关闭集群前需做好准备工作,尤其是备份集群数据与应用,以备在集群重启或出现故障时恢复。执行关闭操作时,推荐驱逐而非重启整个集群,并确保在移出节点后,通过命令指示Kubernetes继续在剩余节点上调度新Pod。
4、列出所有节点:kubectl get nodes驱逐节点:kubectl drain [NODE_NAME] --force --ignore-daemonsets关闭集群前,再次强调备份的重要性。以下是关闭集群的步骤:获取节点列表逐一或使用脚本关闭节点(前提有SSH免密)重启集群后,务必检查所有节点和核心组件的状态。
不背锅运维:k8s调度之初探nodeSelector和nodeAffinity
在 Kubernetes 的调度机制中,nodeSelector 和 nodeAffinity 是两种用于决定 POD 部署到哪个节点的关键规则。nodeSelector:定义:允许用户基于特定标签选择节点。用途:确保 Pod 被部署到具有特定属性的节点上,例如具有 SSD 硬盘的节点。限制:相对简单,只支持基于标签的精确匹配。
节点选择器(nodeSelector)允许用户基于特定标签选择节点。例如,确保某些 Pod 落实在具有特定属性(如 SSD 硬盘)的节点上。节点亲和性(nodeAffinity)则进一步细化了这一概念,它允许指定 Pod 与特定节点的亲和或反亲和关系,从而实现更精细的调度策略。节点亲和性通过节点标签和权重值实现。
Affinity机制则更为灵活,除了提供与Node Selector一致的关键匹配外,还具备三重优势:反向指定反向匹配(anti-affinity),实现弱匹配(prefer),即便不完全匹配也能分配,并提供node层级之外的pod间限制。Affinity分为Node Affinity与Inter-pod Affinity。
若集群中无匹配目标节点,即使其他可用节点也无法成功调度Pod。Node Selector机制相对简单,但灵活性有限,且据称将被更灵活的Affinity机制所替代。与Affinity机制的比较:Affinity机制提供了与Node Selector一致的关键匹配功能,但更加灵活。Affinity支持反向指定、弱匹配以及node层级之外的pod间限制。
配置Node affinity主要通过Pod规范中的.spec.affinity.nodeAffinity字段。在配置时,可使用matchexpressions或matchFields来定义节点标签的匹配规则,决定Pod是否应该在特定节点上运行。使用Node affinity时,需注意考虑与nodeSelector的关系,后者可能更简单直观。
涨薪技术|Kubernetes(k8s)之认识Pod
涨薪技术|Kubernetes(k8s)之认识PodPod是Kubernetes创建或部署的最小/最简单的基本单位。一个Pod代表集群上正在运行的一个进程,封装了一个应用容器(也可以有多个容器),以及存储资源、一个独立的网络IP和管理控制容器运行方式的策略选项。
使用env字段在Pod级别配置环境变量: 创建YAML文件:首先,你需要创建一个YAML文件,用于定义Pod及其环境变量。 定义环境变量:在YAML文件中,使用env关键字定义一个EnvVars数组。每个数组元素都是一个包含name和value的键值对,用于设置环境变量的名称和值。
Kubernetes中的Service服务类型主要有四种:ClusterIP、nodePort、LoadBalancer和ExternalName。ClusterIP:定义:暴露集群内部的IP和端口,主要解决Pod IP动态变化的问题。特点:Service的IP地址在集群内部是唯一的,并且只有集群内部的Pod能够访问。
K8s中Pod生命周期和重启策略
1、例如,Deployment通常会将Pod的重启策略设置为Always,以确保Pod在出现问题时能够自动恢复。K8s重启的时间间隔和最大延迟 Kubernetes在重启Pod时,会遵循一定的时间间隔和最大延迟规则。具体来说,重启的时间间隔通常是2的幂次方倍增(即2n),最大延迟时间通常为5分钟。
2、Always策略:无论正常或非正常停止,容器均会重启。例如,正常关闭Tomcat服务后,Pod状态恢复正常,而非正常关闭时,容器会重启。Never策略:正常或非正常停止,容器都不会重启。停止Tomcat后,正常情况下容器状态保持,非正常时显示Error状态。
3、重启策略有三种:Always、OnFailure和Never。如果设置为Always,那么无论因为什么原因停止,Pod都会自动重启。如果设置为OnFailure,则只有Pod非正常停止时(例如,因为崩溃或被杀死)才会重启。如果设置为Never,则Pod在任何情况下都不会自动重启。