k8spod共享存储,k8s文件共享
k8s中使用nfs共享存储
首先,搭建NFS服务器(IP:19160.29),以CentOS7为例。集群管理员需创建NFS PV,这属于K8s原生支持的存储类型。之后,用户创建PVC(Persistent Volume Claim),通过定义PVC以申请所需的存储资源。
部署步骤设置NFS存储: 创建NFS服务器上的共享目录,并配置NFS-provisioner、storageclass、nfs-client-provisioner和StatefulSet所需的资源。 制作镜像并部署集群: 使用基础镜像JDK0_192制作RocketMQ、NameServer和可视化界面的image镜像。
NFS 定义:网络文件存储系统。 特点:通过NFS服务器提供持久化存储,确保数据访问不受pod所在节点变化影响。 适用场景:适用于需要跨节点共享数据的场景。 PV与PVC PV定义:存储资源抽象,由管理员创建配置,与底层存储技术对接。 PVC定义:存储需求声明,用户通过它向系统申请存储。
本文介绍了如何在K8S环境中部署ES(Elasticsearch)集群,并配置持久化存储。首先,通过NFS服务器创建ES和filebeat共享目录,并为NFS设置合适的RBAC权限。ES0版本以后,集群配置有所变化,使用discovery.seed_hosts和cluster.initial_master_nodes替代了旧的探测方式。
一文详解K8s环境下Job类日志采集方案
1、K8s环境下Job类日志采集方案主要包括以下几种:DaemonSet采集方式:特点:在每个节点上部署iLogtail容器,实现统一采集,资源开销低,对业务容器无侵入。挑战:容器发现延时和开始采集延时相对较大,弹性支持受限。
2、我们的执行器和调度器都部署在k8s平台上。公司k8s平台要求所有日志都必须输出到控制台(这也是k8s的标准做法),后面再由ELK去抽取。所以执行器无法将通过XxlJobLogger.log()将日志输出到文件,调度器也无法查看任务的执行日志。
3、在kubernetes中,CronJob控制器提供了一种定期执行任务的机制,适用于备份数据、清理日志、定时拉取数据等场景。CronJob基于Cron定时任务的原理,允许用户使用Cron表达式配置任务执行的时间。Cron表达式由5或6个字段组成,分别对应分钟、小时、日期、月份和星期几,可选年份字段。
4、Crontab:主要用于主机上的运维工作,如定时清理日志、周期性健康检查等,但高可用性不足,不适合应用在业务应用上。K8s CronJob:设计了一套高可用的定时任务解决方案,保障了业务的稳定,适用于云原生环境下的业务应用。
5、DaemonSet:确保集群中每台节点运行一个副本,适用于节点级服务,如日志收集、监控等。Job:专为批量处理、一次性任务设计,执行单次任务后终止。简化大规模数据处理流程。CronJob:基于定时任务调度,以类似Linux cron的方式在特定时间重复执行Job任务,实现周期性工作。
6、Job 类型是 Kubernetes 资源对象之一,用于执行一次性任务或批处理作业。Job 在 Kubernetes 中用于数据处理、备份和恢复操作等场景,可以控制 POD 的数量,确保一定数量的 Pod 成功完成任务后停止并完成作业。Job 控制器是 Kubernetes 中的一个组件,监视 Job 对象的状态,根据需要启动或停止 Pod。
K8S学习指南(10)-k8s中为pod分配cpu和内存资源
1、Kubernetes中,资源通过Pod YAML文件配置,spec字段下的containers字段,使用resources字段进行。示例展示 示例展示了为Pod中容器设定CPU和内存请求及限制。资源分配最佳实践 合理配置Pod资源请求与限制,调整以适应应用需求,高效利用集群资源,提升系统稳定性和性能。
2、在k8s中,每个Pod的容器资源限制是在创建时声明的。例如,创建一个Pod时,指定每个容器所需的CPU资源为200毫核(1/5核心)和10MB内存。如果没有设置CPU请求,可能导致Pod无法获取所需资源。资源请求影响调度:调度器会以请求为基础分配资源,确保每个节点至少能满足Pod的基本需求。
3、核2线程的CPU,被系统识别为4个逻辑CPU,k8s中会对逻辑CPU做分片限制。kubernetes中一个Cpu相当于1个Vcpu/core,intel处理器的1个超线程。Cpu:250m,表示0.25个cpu,pod正常启动最少的,必须使用的资源;500m,表示0.5个逻辑CPU,pod运行时,最多可以使用的资源。
4、Service IP CIDR则独立于Pod IP,控制Service资源的ClusterIP网段范围。动态分配的ClusterIP仅在Kubernetes集群内部可访问,通过内置DNS解析到特定的ClusterIP,进而转发到后端Pod实现负载均衡。外部访问Service可通过NodePort、EXTERNAL-IP或Ingress实现更灵活的流量控制。
5、资源模型设计 requests和limits:在K8s中,资源请求和资源限制是两个核心概念,分别代表Pod所需的最小资源和最大资源。这两个参数帮助K8s进行资源调度和限额管理。Node资源抽象:Capacity:表示节点的总资源量,如CPU核心数和内存大小。