自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 kubernetes三种方式实现金丝雀发布

kubernetes三种方式实现金丝雀发布

2024-03-25 08:30:00 1240

原创 Kubernetes弹性伸缩之水平扩缩容HPA

Kubernetes弹性伸缩之水平扩缩容HPA

2024-03-25 08:00:00 786

原创 基于Google云原生工程师的kubernetes最佳实践(三)

kubernetes最佳实践(三)

2024-03-24 01:35:08 1137 1

原创 基于Google云原生工程师的kubernetes最佳实践(二)

kubernetes最佳实践(二)

2024-03-24 01:28:38 1373 1

原创 浅析Pod调度

浅析Pod调度

2024-03-23 22:33:01 1413 1

原创 CKS之k8s安全基准工具:kube-bench

CKS之kube-bench介绍以及基础使用

2024-03-20 09:00:00 1330 2

原创 故障分析:部署在某些Node上的所有Pod无法访问svc

通过分析解决部署在某几个Node上的所有Pod无法访问svc的问题

2024-03-19 16:48:28 1445 1

原创 基于Google云原生工程师的kubernetes最佳实践(一)

基于Google云原生工程师的kubernetes最佳实践

2024-03-13 13:54:28 1046

原创 构建镜像Dockerfile文件优化

构建镜像Dockerfile文件优化

2024-03-12 23:39:06 1290 1

原创 Ingress Controller暴露三种常用生产实战方案

Ingress Controller暴露三种常用生产实战方案

2024-03-03 18:49:25 1078

原创 浅析容器技术实现原理之Cgroups

Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。在 Linux 中,Cgroups 给用户暴露出来的操作接口是文件系统,即它以文件和目录的方式组织在操作系统的 /sys/fs/cgroup 路径下。

2024-02-28 18:03:07 981 1

原创 浅析容器技术实现原理之Namespace

浅析容器技术实现原理之Namespace

2024-02-26 12:10:26 1105 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

原创 多种方法修改容器应用参数

针对需要重启应用才生效的参数,且容器无法通过configmap的方式改变参数,多种方法修改容器应用参数

2024-02-23 12:06:28 1717

原创 如何让containerd从搭建的私有http harbor仓库拉取镜像

配置containerd从http harbor仓库拉取镜像

2024-02-22 21:48:18 3257 1

kubernetes resource源码

kubernetes resource源码

2024-06-27

kube-bench检查结果

kube-bench检查结果

2024-03-19

Kubernetes-Best-Practices

Kubernetes-Best-Practices

2024-03-08

/etc/containerd/config.toml

修改/etc/containerd/config.toml配置,使得containerd可以从http拉取镜像

2024-02-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除