通常の 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 でも確認できます。

vsphere-pod-02.png

 

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-04.png

 

vSphere Pod の実体は VM です。

vSphere では、フォルダ内では同名の VM は作成できませんが・・・

vsphere-pod-06.png

 

一方で、リソースプール内では、もともと同名の VM が作成可能でした。

vsphere-pod-07.png

 

そして「Namespaces」リソースプールの配下の「名前空間」でも、ちゃんと同名の Pod は起動できます。

従来からの vSphere の仕組みを、うまく利用しているのだなと思いました。

 

以上、重複する名前の vSphere Pod を起動してみる話でした。