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 つの方法 サンプルコード

推薦する

少なくともn日間連続してログインしているユーザーに対するSQLクエリ

MySQL ツールを使用して、3 日間連続する例を見てみましょう。 1. SQL テーブルを作成しま...

Dockerは指定されたメモリで操作を実行します

次のように: -m, --memory メモリ制限。形式は数値と単位です。単位は b、k、m、g の...

MySQLデッドロックの原因と解決策

データベースは、オペレーティング システムと同様に、複数のユーザーが使用する共有リソースです。複数の...

Javascript クロージャの使用シナリオの原則の詳細

目次1. 終了2. クロージャの使用シナリオ1.タイムアウトを設定する2. コールバック3. 手ぶれ...

MySQL 同期遅延が発生したときに Seconds_Behind_Master が 0 のままになる理由

目次問題の説明原理分析問題分析拡大する総括する問題の説明ユーザーはプライマリ データベースに対して変...

Docker: /etc/default/docker の DOCKER_OPTS パラメータを変更しても反映されない

デフォルトでは、 /etc/default/docker 設定は有効になりません。docker 環境...

MySQLのインデックス選択と最適化の詳細な説明

目次インデックスモデルB+ツリーインデックスの選択インデックスの最適化インデックスの選択性カバーイン...

Docker は次の「Linux」になれるか?

Linux オペレーティング システムは過去 20 年間にわたってデータ センターに革命をもたらし...

Docker に Zookeeper を素早くインストールする方法の詳細なチュートリアル

Docker で Zookeeper を素早くインストール会社を変わってから長らくZookeeper...

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

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

Nginx+Tomcat 負荷分散クラスタのインストールと構成のケースの詳細な説明

目次序文1. Nginx+Tomcat 2. Nginxサーバーを構成する3. Tomcatアプリケ...

Linux システムに docker をインストールし、ssh 経由で docker コンテナにログインする方法

注: 私はCentosを使ってdockerをインストールしていますステップ1: Dockerをインス...

テーブル適応とオーバーフローのいくつかの設定の詳細な説明

1. テーブル リセットの 2 つのプロパティ: ①border-collapse: collaps...

TypeScript ジェネリックパラメータのデフォルト型と新しい厳密なコンパイルオプション

目次概要コンポーネントクラスの型定義を作成するジェネリック型を使用してPropsとStateを定義す...

SSL で Nginx リバース プロキシを構成する簡単な手順

序文リバース プロキシは、Web 経由で行われたリクエスト (http と https の両方) を...