【问题标题】:How to install kubectl and helm using dockerfile?如何使用 dockerfile 安装 kubectl 和 helm?
【发布时间】:2021-01-07 15:57:48
【问题描述】:

我是 Docker 新手。我正在尝试创建一个 dockerfile,它基本上设置 kubectl(Kubernetes 客户端)、helm 3 和 Python 3.7。我用过:

FROM python:3.7-alpine
COPY ./ /usr/src/app/
WORKDIR /usr/src/app

现在我想弄清楚如何添加kubectlhelm。安装这两个的最佳方法是什么?

【问题讨论】:

  • 您介意在 best 周围添加一些上下文吗?您是尝试将版本保持在特定点还是始终使用最新版本?你想找到最纤薄的图像吗?我通常会像这样拉最新的,但这有点取决于你的用例。
  • @JasonMorgan 最新可能会为我完成这项工作。我总是可以用$K8S_VERSION 替换它吗?

标签: docker kubernetes dockerfile kubernetes-helm


【解决方案1】:

我猜 Python 应该可以从一个 python 基础镜像中获得。 我的看法是这样的

ENV K8S_VERSION=v1.18.X
ENV HELM_VERSION=v3.X.Y
ENV HELM_FILENAME=helm-${HELM_VERSION}-linux-amd64.tar.gz

然后在 Dockerfile 中

RUN curl -L https://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl \
 && curl -L https://storage.googleapis.com/kubernetes-helm/${HELM_FILENAME} | tar xz && mv linux-amd64/helm /bin/helm && rm -rf linux-amd64

但请注意基础镜像中 curl 或 wget 的可用性,可能必须先安装这些或其他工具和程序,然后才能在 Dockerfile 中使用它。这总是取决于使用的基础图像

【讨论】:

  • 仅供参考,引用的 helm URL 现在已损坏。
【解决方案2】:

工作 Dockerfile。这将安装最新和稳定版本的kubectlhelm-3

FROM python:3.7-alpine
COPY ./ /usr/src/app/
WORKDIR /usr/src/app
RUN apk add curl openssl bash --no-cache
RUN curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" \
    && chmod +x ./kubectl \
    && mv ./kubectl /usr/local/bin/kubectl \
    && curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 \
    && chmod +x get_helm.sh && ./get_helm.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2020-03-11
    • 2021-01-27
    • 2021-02-16
    • 2023-03-10
    • 2021-05-05
    • 1970-01-01
    相关资源
    最近更新 更多