K8s 集群运维
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_90914e95/k8s-new。
技能介绍
要解决的问题
手动执行 kubectl 之前,运维人员要先确认二进制是否存在、kubeconfig 从哪里来、凭据文件放在哪。这些准备步骤在一次性集群、CI 环境或跳板机上尤其琐碎:kubectl 没装就得翻包管理器或手动下载二进制;集群凭据只发布了一个 HTTP(S) 链接时,还得先 curl 下来再单独指定路径。
技能如何工作
核心是 scripts/k8s.sh 这个薄封装脚本,把「环境准备 + 执行 kubectl」收敛成一步:
- 自动安装 kubectl:未检测到二进制时,按当前 OS/架构从 DaoCloud 镜像下载稳定版本并缓存,命令期间临时加入
PATH;也可以通过--kubectl指定自己的二进制。 - kubeconfig 解析:支持本地路径(
--kubeconfig)或远程 URL(--kubeconfig-url)。URL 会被下载并缓存,文件按 URL 的sha256命名,写入时权限设为chmod 600。 - 参数透传:
--之后的内容原样转发给kubectl,例如scripts/k8s.sh --kubeconfig ~/.kube/config -- get pods -A。 - 优先级:显式 CLI 参数优先,其次是本地路径,最后是 URL;两者都缺失时脚本明确报错退出,而不是带着空配置继续执行。
适用边界与注意点
- 缓存命中后远程 kubeconfig 不会重复下载,需要最新凭据时用
--refresh强制刷新。 - 下载走
curl;自签名端点需要--insecure(等价于给 curl 传-k),只应在可信环境使用。 - 缓存目录默认是
$HOME/.cache/k8s-skill,可用--cache-dir覆盖。 - 远程 kubeconfig 是明文凭据,日志里应避免输出文件内容。
使用场景
- 凭据仅以 HTTP(S) 链接发布,下载远程 kubeconfig 后执行 kubectl get pods -A 查看全部资源
- CI 容器没有预装 kubectl,需要自动下载安装后执行 kubectl apply -f 完成清单部署
- 线上 Pod 异常,手边只有 kubeconfig 的 URL,下载凭据后 kubectl exec 进入容器排查
- 集群凭据地址未变,想复用缓存的 kubeconfig 直接执行 describe node,避免重复下载
适合人员
- 平台运维工程师,需要频繁在不同集群上执行 kubectl 排查问题并管理资源
- DevOps 工程师,要在 CI 流水线里自动安装 kubectl 并部署 Kubernetes 清单
- SRE,线上事故时手边只有 kubeconfig 链接,需要快速 exec 进 Pod 排查
- 云原生开发者,希望本地不用预装 kubectl 也能随时操作测试集群