Docker builds kubectl image implementation steps

Docker builds kubectl image implementation steps

If the program service is deployed using k8s integrated with gitlab ci/cd, the kubeclt image is needed in the gitlab-ci process. There are two ways to build a kubectl image using docker

Method 1 (the image is relatively small, about 45.8M)

Install the kubectl executable using curl on Linux

cd /usr/local/bin
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.1/bin/linux/amd64/kubectl
chmod +x ./kubectl

Refer to the official installation documentation for details

Next, create a new Dockerfile file in the /usr/local/bin directory and write the following content

FROM alpine:latest
COPY kubectl /usr/local/bin/
RUN chmod +x /usr/local/bin/kubectl

After the Dockerfile file is built, execute the build command in the same directory

docker build -t registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1 .

Wait for the image to be built

Method 2 (the image is relatively large, about 48.9M)

This method is relatively convenient, but the construction is slow. During the construction process, you need to download the kubectl executable file and directly create a new Dockerfile file with the following content

FROM alpine:latest

RUN apk add --update -t ​​deps curl

RUN curl -L https://storage.googleapis.com/kubernetes-release/release/v1.20.1/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl \
  && chmod +x /usr/local/bin/kubectl

RUN apk del --purge deps \
  && rm /var/cache/apk/*

Execute the build command in the same directory

docker build -t registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1 .

at last

1. Test whether the built image can be used normally

docker run -it registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1 kubectl version --client

The output content is as follows, that is, the built image can be used normally

Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}

2. Pull the image from the Registry

docker pull registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1

3. Push the image to the Registry and replace [ImageId] with the corresponding image ID

docker login --username=usernameregistry.cn-hangzhou.aliyuncs.com

docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1

docker push registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1

This is the end of this article about the implementation steps of Docker building kubectl image. For more relevant content about Docker building kubectl image, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • How to add automatic completion commands for docker and kubectl on Mac

<<:  Five ways to traverse objects in javascript Example code

>>:  Research on the value of position attribute in CSS (summary)

Recommend

Solution to the inconsistency between crontab execution time and system time

Preface In LINUX, periodic tasks are usually hand...

Summary of the differences between Mysql primary key and unique key

What is a primary key? A primary key is a column ...

CSS Standard: vertical-align property

<br />Original text: http://www.mikkolee.com...

MySQL deep paging (how to quickly paginate tens of millions of data)

Table of contents Preface Case optimization summa...

Summary of the understanding of virtual DOM in Vue

It is essentially a common js object used to desc...

Web page custom selection box Select

Everyone may be familiar with the select drop-dow...

Vue mobile terminal determines the direction of finger sliding on the screen

The vue mobile terminal determines the direction ...

Web Standard Application: Redesign of Tencent QQ Home Page

Tencent QQ’s homepage has been redesigned, and Web...

Details of using Vue slot

Table of contents 1. Why use slots? 1.1 slot 1.2 ...

Comparison between Redis and Memcache and how to choose

I've been using redis recently and I find it ...

Detailed steps for smooth transition from MySQL to MariaDB

1. Introduction to MariaDB and MySQL 1. Introduct...