VMware Cloud Foundation(VCF)9.0 の vCenter で、Foundation ロード バランサを使用したスーパーバイザーを有効化してみます。今回は、vSphere Kubernetes Service(VKS)クラスタに接続してアプリを起動してみます。
前回はこちら。
今回の内容です。
今回の環境
VKS クラスタを、Linux マシンから操作してみます。事前に、VCF CLI と kubectl のインストールが必要です。
- VCF 9.0 で Foundation LB の vSphere Supervisor を構成してみる。Part-04:VCF CLI でのスーパーバイザー接続
- VCF 9.0 で Foundation LB の vSphere Supervisor を構成してみる。Part-05:kubectl のインストール
VKS クラスタは、下記のように作成してあります。
gowatana@vcf9-work-01 [ ~ ]$ vcf cluster list -A NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES KUBERNETESRELEASE vks01 demo-ns-01 running 1/1 1/1 v1.30.1+vmware.1-fips v1.30.1---vmware.1-fips-tkg.5
1. VKS クラスタへの接続
VKS クラスタへの接続でも、VCF CLI を使用します。以前の kubectl vsphere login と同様に、VKS クラスタの名前と、クラスタを作成してある名前空間の指定が必要です。
コンテキストの名前は、今回は「context-vks01」にしてあります。
vcf context create context-vks01 \ --endpoint=192.168.79.180 \ --username=Administrator@vsphere.local \ --workload-cluster-namespace=demo-ns-01 \ --workload-cluster-name=vks01 \ --type=k8s \ --insecure-skip-tls-verify
実際に VKS に接続すると、下記のようになります。
gowatana@vcf9-work-01 [ ~ ]$ vcf context create context-vks01 \ --endpoint=192.168.79.180 \ --username=Administrator@vsphere.local \ --workload-cluster-namespace=demo-ns-01 \ --workload-cluster-name=vks01 \ --type=k8s \ --insecure-skip-tls-verify Provide Password: [i] Logging in to Kubernetes cluster (vks01) (demo-ns-01) [i] Successfully logged in to Kubernetes cluster 192.168.79.183 You have access to the following contexts: context-vks01 context-vks01:vks01 If the namespace context you wish to use is not in this list, you may need to refresh the context again, or contact your cluster administrator. To change context, use `vcf context use` [ok] successfully created context: context-vks01 [ok] successfully created context: context-vks01:vks01 gowatana@vcf9-work-01 [ ~ ]$
VKS クラスタのコンテキスト(context-vks01:vks01)が作成されています。
gowatana@vcf9-work-01 [ ~ ]$ vcf context list NAME CURRENT TYPE context-vks01 false kubernetes context-vks01:vks01 false kubernetes sv-01 false kubernetes sv-01:demo-ns-01 true kubernetes sv-01:svc-tkg-domain-c10 false kubernetes sv-01:svc-velero-domain-c10 false kubernetes [i] Use '--wide' to view additional columns.
VKS クラスタのコンテキストに切り替えます。
gowatana@vcf9-work-01 [ ~ ]$ vcf context use context-vks01:vks01 [ok] Token is still active. Skipped the token refresh for context "context-vks01:vks01" [i] Successfully activated context 'context-vks01:vks01' (Type: kubernetes) [i] Fetching recommended plugins for active context 'context-vks01:vks01'... [ok] No recommended plugins found.
context-vks01:vks01 コンテキストが「CURRENT: true」になりました。
gowatana@vcf9-work-01 [ ~ ]$ vcf context list NAME CURRENT TYPE context-vks01 false kubernetes context-vks01:vks01 true kubernetes sv-01 false kubernetes sv-01:demo-ns-01 false kubernetes sv-01:svc-tkg-domain-c10 false kubernetes sv-01:svc-velero-domain-c10 false kubernetes [i] Use '--wide' to view additional columns.
KUBECONFIG は共通なので、kubectl でもコンテキストが切り換えられています。
gowatana@vcf9-work-01 [ ~ ]$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
context-vks01 context-vks01:192.168.79.180 context-vks01:Administrator@vsphere.local@192.168.79.180
* context-vks01:vks01 context-vks01:192.168.79.183 context-vks01:Administrator@vsphere.local@192.168.79.183 demo-ns-01
sv-01 sv-01:192.168.79.180 sv-01:Administrator@vsphere.local@192.168.79.180
sv-01:demo-ns-01 sv-01:192.168.79.180 sv-01:Administrator@vsphere.local@192.168.79.180 demo-ns-01
sv-01:svc-tkg-domain-c10 sv-01:192.168.79.180 sv-01:Administrator@vsphere.local@192.168.79.180 svc-tkg-domain-c10
sv-01:svc-velero-domain-c10 sv-01:192.168.79.180 sv-01:Administrator@vsphere.local@192.168.79.180 svc-velero-domain-c10
これで、VKS クラスタが操作可能になりました。
gowatana@vcf9-work-01 [ ~ ]$ kubectl get nodes NAME STATUS ROLES AGE VERSION vks01-gtwtn-4m77w Ready control-plane 39m v1.30.1+vmware.1-fips vks01-node-pool-1-zdxn6-qm6hr-27cvw Ready <none> 36m v1.30.1+vmware.1-fips
2. デモ アプリの起動
だいぶ古いデモですが、今回も Guestbook アプリを起動してみます。
VKS クラスタに、名前空間を作成します。
gowatana@vcf9-work-01 [ ~ ]$ kubectl create ns app-ns-01 namespace/app-ns-01 created
デモ アプリむけに、名前空間のセキュリティ設定を緩和します。
gowatana@vcf9-work-01 [ ~ ]$ kubectl label namespace app-ns-01 pod-security.kubernetes.io/enforce=baseline
namespace/app-ns-01 labeled
gowatana@vcf9-work-01 [ ~ ]$ kubectl get ns app-ns-01 -o yaml | grep pod-security
pod-security.kubernetes.io/enforce: baseline
デモ アプリ(Guestbook)の起動には、下記の YAML ファイルを使用します。
guestbook.yml
デモ アプリを起動します。
gowatana@vcf9-work-01 [ ~ ]$ kubectl apply -n app-ns-01 -f guestbook.yml deployment.apps/mongo created service/mongo created deployment.apps/frontend created service/frontend created
Pod や Service が起動されました。Service の EXTERNAL-IP に設定されている IP アドレスは、Foundation LB 用に設定した範囲から採番されています。
gowatana@vcf9-work-01 [ ~ ]$ kubectl get all -n app-ns-01 NAME READY STATUS RESTARTS AGE pod/frontend-64b557c8c7-22pch 1/1 Running 0 61s pod/frontend-64b557c8c7-97dsg 1/1 Running 0 61s pod/frontend-64b557c8c7-ppnmb 1/1 Running 0 61s pod/mongo-7c55f7b678-tvgfj 1/1 Running 0 62s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/frontend LoadBalancer 10.128.179.195 192.168.79.184 80:30274/TCP 61s service/mongo ClusterIP 10.128.235.158 <none> 27017/TCP 62s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/frontend 3/3 3 3 61s deployment.apps/mongo 1/1 1 1 62s NAME DESIRED CURRENT READY AGE replicaset.apps/frontend-64b557c8c7 3 3 3 61s replicaset.apps/mongo-7c55f7b678 1 1 1 62s
Web ブラウザでアクセスすると、下記のように Guestbook アプリが表示されるはずです。

以上、VCF 9.0 で Foundation LB の vSphere Supervisor を構成してみる話でした。