1. ホーム
  2. linux

[解決済み] MinikubeでローカルのDockerイメージを使用するには?

2022-03-20 23:52:58

質問

で使用したいDockerイメージがいくつかあります。 minikube . ローカルイメージを直接使用する代わりに、まず同じイメージをアップロードし、次にダウンロードする必要があるのは困ります。どうすればいいのでしょうか?

試してみたもの
1. 以下のコマンドを実行してみた(別々に、2回ともminikubeのインスタンスを削除し、新たに起動した)。

kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989
kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989 imagePullPolicy=Never

出力します。

NAME                    READY     STATUS              RESTARTS   AGE
hdfs-2425930030-q0sdl   0/1       ContainerCreating   0          10m

何らかのステータスに引っかかるだけで、レディ状態になることはありません。


2. レジストリを作成し、そこに画像を入れてみましたが、これもうまくいきませんでした。この作業は間違っているかもしれませんが、適切な手順が見つかりません。

ローカルなdockerイメージをローカルなkubernetesインスタンスで使用するための手順を教えてください。
OS: ubuntu 16.04
Docker : Docker バージョン 1.13.1、ビルド 092cba3
Kubernetes :

Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.3", GitCommit:"029c3a408176b55c30846f0faedf56aae5992e9b", GitTreeState:"clean", BuildDate:"2017-02-15T06:40:50Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"linux/amd64"}

もし誰かがこれを行うためにdocker-composeを使用するソリューションを得るのを助けてくれるなら、それは素晴らしいことです。

編集する

で読み込んだ画像 eval $(minikube docker-env :

REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
fluxcapacitor/jupyterhub                              latest              e5175fb26522        4 weeks ago         9.59 GB
fluxcapacitor/zeppelin                                latest              fe4bc823e57d        4 weeks ago         4.12 GB
fluxcapacitor/prediction-pmml                         latest              cae5b2d9835b        4 weeks ago         973 MB
fluxcapacitor/scheduler-airflow                       latest              95adfd56f656        4 weeks ago         8.89 GB
fluxcapacitor/loadtest                                latest              6a777ab6167c        5 weeks ago         899 MB
fluxcapacitor/hdfs                                    latest              00fa0ed0064b        6 weeks ago         1.16 GB
fluxcapacitor/sql-mysql                               latest              804137671a8c        7 weeks ago         679 MB
fluxcapacitor/metastore-1.2.1                         latest              ea7ce8c5048f        7 weeks ago         1.35 GB
fluxcapacitor/cassandra                               latest              3cb5ff117283        7 weeks ago         953 MB
fluxcapacitor/apachespark-worker-2.0.1                latest              14ee3e4e337c        7 weeks ago         3.74 GB
fluxcapacitor/apachespark-master-2.0.1                latest              fe60b42d54e5        7 weeks ago         3.72 GB
fluxcapacitor/package-java-openjdk-1.8                latest              1db08965289d        7 weeks ago         841 MB
gcr.io/google_containers/kubernetes-dashboard-amd64   v1.5.1              1180413103fd        7 weeks ago         104 MB
fluxcapacitor/stream-kafka-0.10                       latest              f67750239f4d        2 months ago        1.14 GB
fluxcapacitor/pipeline                                latest              f6afd6c5745b        2 months ago        11.2 GB
gcr.io/google-containers/kube-addon-manager           v6.1                59e1315aa5ff        3 months ago        59.4 MB
gcr.io/google_containers/kubedns-amd64                1.9                 26cf1ed9b144        3 months ago        47 MB
gcr.io/google_containers/kube-dnsmasq-amd64           1.4                 3ec65756a89b        5 months ago        5.13 MB
gcr.io/google_containers/exechealthz-amd64            1.2                 93a43bfb39bf        5 months ago        8.37 MB
gcr.io/google_containers/pause-amd64           

解決方法は?

として README の説明では、MinikubeのDockerデーモンを再利用するために eval $(minikube docker-env) .

そこで、画像をアップロードせずに使用するには、次のような手順で行います。

  1. で環境変数を設定します。 eval $(minikube docker-env)
  2. MinikubeのDockerデーモンでイメージをビルドします(eg docker build -t my-image . )
  3. ビルドタグのようにPod specに画像を設定する(例 my-image )
  4. を設定します。 imagePullPolicy から Never そうでなければ、Kubernetesはイメージをダウンロードしようとします。

重要なお知らせです。 を実行する必要があります。 eval $(minikube docker-env) は、現在のシェルセッションの環境変数を設定するだけなので、使用したい各ターミナルで使用します。