首页 > 其他分享 >k8s

k8s

时间:2024-08-02 19:56:14浏览次数:11  
标签:Node 容器 ReplicaSet 创建 Job Pod k8s

K8s Pod:
自主式 Pod:死亡后没有控制器将其拉起
控制器管理的 Pod:死亡后控制器能够将其拉起
Pod 内容器:
当一个 Pod 创建后,会立即在 Pod 内创建一个 pause 容器,该 Pod 内其他容器公用该容器的网络协议栈;
因此,一个 Pod 中两个容器的端口不能相同,一个容器访问另一个容器的端口,直接用localhost:port就可以访问;
此外,一个 Pod 内容器也可以共享 pause 的存储卷

Pod 控制器类型

ReplicationController & ReplicaSet & Deplovment

  • ReplicationController
    ReplicationController 用于确保容器应用的副本数始终保持在用户定义的副本数,如果有容器异常退出,会自动创建新的 Pod 取代;异常多出来的容器也会被自动回收;
    新版本中,Kubernetes 建议使用 ReplicaSet 替代 ReplicationControlle
  • ReplicaSet
    ReplicaSet 与 ReplicationController 没有本质不同,但 ReplicaSet 支持集合式的 selector
  • Deployment
    建议使用 Deployment 自动管理 ReplicaSet,ReplicaSet 不支持 rolling-update,但 Deployment 支持
    Deployment 本身不支持创建 Pod,它可以创建 ReplicaSet,再通过 ReplicaSet 创建 Pod
  • HPA 平滑扩展
    基于 RS 创建,监控 RS 中 Pod 的状态;如可以配置当 RS 中 Pod 的 CPU > %80 时就创建新的 Pod

StatefulSet

用于解决有状态服务问题:

  • 稳定的持久化存储:Pod 重新调度后仍然能访问相同的持久化数据,基于 PVC 实现
  • 稳定的网络标志,Pod 重新调度后其 PodName 和 HostName 不变
  • 有序部署:即 Pod 的创建是有顺序的,按照定义的顺序,下一个 Pod 运行之前,所有之前的 Pod 都是 Running 或 Ready 状态,基于 init containers 实现
  • 有序收缩:有序删除

DaemonSet

确保全部(或一些)Node 上运行一个 Pod 的副本;当有 Node 加入集群时,会为他们新增一个 Pod;当有 Node 从集群移除时,这些 Pod 会被回收;删除 DaemonSet 会删除它创建的所有 Pod
应用场景:

  • 运行集群存储 daemon,例如再每个 Node 上运行 glusterd、ceph
  • 在每个 Node 上运行日志收集 daemon,例如 fluentd、logstash
  • 在每个 Node 上运行监控 daemon,例如 Prometheus Node Exporter

Job,Cronjob

Job 负责批处理任务,即禁止性一次的任务,它保证批处理任务的一个或多个 Pod 成功结束;
Cron Job 管理基于时间的 Job,即:

  • 在给定时间点只运行一次
  • 周期性地在给定时间点运行
    相比于直接运行的脚本任务,Job 能够确保任务执行一定是成功退出的,并且可以设置正常退出的次数

服务发现

Pod 上都有标签,如 version:1 等等;
Service 服务发现 通过标签来选择 Pod 对外暴漏;客户端可以通过 Service 的 ip:port 来访问这些具有相同标签的 Pod;并且 Service 可以实现负载均衡,如使用 RR 方式

标签:Node,容器,ReplicaSet,创建,Job,Pod,k8s
From: https://www.cnblogs.com/San-Francisco/p/18339408

相关文章

  • kubeasz 制作k8s 集群离线安装包
    转载:kubeasz制作k8s集群离线安装包kubeasz制作k8s集群离线安装包大家好,欢迎来到运维有术本文介绍了,利用ezdown制作kubeasz离线部署k8s集群所需的离线安装包。使用kubeasz离线安装k8s集群需要下载四个部分:kubeasz项目代码二进制文件(k8s、etcd、container......
  • 低代码如何借助 K8s 实现高并发支持?
    引言在当今这个数字化时代,互联网的普及和技术的飞速发展使得应用程序面临着前所未有的挑战,其中最为显著的就是高并发访问的需求。随着用户数量的激增和业务规模的扩大,如何确保应用在高并发场景下依然能够稳定运行、快速响应,成为了所有开发者和技术团队必须面对的重要课题。Kuber......
  • kubeadm部署k8s集群
    目录1.环境准备2.升级内核3.所有节点安装docker4.安装kubeadm,kubelet和kubectl5.高可用配置6.部署K8S集群7.所有节点部署网络插件flannel8.部署Dashboard可视化面板9.更新k8s证书有效期1.环境准备7-2192.168.9.210master017-5192.168.9.120master027-7192.168.9.......
  • 一图看懂Git、HTTPS、Docker、k8s和微服务
    一图看懂Git、HTTPS、Docker、k8s和微服务......
  • 使用Velero备份K8S资源,看这篇干货就够了
    一、Velero简介 Velero提供备份和恢复Kubernetes集群资源和持久卷的工具。Velero功能:对群集进行备份,并在丢失时进行还原。将集群资源迁移到其他集群。Velero包括:在群集上运行的服务器在本地运行的命令行客户端开源地址:https://github.com/vmware-tanzu/velero官方......
  • K8s大模型算力调度策略的深度解析
    随着大数据和人工智能技术的飞速发展,Kubernetes(简称K8s)作为容器编排的领军者,在支撑大规模模型训练和推理方面扮演着越来越重要的角色。在大模型算力的调度过程中,如何高效、合理地分配和管理资源成为了一个亟待解决的问题。本文将深入探讨K8s在大模型算力调度中的策略与实践。......
  • 二进制部署k8s集群之cni网络插件flannel和calico工作原理(中)
    目录1.k8s的三种网络模式2.flannel网络插件3.部署CNI网络组件4.Calico介绍1.k8s的三种网络模式k8s集群中pod网络通信分类1、pod内容器之间的通信在同一个Pod内的容器(Pod内的容器是不会跨宿主机的)共享同一个网络命令空间,相当于它们在同一台机器上一样,可以用loc......
  • opencloudosV8.6和openEuler 24安装 k8s
    在三台机器上部署Kubernetes集群1.环境准备2.在所有节点上进行以下步骤1.更新系统和安装必要的软件包2.禁用交换分区3.禁用防火墙和SElinux4.系统主机名5.设置主机名与IP地址解析6.配置内核转发及网桥过滤7.配置DockerCgroup驱动8.添加Kubernetes仓库并安装......
  • 在K8S中,Pod有几种探针?
    在Kubernetes(K8s)中,Pod的容器可以通过探针(Probes)来检测容器的健康状况和就绪状态。探针主要用于确保容器能够正确启动并在运行过程中保持健康状态。Kubernetes支持三种类型的探针:livenessProbe(存活探针)readinessProbe(就绪探针)startupProbe(启动探针)每种探针都......
  • 在K8S中,删除一个Pod会发生什么事情?
    在Kubernetes(K8S)中,删除一个Pod会触发一系列操作,包括向容器发送终止信号、清理资源以及可能的重新调度。以下将详细阐述具体过程:用户发出删除命令命令提交:用户通过kubectl命令行工具或者API接口发出删除Pod的请求,例如执行kubectldeletepod<pod-name>[3]。APIServer响应:Kub......