
Kubernetes
文章平均质量分 69
网络飞鸥
学无止境
展开
-
在Helm Chart中指定备用Registry的访问优先级
通过 Init Container 实时检查 Registry 可用性,按顺序尝试主/备 Registry,将可用地址写入共享卷供主容器使用。,它能在运行时动态检测 Registry 可用性,实现真正的优先级控制,且无需依赖外部工具。中定义优先级顺序,通过 Helm 模板逻辑选择第一个可用的 Registry。在 Helm Chart 中指定备用 Registry 的访问优先级,需要通过。Hook 在部署前检查 Registry 可用性,并修改 Chart 值。原创 2025-05-19 09:49:03 · 221 阅读 · 0 评论 -
Helm Chart 中配置多个 Docker Registry 地址以实现备用访问
通过以上方法,你可以在 Helm Chart 中灵活配置多个 Docker Registry 地址,实现高可用性的镜像拉取策略。原创 2025-05-19 09:44:40 · 389 阅读 · 0 评论 -
kubelet 清理资源以缓解磁盘压力
容器垃圾回收流程:Kubelet会清理可以驱逐的容器,包括那些状态不是RUNNING且在本轮GC前创建的容器。对于普通容器,Kubelet会根据MaxPerPodContainer与MaxContainers的设置,按照LRU策略,从Pod的死亡容器列表删除一定数量的容器,直到满足配置需求;镜像清理过程:kubelet会识别不再被任何容器引用的镜像(未使用镜像),并按照最近使用时间排序,优先删除最旧的镜像,对于新拉取的镜像,会存活一定时间(默认2分钟)后才执行清理,以防止刚拉取的镜像就被清理掉。原创 2025-04-29 15:54:34 · 1225 阅读 · 0 评论 -
在K8S迁移节点kubelet数据存储目录
在 Kubernetes(k8s)中迁移节点kubelet数据存储目录是一项需要谨慎操作的任务,因为kubelet负责管理节点上的容器运行时。原创 2025-04-29 14:45:07 · 534 阅读 · 0 评论 -
给女友讲懂 Kubernetes 的方法
用一些比喻故事来给女友讲懂Kubernetes的方法,希望能帮助她轻松理解这个复杂的概念:此女友非女友,是指外行人能快速的了解什么是Kuberneters。原创 2025-04-21 16:07:34 · 345 阅读 · 0 评论 -
k8s 调整Node节点 Max_Pods
默认情况下,Kubernetes集群中一个Node最多能起110个Pod。这是基于性能和资源管理的考虑,以确保Kubernetes集群的稳定性和可靠性。原创 2025-04-18 14:53:17 · 535 阅读 · 0 评论 -
K8S_ResourceQuota与LimitRange的作用
【代码】K8S_ResourceQuota与LimitRange的作用。原创 2025-04-15 14:57:38 · 567 阅读 · 0 评论 -
15个Kubernetes隐藏技巧
Kubernetes蕴藏着许多能提升效率的实用技巧原创 2025-04-08 08:20:14 · 292 阅读 · 0 评论 -
污点(Taint)和容忍度(Toleration)存在的意义和需求
在多租户的Kubernetes集群中,不同租户可能有不同的资源需求和安全要求。通过使用污点和容忍度,可以为不同租户分配不同的节点资源,实现租户之间的资源隔离和安全保障。例如,为某个租户的专用节点添加特定的污点,只有该租户的Pod配置了相应的容忍度才能使用这些节点。原创 2025-04-02 11:09:33 · 439 阅读 · 0 评论 -
为 Jenkins Agent 添加污点(Taint)容忍度(Toleration)
在 Kubernetes(k8s)环境中使用 Jenkins 时,为 Jenkins Agent 添加污点(Taint)容忍度(Toleration)是一种常见的配置操作,它允许 Jenkins Agent Pod 被调度到带有特定污点的节点上。原创 2025-04-02 09:01:47 · 456 阅读 · 0 评论 -
Kubernetes中的 Nginx Ingress 解析
在Kubernetes(k8s)中,Nginx Ingress是一个重要的组件,下面将从概念、工作原理、部署和配置等方面详细介绍。原创 2025-03-24 14:17:56 · 691 阅读 · 0 评论 -
节点异常检测 node-problem-detector
当 Kubernetes 中节点发生如下问题时,在整个集群中,K8S 服务组件并不会感知这些问题,就会导致 Pod 仍会调度至问题节点。所以就需要一个检测机制来检测上述问题。原创 2025-03-24 10:47:43 · 943 阅读 · 0 评论 -
分析K8S中Node状态为`NotReady`问题
在Kubernetes(k8s)集群中,Node状态为NotReady通常意味着节点上存在某些问题,下面为你分析正常情况下节点应运行的容器以及解决NotReady状态的方法。原创 2025-03-21 15:21:25 · 744 阅读 · 0 评论 -
K8S中若要挂载其他命名空间中的 Secret
通过创建一个 Secret 的 ServiceAccount 和 RoleBinding 来实现对其他命名空间 Secret 的访问原创 2025-03-20 10:59:02 · 449 阅读 · 0 评论 -
在K8S中挂载 Secret 到 Pod
在 Kubernetes 里,把 Secret 挂载到 Pod 中有两种主要方式:作为卷挂载和作为环境变量挂载。下面为你提供相应的代码示例。原创 2025-03-20 10:41:16 · 600 阅读 · 0 评论 -
在K8S中部署Prometheus-Operator
Prometheus-Operator 通过 CRD 将 Prometheus 的配置与 Kubernetes 集成,使得监控和报警变得更加高效和自动化。结合 ServiceMonitor 和 PrometheusRule,可以动态发现监控目标并管理报警规则,Alertmanager 和 Grafana 则分别负责告警通知和数据可视化。这套基于 CRD 的监控栈大大降低了 Kubernetes 监控的复杂度,是生产环境中不可或缺的一部分。原创 2025-03-20 10:09:27 · 562 阅读 · 0 评论 -
查看k8s集群的资源使用情况
查看k8s集群的资源使用情况。原创 2025-03-07 08:21:42 · 783 阅读 · 0 评论 -
在 k8s中查看最大 CPU 和内存的极限
在 Kubernetes(k8s)中,你可以从不同层面查看最大 CPU 和内存的极限原创 2025-03-07 08:18:40 · 668 阅读 · 0 评论 -
helm install 命令执行时如何查看代理的设置是否生效
当你为。原创 2025-02-25 13:33:18 · 553 阅读 · 0 评论 -
Pod状态为“被驱逐(evicted)”的解决思路
Pod状态为“被驱逐(evicted)”的解决思路原创 2025-01-06 13:54:47 · 927 阅读 · 0 评论 -
k8s 节点压力驱逐(Node Pressure Eviction)
上面的配置只有硬驱逐策略,无软驱逐策略。节点压力驱逐(Node Pressure Eviction)是 Kubernetes 的一种机制,用于帮助集群维持稳定性和可靠性。kubelet 会监控集群节点的内存、 磁盘空间和文件系统的 inode 等资源,当这些资源的使用到达指定阈值(固定值或百分比)的时候,kubelet 将主动终止 Pod 以回收节点上资源。节点压力驱逐是 kubelet 主动终止 Pod 以回收节点上资源的过程。原创 2024-05-21 17:47:21 · 1416 阅读 · 0 评论 -
云计算概念与架构设计介绍
云计算是一种基于互联网的计算模式,在这个模式下,各种计算资源(例如计算机、存储设备、网络设备、应用程序等)可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算资源共享。在云计算架构中,通常会采用分层的设计思路,将计算资源划分为不同的层次,每个层次负责不同的功能和任务。例如,常见的云计算架构通常包括以下几个层次:物理层虚拟化层平台层应用层在上述云计算架构中,各个层次之间通过API(应用程序接口)进行通信和协作。原创 2024-05-13 10:23:58 · 1622 阅读 · 0 评论 -
云原生概念简介
所以"云原生"可以简单的理解为:“一个应用系统借助云计算相关的周边技术进行设计研发,从而使该应用能完美的适配云上环境”。云原生计算基金会总经理Priyanka Sharma对云原生的解释为:“云原生技术是指工程师和软件人员利用云计算构建更快、更有弹性的技术,这样做是为了快速满足客户的需求”。而官网(CNCF)上则将云原生的定义概况为:服务网格、声明式API、不可变基础设施、微服务、容器这五大特征,这也成了很多人对云原生的基础印象。云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。原创 2024-05-11 15:22:42 · 672 阅读 · 0 评论 -
k8s 日常维护命令简介
此命令列出了 kubectl 当前连接的k8s集群中所有可用的 api 资源(不同k8s集群可能由于集群版本不一样或存在用户自定义的api和资源从而会有所差别)。每个api资源代表了集群中的一种对象类型(如Pod、Service、Deployment等),从这里可以查看支持的api资源名称、简写(如果有)、是否是命名空间级别的资源等信息。-c 选项指定要查看的容器名称,--tail 选项指定要输出最后多少行日志(默认从头打印所有日志),-f 选项指定保持一直监听日志输出。可以看查看 pod 中有哪些容器。原创 2024-04-30 13:03:23 · 813 阅读 · 0 评论 -
Longhorn简介
Longhorn将不会停止卷,即使由于环境限制,例如没有足够的磁盘空间、不兼容的磁盘标签等,它不能保留附加卷的本地副本(工作负载)。“默认情况下,Longhorn工作负载的优先级与集群中的其他pods相同,这意味着在节点压力的情况下,例如节点耗尽内存,Longhorn工作负载将与其他pods的优先级相同。请注意,此设置仅设置系统管理组件的优先级。“当降级的卷中至少有一个失败的副本卷时,这个以秒为单位的间隔决定Longhorn为了重用失败副本的现有数据而不是直接为这个卷创建一个新副本最多需要等待多长时间。原创 2024-03-27 11:21:07 · 1479 阅读 · 0 评论 -
关于k8s中 storageclass 的 is-default-sc 默认存储设置
取决于安装模式,你的 Kubernetes 集群可能和一个被标记为默认的已有 StorageClass 一起部署。这个默认的 StorageClass 以后将被用于动态的为没有特定存储类需求的 PersistentVolumeClaims 配置存储。例如,它配置的存储可能太过昂贵。如果它们中有两个或多个被标记为默认,Kubernetes 将忽略这个注解, 也就是它将表现为没有默认 StorageClass。删除默认 StorageClass 可能行不通,因为它可能会被你集群中的扩展管理器自动重建。原创 2024-03-13 10:15:23 · 1541 阅读 · 0 评论 -
在K8S中Longhorn存储
Longhorn 是用于 Kubernetes 的轻量级、可靠且功能强大的分布式块存储系统。Longhorn使用容器(containers)和微服务()实现分布式块存储。Longhorn为每个块设备卷()创建一个专用的存储控制器(), 并跨存储在多个节点上的多个副本同步复制该卷。存储控制器()和副本(replicas)本身是使用 Kubernetes 编排的。原创 2024-02-27 11:05:39 · 1530 阅读 · 1 评论 -
Kubernetes的五大开源存储项目
OpenEBS 是一个开源的容器化存储平台,它是专为 Kubernetes 设计的,旨在提供可靠且易于管理的持久化存储解决方案。LongHorn 是 Kubernetes 的开源、轻量级分布式块存储框架,它将你的块存储分成 LongHorn 卷,并使用微服务和容器实现分布式块存储。Ceph 是一种开源的存储解决方案,提供堆存储、块存储和对象存储。在Kubernetes中,关于数据的持久化管理是一种挑战,对此,社区提供了多种存储的解决方案,这些方案旨在简化和优化容器化应用程序的持久化数据管理。原创 2024-02-26 09:36:46 · 1173 阅读 · 0 评论 -
在k8s中,使用DirectPV CSI作为分布式存储的优缺点
利用 DirectPV,你可以将相应的 PV 直接与节点上的物理存储设备(如磁盘)进行绑定,而无需通过网络存储服务(如 NFS 或 Ceph)来提供存储。这种直接访问物理卷的方式,有助于提高性能和降低延迟。综合来看,使用 DirectPV CSI 可以在一定程度上提升性能,简化部署和管理,但也需要权衡其局限性,特别是在动态性和灵活性方面。综上所述,结合 DirectPV 和 Minio 集群需要密切关注数据可靠性和系统可用性,设计和实施相应的容错和恢复策略可以帮助你更好地应对硬盘和节点故障。原创 2024-02-18 15:33:18 · 892 阅读 · 0 评论 -
convert docker run command to kubectl for one time execution 将docker run命令转换为kubectl一次执行
当Pod中的容器运行某些已完成的进程时,就会出现此问题。当其容器退出时,Pod完成。在Pod中连续运行容器是更常见的。shell 会被强制退出,关于如何保持 shell 打开的任何想法?或如何在死之前将bash命令传递给它?执行一个任务,该环境是我正在使用Kubernetes处理的环境。同样,我可以在K8S群集中运行busybox镜像。尝试运行一个docker镜像一次,以使用流行的。无法使该mc客户端以与上一个示例相同的方式工作。解决此完整问题的方法是保持容器运行。原创 2024-02-07 14:07:52 · 247 阅读 · 0 评论 -
在k8s中,CronJob 和 Job 的 Pod 退出保留时间
在k8s中job中停留的时间参数原创 2023-04-25 16:38:21 · 1467 阅读 · 1 评论 -
Containerd 配置 Proxy
containerd proxy原创 2023-03-13 14:53:35 · 1178 阅读 · 0 评论 -
在containerd,将 ‘ctr image‘ 转换成 ‘crictl image‘
在containerd,将 'ctr image' 转换成 'crictl image'原创 2022-09-20 09:43:34 · 4056 阅读 · 0 评论 -
Docker、containerd的小结
Docker、containerd的小结原创 2022-07-11 10:07:24 · 3146 阅读 · 0 评论 -
Minikube入门
什么是Minikube? Minikube是一种轻量化的Kubernetes集群,是Kubernetes社区为了帮助开发者和学习者能够更好学习和体验k8s功能而推出的,借助个人PC的虚拟化环境就可以实现Kubernetes的快速构建启动。目前已支持在macOS、Linux、Windows平台上利用各类本地虚拟化环境作为驱动运行。官方文档:minikube start | minikubeGithub地址:https://github.com/kubernetes/minikube M...原创 2022-05-01 21:33:44 · 2281 阅读 · 0 评论 -
在Jenkins上配置kubernetes环境
一、安装Kubernetes插件二、根据k8s配置文件config生成认证文件(1)找到config文件,默认是在/root/.kube/config(2)获取/root/.kube/config中对应内容并转化成base64 encoded文件# grep certificate-authority-data /root/.kube/config |cut -d" " -f 6 | base64 -d > ca.crt# grep client-certificate-d原创 2022-04-18 10:52:31 · 1349 阅读 · 0 评论 -
Kubernetes中查看用户的token并验证
kube-dns查看token#查看所有账号kubectl -n kube-system get sa取得secretskubectl -n kube-system get sa kube-dns -o yaml 取得secrets#secrets值为kube-dns-token-rst6j取得tokenkubectl get secrets kube-dns-token-rst6j -n kube-system -o yaml取得token值kubectl get secret k原创 2022-04-15 20:56:12 · 2437 阅读 · 0 评论 -
k8s用ServiceAccount Token的方式访问apiserver
在kubernetes集群,可以登陆到master集群,可以使用私钥证书的方式访问。证书路径:master的/etc/kubernetes/pki/(ca.crt / apiserver.crt / apiserver.key) 下面。# server是apiserver公网访问地址curl --cacert ca.crt --cert apiserver.crt --key apiserver.key https://$server/api这里再介绍一下使用ServiceAccount T原创 2022-04-15 20:05:18 · 3338 阅读 · 0 评论 -
通过kubeconfig文件生成证书,用curl访问Kubernetes API server
Kubernetes是一个完全基于API的系统。使用curl或Postman等简单工具,在构建应用程序之前获取API信息更方便。1、从查看 kubectl 的配置文件开始,需要:三个证书和 API server 的地址# cat /root/.kube/config 2、我们将会把证书设为环境变量,在设置时候请检查每一个参数。我们从 client-certificate-data 开始。export clientcert=$(grep client-cert ~/.kube/confi原创 2022-04-15 16:47:26 · 2392 阅读 · 1 评论 -
K8S 证书过期解决办法
问题现象K8S集群证书过期后,会导无法创建Pod,通过kubectl get nodes也无法获取信息,甚至dashboard也无法访问。查看K8S的日志:Part of the existing bootstrap client certificate is expired: 2021-06-10 06:29:04 +0000 UT这是说明k8s使用的证书过期了,k8s自带证书是一年的有效期。所以我们解决问题的办法就是更换证书。一、确认K8S证书过期时间查看k8s某一证书过期时间:原创 2022-04-14 15:03:57 · 14980 阅读 · 6 评论