准备
1、kubectl二进制准备
2、Dockerfile文件准备
From alpine:3.10
ARG KUBECTL_VERSION=v1.19.7
ARG TARGETPLATFORM
RUN apk update && apk add \
bash \
bash-completion \
busybox-extras \
net-tools \
vim \
curl \
wget \
tcpdump \
ca-certificates && \
update-ca-certificates && \
rm -rf /var/cache/apk/* && \
echo -e 'source /usr/share/bash-completion/bash_completion\nsource <(kubectl completion bash)' >>~/.bashrc
COPY kubectl /usr/local/bin/kubectl
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
3、entrypoint.sh文件准备,容器启动程序,是一个循环休眠程序,防止容器退出
#!/bin/bash
set -e
if [ "$1" = '' ]; then
while true; do sleep 1000; done
fi
exec "$@"
步骤
1、创建文件夹mkdir -p /dockerfile/kubectl,将准备相关文件放入kubectl文件夹中
![]()
2、切换到kubectl文件夹内使用docker build 构建镜像
docker build --tag=kubectl:v1.19.7 .
3、测试镜像
// 创建测试容器并将kubeconfig挂载到容器中
docker run --name kubectl -d -v /root/.kube:/root/.kube kubectl:v1.19.7
// 进入容器使用kubectl命令
docker exec -it kubectl bash
kubectl get node
测试结果

8102

被折叠的 条评论
为什么被折叠?



