Kubernetes
文章平均质量分 79
实验是检验真理的唯一标准
CN-FuWei
云原生领域优质创作者,热爱开源、善于折腾,对新技术充满好奇心。
展开
-
k8s多集群管理(只读用户)
其他集群重复此操作,这样就可以实现通过一台只读机,切换集群上下文的方式,访问各个k8s集群了。原创 2024-09-25 13:52:48 · 221 阅读 · 0 评论 -
k8s-ingress报错:<error: endpoints “default-http-backend“ not found>
在Kubernetes中,默认后端是指当没有其他后端服务匹配到入口的请求时,流量将被发送到的地方。在Ingress资源中,你可以通过定义一个名为的服务来配置默认后端。原创 2024-07-15 12:15:31 · 450 阅读 · 1 评论 -
DevOps(从入门到放弃)
基础集群组件SpringCloud 业务组件。转载 2024-01-19 17:39:55 · 245 阅读 · 1 评论 -
如何查找overlayfs对应的POD
客户生产环境监控发现在所有主机夜间2-3点,/home/t4目录磁盘使用率会暴涨后回落,由于时间范围比较固定,疑似某服务或主机设置定时任务导致,但和客户沟通在此时间段并未设置定时计划任务,和产研确认产品在此时间段也未设置定时计划任务。如此一来,就需要我们自己通过脚本抓取/home/t4下具体哪个目录导致的磁盘增长。原创 2024-01-19 15:30:17 · 1201 阅读 · 0 评论 -
为啥有的configMap要重启Pod才生效
metadata:data:env方式envFrom方式volumes方式。env方式envFrom方式volumes方式。env方式和envFrom方式方式说白了是往容器里注入了环境变量,在容器启动的时候,就已经注入了,无法修改。每次修改configMap的key-value,需要重启Pod才能生效。volumes方式的方式,实际上把configMap的key-value写入到了容器对应的volume卷下,而且每次configMap变更,都会把最新值写入到volume卷下,这样容器每次都能取到最新值。转载 2023-11-23 16:16:17 · 682 阅读 · 0 评论 -
3 种方法限制 K8s Pod 磁盘容量使用
超过软限制后,仍然可以正常使用,但是登陆后会收到警告,在 grace time 倒计时完毕之前,用量低于软限制后,一切恢复正常。也就是说,如果你创建一个文件,打开文件,写入 1GB,然后删除文件,这种情况下 inode 仍然存在(直到你关闭文件),空间仍然被占用,但是 Kubelet 却没有算这 1GB.对于 Pod 级别的隔离,Pod 总用量限制,是每个容器限制之和。如果文件被创建、然后删除,但是它的文件描述符仍然处于打开状态,这种情况下,它仍然消耗空间,不会出现周期性扫描的那种漏统计的问题。转载 2023-11-23 15:23:30 · 478 阅读 · 0 评论 -
深入理解Kubernetes的驱逐机制
节点压力驱逐是指,Pod所在节点的资源,如CPU, 内存, inode等,这些资源被分为可压缩资源CPU (compressible resources) 与不可压缩资源 (incompressible resources) 磁盘IO, 内存等,当不可压缩资源不足时,Pod会被驱逐。Pod会根据节点的资源使用情况被逐出。如果集群中的节点数小于50,并且故障节点数超过总节点数的55%,则暂停 Pod 驱逐。即如果在 Pod 被驱逐并调度到新节点后该节点中的 Pod 也被驱逐,则该 Pod 将再次被驱逐。原创 2023-10-30 11:32:10 · 429 阅读 · 0 评论 -
kubernetes镜像GC
/ 执行垃圾回收策略,如果根据垃圾回收策略不能释放足够的空间,则会返回 error// 启动异步垃圾镜像回收Start()// 删除所有无用镜像。转载 2023-10-30 11:10:36 · 558 阅读 · 0 评论 -
Pod 的QoS服务质量
QoS(Quality of Service),可译为 "服务质量等级",或者译作 "服务质量保证",是作用在 Pod 上的一个配置,当 Kubernetes 创建一个 Pod 时,它就会给这个 Pod 分配一个 QoS 等级。Kubernetes 使用 Qos 类来决定 Pod 的调度和驱逐策略。转载 2023-10-20 15:45:16 · 118 阅读 · 0 评论 -
容器镜像安全漏洞扫描-Trivy
Trivy(tri 发音为 trigger,vy 发音为 envy)是一个简单而全面的漏洞/错误配置扫描器,用于容器和其他工件。软件漏洞是软件或操作系统中存在的故障、缺陷或弱点。Trivy 检测操作系统包(Alpine、RHEL、CentOS 等)和特定语言包(Bundler、Composer、npm、yarn 等)的漏洞。此外,Trivy 会扫描基础设施即代码 (IaC) 文件,例如 Terraform 和 Kubernetes,以检测使您的部署面临攻击风险的潜在配置问题。Trivy 易于使用。转载 2023-10-19 17:00:43 · 648 阅读 · 0 评论 -
教你如何查看Pod崩溃前的日志
当pod处于crash状态的时候,容器不断重启,此时用kubelet logs可能出现一直捕捉不到日志。原创 2023-10-19 16:38:33 · 457 阅读 · 0 评论 -
如何使用Kaniko在 Kubernetes 集群中构建容器镜像
Github地址:https://github.com/GoogleContainerTools/kanikoKaniko 是Google开源的一款在 Kubernetes 用来构建容器镜像的工具,它是一个从 Dockerfile 构建容器镜像的工具,就像 Docker 一样,但主要区别在于 Kaniko 可以在容器内运行,这意味着它可以在 Kubernetes 集群内运行。不需要特权模式,也不需要公开任何套接字。不需要在我们集群的节点上运行 Docker,因此我们使用哪个容器引擎来运行容器并不重要。转载 2023-10-19 16:15:34 · 1044 阅读 · 0 评论 -
如何在Kubernetes中使用Init Container
Pod 可以包含多个容器,应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 Init 容器。转载 2023-10-19 15:54:08 · 545 阅读 · 0 评论 -
Kubernetes中的Pause容器到底是干嘛的
k8s.gcr.io 这个地址是需要连外网才可以拉取到,导致 pause 镜像拉不下来,Pod无法启动。以前都没关注过 pause 这个容器,它是啥,做什么用的,怎么在 Pod 里没看到过他,本文将带你了解 pause 容器。转载 2023-10-19 15:29:24 · 615 阅读 · 0 评论 -
如何查找overlayfs对应的POD
大家有时候会在环境中碰到一个问题,就是在某一个时间段,docker或者containerd目录挂载的磁盘使用率会飙升(例如挂载的目录是/home/deployer/containerd),触发告警,飙升完之后又自动落回,由于时间范围比较固定,疑似某服务或主机设置定时任务导致,但是排查完之后,并没有发现这个时间段内有定时任务,如此一来,就需要我们自己通过某些手段查找是该磁盘下的具体哪个目录导致的。原创 2023-10-12 17:01:13 · 478 阅读 · 0 评论 -
k8s常用命令合集
2.9、Nodes 相关。原创 2023-10-09 14:49:37 · 2109 阅读 · 0 评论 -
k8s容器的调试利器-nsenter
Nsenter是一个命令行工具,可以让我们进入一个运行中的容器内部。当使用Docker/Contained运行一个容器时,容器内部就像是一个隔离的虚拟机环境,你需要通过命令行进入容器内部来进行管理和操作。通过Nsenter命令,可以使用容器内部的Shell或其它工具,就像在本地主机上执行命令一样方便。原创 2023-08-29 17:11:54 · 518 阅读 · 0 评论 -
如何处理ephemeral-storage 不足问题
根本原因:Kubernetes使用的系统盘容量不足;触发项如下:1.image镜像太多,耗用太多ephemeral-storage;2.本地pv存储全部挂载了系统盘目录下;3.有些容器没有使用持久化存储,日志等全部打印到了ephemeral-storage。原创 2023-07-26 16:34:28 · 1232 阅读 · 0 评论 -
如何快速检查sts是否包含某一环境变量
env_name替换成你的环境变量,原创 2023-07-26 16:06:23 · 203 阅读 · 0 评论 -
编译kubeadm续签k8s1.22.0高可用集群证书100年
目录一、查看证书过期时间1.1 方式一1.2 方式二二、通过命令续期2.1 查看证书有效期2.2 备份原有数据2.3 备份证书2.4 更新证书2.5 确认证书有效期2.6 更新kubeconfig文件2.7 更新客户端证书2.8 重启相关的pod2.9 检查当前集群状态是否正常2.10 检查etcd集群状态三、编译源码kubeadm,证书时间自定义3.1 备份集群配置3.2 获取对应的kubeadm源码3.3 修改CA证书有效期3.4 修改其他证书有效期3.5 安装go环境进行编译3.6 go设置国内代理3原创 2023-04-26 16:27:34 · 1554 阅读 · 0 评论 -
细说Kubernetes Pod的驱逐
正如你所看到的,驱逐只是Kubernetes的另一个功能,它允许你控制有限的资源:在这种情况下,Pod将使用的节点。在抢占期间,Kubernetes将试图通过驱逐优先级较低的Pod来释放资源,以安排一个新的Pod。通过优先级类,你可以控制哪些Pod更有可能在抢占后继续运行,因为它们被驱逐的可能性较小。在执行过程中,Kubernetes将检查节点压力,并在需要时驱逐Pod。通过QoS类,你可以控制哪些Pod在节点压力的情况下更有可能被驱逐。原创 2023-02-15 15:23:22 · 661 阅读 · 0 评论 -
JVM 内存与 K8s 容器内存不一致引发的 OOMKilled 总结
退出代码0表示特定容器没有附加前台进程该退出代码是所有其他后续退出代码的例外,一般是容器正常退出,程序自动退出。这不一定意味着发生了不好的事情。如果开发人员想要在容器完成其工作后自动停止其容器,则使用此退出代码。比如:kubernetes job 在执行完任务后正常退出码为 0。转载 2022-12-02 16:25:17 · 2077 阅读 · 1 评论 -
彻底解决 K8s 节点本地存储被撑爆的问题
要解决存储使用过多的问题,就得先了解存储中都保存了些什么内容,否则解决不了问题,还可能带来更多的风险。原创 2022-11-23 17:29:11 · 1090 阅读 · 0 评论 -
基于真实场景解读 K8s Pod 的各种异常
在 K8s 中,Pod 作为工作负载的运行载体,是最为核心的一个资源对象。Pod 具有复杂的生命周期,在其生命周期的每一个阶段,可能发生多种不同的异常情况。K8s 作为一个复杂系统,异常诊断往往要求强大的知识和经验储备。结合实战经历以及 EDAS 用户真实场景的归纳,我们总结了 K8s Pod 的 13 种常见异常场景,给出各个场景的常见错误状态,分析其原因和排查思路。原创 2022-11-18 15:34:26 · 758 阅读 · 0 评论 -
【云原生】Hadoop on k8s 环境部署
Hadoop是Apache软件基金会下一个开源分布式计算平台,以HDFS(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是资源调度框架,能够细粒度的管理和调度任务,还能够支持其他的计算框架,比如spark)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。hdfs的高容错性、高伸缩性、高效性等优点让用户可以将Hadoop部署在低廉的硬件上,形成分布式系统。目前最新版本已经是3.x了,。HDFSYARN。转载 2022-10-17 14:24:40 · 794 阅读 · 1 评论 -
【云原生】ElasticSearch + Kibana on K8S 详解与实战操作
Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎。Elasticsearch是用Java开发的,根据Apache许可条款作为开源发布。转载 2022-10-15 10:07:16 · 487 阅读 · 0 评论 -
Kubernetes上安装Metrics-Server
metrics-server 会请求每台节点的 kubelet 接口来获取监控数据,接口通过 HTTPS 暴露,但 Kubernetes 节点的 kubelet 使用的是自签证书,若 metrics-server 直接请求 kubelet 接口,将产生证书校验失败的错误,因此需要在 components.yaml 文件中加上 --kubelet-insecure-tls 启动参数。修改 components.yaml 之后,执行以下命令,通过 kubectl 一键部署到集群:1.原创 2022-09-23 17:06:41 · 762 阅读 · 0 评论 -
【云原生】详解 Zookeeper + Kafka on K8S 环境部署
是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务,ZooKeeper 致力于开发和维护一个开源服务器,以实现高度可靠的,其实也可以认为就是一个,只是结构比较特殊,是树状结构。Kafka。原创 2022-09-19 14:42:24 · 1496 阅读 · 0 评论 -
k8s master节点更换ip 重签证书
旧IP:新IP: 修改/etc/hosts解析(所有节点):二、备份 kubernetes 目录三、查看证书内的 ip四、生成集群配置更换IP:vim kubeadm.yaml五、删除原有的证书六、重新生成证书再次查看证书内的 ip七、将配置更新到 configmap 中八、检查原创 2022-09-16 16:24:49 · 2306 阅读 · 9 评论 -
cgroup driver: cgroupfs还是systemd
Cgroup 是一个 Linux 内核特性,对一组进程的资源使用(CPU、内存、磁盘 I/O 和网络等)进行限制、审计和隔离。cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说,cgroups 可以限制、记录任务组所使用的物理资源。原创 2022-09-15 15:01:56 · 2868 阅读 · 0 评论 -
Etcdctl工具-管理操作etcd集群
etcd就是个分布式非关系型数据库.3 个节点组成的集群,可以容忍 1 个节点故障。生成环境中,不推荐使用单个节点的 etcd 集群。原创 2022-09-13 16:21:16 · 5620 阅读 · 0 评论 -
Deployment共享存储Volume
【代码】Deployment共享存储Volume。原创 2022-09-06 14:36:22 · 989 阅读 · 0 评论 -
7 张图解 CrashLoopBackOff,如何发现问题并解决它?
是一种 Kubernetes 状态,表示 Pod 中发生的重启循环:Pod 中的容器已启动,但一遍又一遍的崩溃然后又重新启动。Kubernetes 将在重新启动之间等待越来越长的BackOff时间,以便您有机会修复错误。因此,CrashLoopBackOff 本身并不是一个错误,而是表明发生了一个错误,导致 Pod 无法正常启动。Pod 在 Running、Failed 和 Waiting 之间循环请注意,它重新启动的原因是因为它设置为Always(默认情况下)或OnFailure。...原创 2022-08-31 09:44:08 · 26655 阅读 · 0 评论 -
Containerd ctr、crictl、nerdctl 客户端命令介绍与实战操作
作为接替 Docker 运行时的 Containerd 在早在 Kubernetes1.7 时就能直接与 Kubelet 集成使用,只是大部分时候我们因熟悉 Docker,在部署集群时采用了默认的 dockershim。在V1.24起的版本的 kubelet 就彻底移除了dockershim,改为默认使用Containerd了,当然也使用适配器来将与 Kubernetes 集成。...转载 2022-08-30 16:03:06 · 5266 阅读 · 0 评论 -
Kubernetes 网络排错骨灰级指南!
本文将引入一个思路:“在 Kubernetes 集群发生网络异常时如何排查”。文章将引入 Kubernetes 集群中网络排查的思路,包含网络异常模型,常用工具,并且提出一些案例以供学习。Pod 常见网络异常分类网络排查工具Pod 网络异常排查思路及流程模型CNI 网络异常排查步骤案例学习。转载 2022-08-25 17:24:58 · 1350 阅读 · 0 评论 -
Kubeadm高可用部署K8S 1.24版本---保姆级超详细!!!
官网:https://kubernetes.io/官方文档:https://kubernetes.io/zh-cn/docs/home/原创 2022-08-25 11:13:44 · 6036 阅读 · 0 评论 -
三种方法限制 kubernetes Pod 磁盘容量使用
容器在运行期间会产生临时文件、日志。如果没有任何配额机制,则某些容器可能很快将磁盘写满,影响宿主机内核和所有应用。容器的也位于/var/lib/kubelet/pods 下,但是。容器的日志,存放在/var/log/pods 目录下。使用 Docker 时,位于/var/lib/docker 下,具体位置取决于存储驱动。转载 2022-08-24 15:39:34 · 2010 阅读 · 0 评论 -
基于Velero1.8.1+Minio实现备份恢复K8s集群
删除dev命名空间下的pod并验证数据恢复。原创 2022-08-24 14:57:50 · 770 阅读 · 0 评论 -
k8s 1.24.0版本使用nfs-provisioner4.0.0动态创建PV
nfs-client-provisioner 可动态为kubernetes提供pv卷,是Kubernetes的简易NFS的外部provisioner,本身不提供NFS,需要现有的NFS服务器提供存储。持久卷目录的命名规则为:${namespace}-${pvcName}-${pvName}。它通过K8S内置的NFS驱动挂载远端的NFS服务器到本地目录;然后将自身作为storage provider关联storage class。原创 2022-08-24 10:10:03 · 2505 阅读 · 0 评论 -
Ingress-nginx-controller:v1.1.1部署手册
10.0.0.18为ingress-nginx-controller所在节点ip。注意:在windows上host文件配置域名解析。原创 2022-08-22 15:29:14 · 768 阅读 · 0 评论