Docker ビルド kubectl イメージ実装手順

Docker ビルド kubectl イメージ実装手順

プログラムサービスがgitlab ci/cdと統合されたk8sを使用してデプロイされている場合、gitlab-ciプロセスでkubecltイメージが必要です。dockerを使用してkubectlイメージを構築する方法は2つあります。

方法1(画像が比較的小さい、約45.8M)

Linux で curl を使用して kubectl 実行ファイルをインストールする

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

詳細については公式のインストールドキュメントを参照してください

次に、/usr/local/binディレクトリに新しいDockerfileファイルを作成し、次の内容を記述します。

アルパイン:最新より
kubectl /usr/local/bin/ をコピーします
chmod +x /usr/local/bin/kubectlを実行します。

Dockerfileファイルがビルドされたら、同じディレクトリでビルドコマンドを実行します。

次のコマンドを実行して、docker build を実行します。

イメージが構築されるのを待つ

方法2(画像が比較的大きい、約48.9M)

この方法は比較的便利ですが、構築が遅くなります。構築プロセス中に、kubectl実行ファイルをダウンロードし、次の内容の新しいDockerfileファイルを直接作成する必要があります。

アルパイン:最新より

apk add --update -t​​ ​​deps curlを実行します

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 を実行します。

apk del --purge deps \ を実行します
  && rm /var/cache/apk/*

同じディレクトリでビルドコマンドを実行する

次のコマンドを実行して、docker build を実行します。

やっと

1. ビルドしたイメージが正常に使用できるかどうかをテストする

docker run -it registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1 kubectl バージョン --client

出力内容は以下の通りで、ビルドしたイメージは正常に使用できる。

クライアント バージョン: version.Info{メジャー:"1", マイナー:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", コンパイラ:"gc", プラットフォーム:"linux/amd64"}

2. レジストリからイメージを取得する

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

3. イメージをレジストリにプッシュし、[ImageId]を対応するイメージIDに置き換えます。

docker ログイン --username=usernameregistry.cn-hangzhou.aliyuncs.com

docker タグ [イメージ ID] registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1

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

これで、Docker ビルド kubectl イメージの実装手順に関するこの記事は終了です。Docker ビルド kubectl イメージに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Mac で docker と kubectl の自動補完コマンドを追加する方法

<<:  乱数、文字列、日付、検証コード、UUIDを生成するMySQLメソッド

>>:  JavaScript でオブジェクトをトラバースする 5 つの方法 サンプルコード

推薦する

CSS で隠し要素を実現する 7 つの興味深い方法

序文非表示要素の 3 つの属性である表示、可視性、不透明度の類似点と相違点は、フロントエンドの就職面...

垂直方向の中央揃えをエレガントに実現する方法を教えます(推奨)

序文CSS で水平方向と垂直方向に中央揃えする方法はたくさんあります。この記事で紹介する方法は非常に...

MySQLのパフォーマンスが突然低下する理由

場合によっては、SQL ステートメントが通常どおり、非常に速く実行される状況に遭遇することがあります...

MYSQL パフォーマンス アナライザー EXPLAIN 使用例分析

この記事では、例を使用して MYSQL パフォーマンス アナライザー EXPLAIN の使用方法を説...

CSS を使用してデータ ホットスポット効果を実現する方法

効果は以下のとおりです。 分析する1. ここでは、点を囲む 3 つの円がズームアニメーションを実行し...

MySQL Community Server 5.7.19 インストール ガイド (詳細)

MySQL公式サイトのzipファイルのダウンロードリンク https://dev.mysql.co...

MySQL における in と exists の使い方と違いの紹介

まずコードを書いて (int i=0;i<1000;i++){ (int j=0;j<5...

Linux カーネルプログラミングにおけるコンテナの of() 関数の紹介

序文Linux カーネルプログラミングでは、マクロ関数 container_of(ptr, type...

ネイティブ js でカスタム難易度のマインスイーパ ゲームを実装する

この記事の例では、マインスイーパゲームを実装するためのjsの具体的なコードを参考までに共有しています...

MySQL における exists、in、any の基本的な使い方

【1】存在するループを使用して外部テーブルを 1 つずつクエリし、各クエリの存在する条件ステートメン...

Linux テキスト検索コマンド find の詳細な使用方法

find コマンドは主にディレクトリやファイルを検索するために使用され、一致のために複数のパラメータ...

ウェブデザインにおける階層化インターフェースの設計経験

多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...

JS WebSocket 切断理由とハートビートの仕組みの詳しい説明

1. 切断理由WebSocket が切断される理由は多数あります。WebSocket が切断されたと...

MySQL で遅い SQL 文を見つける方法

MySQL で遅い SQL ステートメントを見つけるにはどうすればよいでしょうか?これは、多くの人を...

mysqlは指定された期間内の統計データを取得します

mysqlは指定された期間内の統計データを取得します年別統計 選択 カウント(*)、 DATE_FO...