pam@介绍
Linux PAM(Pluggable Authentication Modules,可插拔认证模块)是一个灵活的认证框架,用于在 Linux 系统上为应用程序提供统一的认证、账户管理和会话管理功能。它最初由 Sun Microsystems 开发,后来被广泛应用于 Linux 和其他类 Unix 系统。PAM 的核心思想是将认证逻辑从应用程序中分离出来,通过模块化的方式实现可配置性和可扩展性。
PAM 的主要特点
- 模块化:PAM 使用独立的可插拔模块(如
pam_unix.so、pam_limits.so)来实现不同的认证功能,管理员可以根据需求组合这些模块。 - 灵活性:通过配置文件,系统管理员可以为不同的应用程序(如
ssh、sudo)定制认证策略,而无需修改应用程序代码。 - 统一性:提供标准化的 API,应用程序只需调用 PAM 接口即可完成复杂的认证流程。
- 可扩展性:支持添加自定义模块以满足特定需求。
ssh@dropbear ssh套件编译安装
ssh_config配置解读及ssh命令使用
kubectl plugin插件
nsenter(namesapce enter)进入命名空间
nsenter是 Linux 提供的一个命令行工具,可以让我们进入特定的命名空间(Namespace)。它适用于调试容器、Kubernetes Pod,或直接进入某个进程,使用宿主机系统的命令进行调试,排查(其原理是通过指定选项进入目标命名空间:如容器的 mount namespace,或选择保留宿主机的 mount namespace 以使用其文件系统)。解决容器缺少命令的问题。
nsenter 的原理
nsenter 是一个 Linux 命令行工具,全称是 “namespace enter”,用于进入一个或多个 Linux 命名空间(namespace),并在其中执行指定的命令。它是利用了 Linux 内核提供的命名空间隔离机制,直接操作进程的命名空间,而无需通过容器运行时(如 Docker 或 Podman)的间接方式。
Linux 命名空间简介
kubernetes中Ephemeral Containers(临时容器)介绍
在 Kubernetes 中,Ephemeral Containers(临时容器)是一种特殊的容器类型,设计用于调试和故障排查运行中的 Pod。它们是在 Kubernetes 1.16 版本中引入的,并在后续版本中逐步完善(到 1.23 版本成为 Beta 特性)。临时容器的主要特点是它们是临时的、轻量级的,可以动态添加到现有的 Pod 中,而无需修改 Pod 的原始定义或重新部署。
1. 什么是 Ephemeral Containers?
临时容器是一种运行在现有 Pod 中的容器,但它的生命周期是短暂的,通常用于一次性任务,例如检查 Pod 的状态、运行调试工具或查看日志等。与 Pod 中的普通容器(containers 字段定义的容器)不同,临时容器不会被 Pod 的生命周期管理(比如重启策略)所影响,也不会出现在 Pod 的原始规范中。
Kubernetes添加feature-gate支持
开启临时容器(ephemeral containers),临时容器是 Kubernetes 中用于调试 Pod 的一种机制,但它需要在集群中启用相关特性才能使用。
env
- kubernetes-v1.19
- centos8
kubectl debug GA(Kubernetes 1.25)
kubectl debug 命令是在 Kubernetes 1.18 版本中首次引入的,当时作为一个 alpha 特性。从 Kubernetes 1.20 开始,它升级为 beta 特性,并逐渐稳定。以下是具体的时间线:
- Kubernetes 1.18(2020年3月发布):
kubectl debug作为 alpha 特性引入,需要启用EphemeralContainers特性门(Feature Gate)。 - Kubernetes 1.20(2020年12月发布):升级为 beta 特性,默认启用
EphemeralContainers,无需手动开启。 - Kubernetes 1.25(2022年8月发布):
EphemeralContainers特性正式稳定,kubectl debug成为一个成熟的工具。
如果你想使用 kubectl debug,建议确保你的 kubectl 版本至少是 1.18 或更高版本。为了获得更稳定的体验,推荐使用 1.20 或更新的版本。如果你在使用较旧的集群,请检查集群是否启用了 EphemeralContainers 特性。
