atlassian/pipelines-kubectlBitbucket Pipelines Kubectl 镜像是一个轻量级 Docker 镜像,基于 Alpine Linux 3.16 构建,内置 Kubernetes 命令行工具 kubectl。该镜像由 Atlassian Bitbucket Pipelines 团队维护,旨在为 Bitbucket CI/CD 流程提供标准化的 kubectl 运行环境,简化在自动化流水线中与 Kubernetes 集群的交互操作。
kubectl 命令(如部署应用、查看集群资源、配置 Kubernetes 资源等)。kubectl 的便捷工具,无需手动安装和配置。kubectl 命令行工具,支持与 Kubernetes 集群的所有标准交互操作。ca-certificates、bash),确保 HTTPS 通信安全性和基本 shell 环境支持。kubectl 版本,确保与目标 Kubernetes 集群版本兼容。ENTRYPOINT 设为 kubectl,容器启动即可直接执行命令,简化流水线配置。kubectl 部署应用到 Kubernetes 集群、更新配置或执行集群检查。kubectl 的容器,无需在本地系统安装 kubectl。kubectl 命令。kubectl 版本的自动化脚本或工具链。kubectl 运行环境的场景。若需自定义 kubectl 版本,可基于提供的 Dockerfile 构建镜像:
bash# 克隆包含 Dockerfile 的仓库后执行构建,指定 kubectl 版本(如 1.28.0) docker build --build-arg VERSION=1.28.0 -t bitbucket-pipelines-kubectl:1.28.0 .
若镜像已上传至容器仓库(如 Docker Hub、Atlassian 私有仓库),可直接拉取:
bashdocker pull <仓库地址>/bitbucket-pipelines-kubectl:<版本号> # 示例:docker pull my-registry/kubectl:1.28.0
kubectl 命令由于镜像默认 ENTRYPOINT 为 kubectl,容器启动时的命令参数将直接作为 kubectl 的子命令和参数。
查看 kubectl 版本:
bashdocker run --rm bitbucket-pipelines-kubectl:1.28.0 version --client
查看 Kubernetes 集群 pods(需挂载本地 kubeconfig 以访问集群):
bash# 将本地 ~/.kube/config 挂载到容器内 /root/.kube/config(容器默认工作目录为 /root) docker run --rm -v ~/.kube/config:/root/.kube/config bitbucket-pipelines-kubectl:1.28.0 get pods
在 bitbucket-pipelines.yml 中配置步骤,使用该镜像执行 kubectl 命令。示例如下:
yamlpipelines: default: - step: name: Deploy to Kubernetes Cluster image: bitbucket-pipelines-kubectl:1.28.0 # 使用构建或拉取的镜像 script: - kubectl config use-context my-k8s-cluster # 切换到目标集群上下文(需提前配置集群访问凭证) - kubectl apply -f k8s/deployment.yaml # 应用部署配置 - kubectl rollout status deployment/my-app # 检查部署状态 - kubectl get pods -l app=my-app # 验证 pod 启动
| 参数名 | 说明 | 示例值 |
|---|---|---|
VERSION | 指定 kubectl 版本,对应 Kubernetes 官方 release 版本(如 1.28.0) | 1.28.0 |
| 变量名 | 说明 | 来源 |
|---|---|---|
KUBE_VERSION | 容器内反映构建时指定的 kubectl 版本 | 构建时由 ARG VERSION 注入 |
bash# 挂载本地 kubeconfig,执行 kubectl 命令查看集群节点 docker run --rm \ -v ~/.kube/config:/root/.kube/config \ # 挂载集群访问配置 bitbucket-pipelines-kubectl:1.28.0 \ # 使用指定版本镜像 get nodes --output wide # kubectl 命令及参数
在 bitbucket-pipelines.yml 中配置 Kubernetes 集群访问凭证(通过 Bitbucket 环境变量注入),并执行部署:
yamlpipelines: branches: main: # 仅在 main 分支触发 - step: name: Deploy to Production Cluster image: bitbucket-pipelines-kubectl:1.28.0 script: # 将 Bitbucket 环境变量中的集群凭证写入 kubeconfig - echo "$KUBE_CONFIG" > /root/.kube/config # 部署应用并验证 - kubectl apply -f k8s/prod/deployment.yaml - kubectl set image deployment/my-app my-app=my-registry/my-app:${BITBUCKET_COMMIT} # 使用当前提交哈希作为镜像标签 - kubectl rollout status deployment/my-app environment: # 在 Bitbucket 仓库设置中配置 KUBE_CONFIG 环境变量(存储 base64 编码的 kubeconfig 内容) KUBE_CONFIG: $KUBE_CONFIG


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务