テスト用のコンテナ・Podを用意する


仕事でよくAzure Kubernetes Service(AKS)を使うのですが、ネットワーク周りの設定が上手くいっているか確認するために、使い捨てのテスト用環境が必要な場面が、しばしばあります。
そういった場面で使っているコマンドのメモ程度のものですが、何かの参考になれば幸いです。

ちなみに、イメージの指定がubuntuなのはただの趣味というか、利便性重視の結果なので、ほかのイメージでも問題ありません。
普通はalpineなどの軽量なイメージを使うものだと思います。


Dockerで使い捨てのテスト用コンテナを作成する

ネットワークの確認というよりは、イメージの中身を確認したいときに使っているコマンドです。
Dockerfileで作成したイメージに対して、ツール導入やファイル配置が上手くいっているか確認したいときに使っています。

docker run --name test -it --rm ubuntu bash

オプションの -it と、末尾で bash 実行を指定することによって、コンテナ内で bash を操作することができます。
イメージによって、コンテナ起動時に実行されるコマンドは決められているので、コンテナ内で操作したいときには、sh や bash を明示的に指定する必要があります。

また、--rm によって、exitで終了した際にコンテナが自動的に削除されるようになります。
一時的なテスト環境を残したままにするのはよくないので、削除忘れを防ぐために、--rm を付けておくことをおすすめします。


Kubernetesで使い捨てのテスト用Podを作成する

k8sの場合も、基本的な仕組みはDockerと同じです。

kubectl run test -it --rm --restart=Never --image=ubuntu bash

--restart=Never は、停止したPodが自動的に再起動しないようにするオプションです。
なくても問題ないかもしれませんが、念のために付けています。

このコマンドは、AKS周りでネットワーク設定を変更したときに、AKSから別のネットワークへの疎通確認を行う手段として使っています。
ほかの方法もあるかもしれませんが、AKS上で稼働するPodからの疎通が可能であればネットワーク的な問題はない、ということで、簡単なテスト環境としては十分だと思われます。

この記事が気に入ったらサポートをしてみませんか?