
efrecon/kubectl该Docker镜像提供集成多个krew插件的kubectl工具,基于k8s-images项目自动构建,托管于Docker Hub。主要用途是简化Kubernetes管理工具链部署,用户无需手动安装配置kubectl、krew及其插件,可直接使用预配置插件的kubectl环境,适用于各类Kubernetes集群管理场景。
kubectl版本(K8S_VERSION)和krew版本(KREW_VERSION),满足不同环境版本需求KREW_PLUGINS参数指定预装krew插件列表,构建时自动安装KREW_ROOT目录,PATH环境变量优先包含$KREW_ROOT/bin,确保插件可直接调用kubectl为镜像入口点,挂载kubeconfig后即可直接执行kubectl及插件命令kubectl环境,无需本地配置kubectl和插件版本,消除环境差异构建镜像时可通过--build-arg调整以下参数:
| 参数名 | 说明 | 默认值 | 取值要求 |
|---|---|---|---|
K8S_VERSION | 指定kubectl版本 | stable | stable(安装最新稳定版)或具体版本号(带/不带v前缀,如1.28.0、v1.28.0) |
KREW_VERSION | 指定krew版本 | latest | latest或具体版本号(必须以v开头,如v0.4.3) |
KREW_PLUGINS | 预装krew插件列表 | (用户自定义) | 空格分隔的krew插件名称(需为krew插件仓库中存在的插件,如ctx ns tree) |
挂载本地kubeconfig文件,执行kubectl命令:
shell# 查看版本信息 docker run -it --rm -v ${HOME}/.kube/config:/root/.kube/config:ro efrecon/kubectl version # 获取集群节点信息 docker run -it --rm -v ${HOME}/.kube/config:/root/.kube/config:ro efrecon/kubectl get nodes
构建包含kubectl 1.28.0、krew v0.4.3及插件ctx(kubectx)、ns(kubens)、tree的镜像:
shelldocker build \ --build-arg K8S_VERSION=v1.28.0 \ --build-arg KREW_VERSION=v0.4.3 \ --build-arg KREW_PLUGINS="ctx ns tree" \ -t custom-kubectl:v1 \ [***]
使用自定义镜像执行插件命令:
shell# 列出Kubernetes contexts docker run -it --rm -v ${HOME}/.kube/config:/root/.kube/config:ro custom-kubectl:v1 ctx # 以树形结构查看Pod docker run -it --rm -v ${HOME}/.kube/config:/root/.kube/config:ro custom-kubectl:v1 tree pod my-pod -n default
ro(只读)模式,避免容器内意外修改配置KREW_PLUGINS需指定krew插件仓库中存在的插件名称,可通过krew插件列表查询KREW_VERSION指定具体版本时必须以v开头(如v0.4.3),与krew发布版本格式一致
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务