- 博客(29)
- 收藏
- 关注
原创 浅析Resource Quota中limits计算机制
在生产环境中,通常需要通过配置资源配额(Resource Quota)来限制一个命名空间(namespace)能使用的资源量。在资源紧张的情况下,常常需要调整工作负载(workload)的请求值(requests)和限制值(limits),以确保工作负载能够顺利部署。本文将从Kubernetes源码的角度,简要分析Kubernetes如何计算Pod中的限制值(limits)对资源配额(Resource Quota)限制的影响。
2024-06-27 19:41:33 1042
原创 Pod安全上下文与Linux Capabilities浅析
在云原生时代,Kubernetes 已经成为容器编排的事实标准,提供了强大的功能以支持各种规模和复杂度的应用部署。然而,随着 Kubernetes 在企业中的广泛应用,安全性问题也日益凸显。为了确保集群安全,我们必须对运行在 Kubernetes 中的容器和 Pod 进行严格的安全管控。Pod 安全上下文(Security Context)是 Kubernetes 提供的关键特性之一,它允许在 Pod 和容器级别设置安全相关的参数,以实现对容器的细粒度安全控制。
2024-04-01 12:25:29 1430
原创 ConfigMap和Secret配置Pod环境变量与热更新
在云原生应用开发和部署过程中,ConfigMap 和 Secret 是非常重要的资源对象,用于存储和管理应用程序的配置信息和敏感数据。然而,当我们更新 ConfigMap 或 Secret 的内容时,对于已经运行的 Pod,其中引用的环境变量和挂载的文件是否会自动更新呢?
2024-03-31 23:19:24 893
原创 Kubernetes之Projected Volume
在 Kubernetes 中,有几类特殊的 Volume,它们存在的意义不是为了存放容器里的数据,也不是用来进行容器和宿主机之间的数据交换。这些特殊 Volume 的作用是为容器提供预先定义好的数据。从容器的角度来看,这些 Volume 里的信息就好像是被 Kubernetes "投射"(Project)进入容器当中的,这就是 Projected Volume 的含义。
2024-03-31 22:39:25 949
原创 Kubernetes NetworkPolicy 网络策略浅析
在 Kubernetes 中,NetworkPolicy 是一种用于控制 Pod 之间网络通信的资源对象。它允许用户定义一组规则,规定哪些 Pod 可以相互通信,从而实现网络隔离和安全性。NetworkPolicy 基于标签选择器来识别应用策略的 Pod,并使用入站(Ingress)和出站(Egress)规则来控制流量,提供Pod级别和 Namespace级别网络访问控制基于标签选择器:通过标签选择器来选择应用策略的 Pod。入站和出站规则:定义允许的入站和出站流量规则。
2024-03-30 23:57:58 860
原创 CKS之安全沙箱运行容器:gVisor
gVisor是Google开源的一种容器沙箱技术,其设计初衷是在提供较高安全性的同时,尽量减少对性能的影响。通过创建一个用户空间内核,gVisor拦截并处理容器内应用程序的系统调用,从而实现对容器内进程与宿主机内核间交互的隔离。这种设计有效防止了恶意程序利用内核漏洞对宿主机造成影响。gVisor兼容OCI标准,可以无缝集成到Docker和Kubernetes(K8s)中,使其部署和使用变得更为便捷。:增强了容器的安全性,有效隔离了容器与宿主机内核的直接交互。
2024-03-30 23:42:26 1865 1
原创 CKS之Kubernetes审计日志
Kubernetes集群中,API Server的审计日志详细记录了用户、服务对集群资源的请求操作. 通过对API Server的审计,可以监控分析API流量,检测安全隐患.管理节点:controller-manager、scheduler工作节点:kubelet、kube-proxy集群服务:CoreDNS、Calico、HPA等客户端工具:kubectl、API、Dashboard。
2024-03-29 13:07:13 1068
原创 Kubernetes YAML语言入门
YAML (YAML Ain't Markup Language) 是一种人性化的数据序列化语言,创建于 2001 年。它的设计目标是方便人类读写,同时也让计算机易于解析和生成。尽管名字中带有 "YA"(Yet Another)的字样,但实际上 YAML 与 XML 有着本质上的不同。
2024-03-29 11:51:37 499
原创 浅析Kubernetes健康检查与优雅终止
在 Kubernetes 生态中,容器的生命周期管理和应用的优雅上下线至关重要。Kubernetes 通过 Pod 探针和生命周期钩子等机制,为容器提供了精细的健康监测和状态管理能力。Pod 探针确保只有处于健康状态的容器能够服务请求,而生命周期钩子则在容器启动和终止时执行定制化操作,从而实现应用的平滑启动和优雅终止。这些机制共同保障了应用的稳定运行和数据一致性,是 Kubernetes 高效管理容器化应用不可或缺的工具。
2024-03-28 21:53:26 1211
原创 Nginx官方镜像Dockerfile浅析
综上所述,exec "$@" 这行命令的作用是执行传递给入口点脚本的命令(如 nginx -g "daemon off;"),并且以这个命令为容器的主进程。这保证了容器直接运行指定服务,如 Nginx,并且当该服务停止时,容器也会停止。在设计其他镜像时,尤其是需要处理信号或需要确保容器优雅停止的场景中,使用exec "$@"可以提供类似的优势。例如,数据库镜像、Web 服务器镜像或任何长期运行的服务都可以从这种模式中受益。它确保了容器能够接收到停止信号并优雅地终止,同时也避免了资源泄漏的问题。
2024-03-28 15:22:31 3031
原创 CKS之容器进程分析工具:Sysdig
Sysdig 是一款集多种功能于一体的强大系统监控、分析和故障排查工具。它综合了 strace、tcpdump、htop、iftop 以及 lsof 等工具的功能,能够提供系统资源利用率、进程活动、网络连接以及系统调用等详细信息。Sysdig 不仅能够捕获大量系统运行数据,还具备强大的数据分析能力Sysdig 通过在内核中嵌入驱动模块来挂钩系统调用。这使得在系统调用执行和完成时,它能够捕获相关信息,并将其传输至一个特定的缓冲区。随后,用户空间的组件对这些数据进行处理,包括解压、解析和过滤等操作。
2024-03-27 20:20:58 547
原创 Calico配置路由反射器 (RR) 模式
在 Calico 网络中,默认使用 Node-to-Node Mesh 全互联模式,即集群中的每个节点之间都会相互建立 BGP 连接,用于路由交换。然而,随着集群规模的扩大,全互联模式会导致连接数成倍增加,产生性能问题。为了解决这个问题,可以使用路由反射器(Route Reflector,简称 RR)模式。在 RR 模式下,选择一个或多个 Calico 节点充当路由反射器,集中分发路由信息。其他节点作为 RR 的客户端,从 RR 节点获取路由信息,而不需要与所有其他节点建立 BGP 连接。
2024-03-27 19:20:25 1777
原创 CKS之镜像漏洞扫描工具:Trivy
Trivy是一款用于扫描容器镜像、文件系统、Git仓库等的漏洞扫描工具它可以发现目标软件存在的漏洞、配置错误、敏感信息等安全问题Trivy易于安装和使用,可与CI系统集成。
2024-03-26 21:19:58 1023
原创 Docker in Docker(DinD)浅析
Docker in Docker(简称 DinD)是一种在 Docker 容器内运行 Docker 容器的技术。它允许在已经运行的 Docker 容器中再次运行 Docker 容器,从而实现嵌套的容器环境。
2024-03-26 13:11:14 1669
原创 浅析容器技术实现原理之Cgroups
Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。在 Linux 中,Cgroups 给用户暴露出来的操作接口是文件系统,即它以文件和目录的方式组织在操作系统的 /sys/fs/cgroup 路径下。
2024-02-28 18:03:07 981 1
原创 浅析command、args、CMD、ENTRYPOINT之间关系
当您在 Kubernetes 中使用command和args时,请确保理解这些设置会如何影响容器的启动行为。如果您的容器依赖于 Dockerfile 中定义的ENTRYPOINT或CMD,更改这些值可能会导致容器以意外的方式运行或启动失败。总结来说,Kubernetes 中的command对应于 Docker 的ENTRYPOINT,而args对应于 Docker 的CMD,并且在 Kubernetes Pod 定义中指定这些会覆盖 Docker 镜像中的相应设置。
2024-02-24 08:30:00 2716
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人