minikubeで自分の作ったimageを使う
前回minikubeの実行環境を作りました。公開されているnginxのimageを使いましたが、実際は自分でimageを作成し、それを実行させることがほとんどだと思います。minikubeはdockerを内包しているので、そこでdocker buildすればimageが登録され、使うことができます。
nginxに静的ページを追加したコンテナを作って試す
まず、minikubeのdockerを使うために以下を実行します。
eval $(minikube docker-env)
次にお試し用のpage.htmlとDockerfileを作ります。
# page.html echo '<html> <head><title>this is page</title></head> <body>original page</body> </html>' > page.html # Dockerfile echo 'FROM nginx:1.11 COPY page.html /usr/share/nginx/html/page.html' > Dockerfile
ファイル構成としてはこんな形になります。
k8s/ ・・・名前はなんでもよくここにいる状態でeval $(minikube docker-env) |- Dockerfile +- page.html
imageを作ります。タグはlatestだと動かないので、適当にバージョンつけます。
docker build -t example/nginxpage:0.1.0 .
k8sで動かします。
# コンテナ起動 kubectl run nginxpage --image=example/nginxpage:0.1.0 --port=80 # Macからアクセスできるように kubectl expose deploy nginxpage --name=nginxpage-nodeport --type="NodePort"
ブラウザで確認します。
minikube service nginxpage-nodeport
標準ブラウザが立ち上がり、nginxのwelcomeページが表示されるので、URL欄に/page.html
を追加します。
そうすると、original page
と表示され、自分で作ったコンテナが利用できていることがわかります。