【问题标题】:Execute docker and kubectl command inside jenkins pod with persistent volume support在 jenkins pod 中执行 docker 和 kubectl 命令并支持持久卷
【发布时间】:2020-09-30 15:30:51
【问题描述】:

我正在使用 Kops 在 AWS 上运行 kubernetes 集群。我们在上面部署 Jenkins,我们想在 jenkins pod 中运行 docker、kubectl 命令,并希望输出显示 kubernetes 集群节点、pod 和容器。我们可以通过 dockerfile 或 docker compose 来实现这一点。我们尝试将 docker socket 挂载为卷,但没有锻炼。

【问题讨论】:

  • 如果您正确登录到集群,您应该能够使用 kubectl 命令并在您的 pod 中执行。验证 kops get cluster 是否有效,然后 kubectl get pods 获取 pod,kubectl exec -it my-pod-name bash 执行到 pod。这是你想要达到的目标吗?
  • 不,我的问题是我想在 jenkins 容器中运行 docker ps 或 docker push pull 命令。以下是我在运行 jenkins 工作时遇到的错误。 /tmp/jenkins7361739452902076067.sh:2:/tmp/jenkins7361739452902076067.sh:码头:未找到

标签: docker jenkins kubernetes


【解决方案1】:

常规的 jenkins 镜像不附带 docker 命令。

查看这个 jenkins 镜像,它包含 docker 和 docker-compose 命令: https://hub.docker.com/r/trion/jenkins-docker-client

【讨论】:

    【解决方案2】:

    我找到了解决方案,我需要在 jenkins 容器中安装 docker socket 和 docker 二进制文件,它会像魅力一样锻炼。

    【讨论】:

    • 我建议在集群中的 Docker 容器中运行 Docker 并配置构建以连接到它,而不是绑定安装 Kubernetes 节点 docker 守护进程。我维护一个公开可用的Helm Chart for installing a dindStatefulSet(目前是预发布)。
    猜你喜欢
    • 2021-09-03
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2018-04-19
    • 2020-08-18
    相关资源
    最近更新 更多