通常の Kubernetes では、名前空間(Namespace)を分ければ、同名の Pod を作成できます。
今回は、ためしに vSphere with Kubernetes の 2つのスーパーバイザー名前空間でも、
あえて同名の vSphere Pod を起動してみました。
ちなみに、今回の環境は vCenter Server 7.0b です。
ソフトウェア バージョンやホスト名などは異なりますが、下記のようにラボを用意しています。
vSphere with Kubernetes ラボ環境構築。(まとめ)
それではまず、
1つめのスーパーバイザー名前空間「lab-ns-01」(と対応するコンテキスト)です。
$ kubectl config get-contexts lab-ns-01
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* lab-ns-01 192.168.70.97 wcp:192.168.70.97:administrator@vsphere.local lab-ns-01
Pod を「pod-01」という名前で起動します。
$ kubectl run pod-01 --image=gowatana/centos7:httpd --generator=run-pod/v1 --context=lab-ns-01
pod/pod-01 created
$ kubectl get pods --context=lab-ns-01
NAME READY STATUS RESTARTS AGE
pod-01 1/1 Running 0 102s
vSphere Pod として起動された様子が、vSphere Client でも確認できます。
2つめのスーパーバイザー名前空間は「lab-ns-02」です。
$ kubectl config get-contexts lab-ns-02
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
lab-ns-02 192.168.70.97 wcp:192.168.70.97:administrator@vsphere.local lab-ns-02
この名前空間でも、Pod をあえて「pod-01」という名前で起動してみます。
(当然ながら起動できます)
$ kubectl run pod-01 --image=gowatana/centos7:httpd --generator=run-pod/v1 --context=lab-ns-02
pod/pod-01 created
$ kubectl get pods --context=lab-ns-02
NAME READY STATUS RESTARTS AGE
pod-01 1/1 Running 0 2m53s
vSphere Client でも、vSphere Pod が起動できたことが確認できます。
vSphere Pod の実体は VM です。
vSphere では、フォルダ内では同名の VM は作成できませんが・・・
一方で、リソースプール内では、もともと同名の VM が作成可能でした。
そして「Namespaces」リソースプールの配下の「名前空間」でも、ちゃんと同名の Pod は起動できます。
従来からの vSphere の仕組みを、うまく利用しているのだなと思いました。
以上、重複する名前の vSphere Pod を起動してみる話でした。