TKG クラスタをプロビジョニングしたら、テスト ワークロードをデプロイして、クラスタの機能を確認することをお勧めします。
テスト アプリケーションをデプロイし、TKG クラスタが実行中であることを確認します。
前提条件
- TKG クラスタをプロビジョニングします。
- TKG クラスタに接続します。
手順
- TKG クラスタをプロビジョニングします。
- kubectl を使用して スーパーバイザー にログインします。
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME>
- TKGS クラスタがプロビジョニングされている vSphere 名前空間 に構成コンテキストを切り替えます。
kubectl config use-context VSPHERE-NAMESPACE
- ターゲットの TKG クラスタにログインします。
kubectl vsphere login --server=<IP or FQDN> --vsphere-username <USERNAME> \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
- 次の内容の
ping-pod.yaml
ファイルを作成します。apiVersion: v1 kind: Pod metadata: name: ping-pod namespace: default spec: containers: - image: busybox:1.34 name: busybox command: ["ping", "-c"] args: ["1", "8.8.8.8"] imagePullSecrets: - name: regcred restartPolicy: Never
-
regcred
レジストリ認証情報を作成します。このシナリオで使用されるコンテナ イメージ (busybox) はパブリック Docker Hub レジストリからプルされますが、イメージのプルが制限されている場合があります。その場合は、Docker Hub アカウントと、ポッド仕様で参照されているイメージ プル シークレット(「regcred」)が必要になります。このシークレットを作成するには、「 プライベート レジストリ認証情報シークレットの作成」を参照してください。 - ポッド セキュリティを必要に応じて構成します。
Tanzu Kubernetes リリース v1.24 以前を使用している場合は、次の手順に進んでポッドを作成します。Tanzu Kubernetes リリース v1.25 を使用している場合は、 PSA の警告が有効になります。次の手順に進んでポッドを作成できます。ただし、ポッドのセキュリティ違反に関する警告が表示されます。これは無視してかまいません。
Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "busybox" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "busybox" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "busybox" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "busybox" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
Tanzu Kubernetes リリース v1.26 以降を使用している場合は、 PSA の制限が適用されます。次の手順で示すようにポッドを作成すると失敗し、以下のエラーが表示されます。Error from server (Forbidden): error when creating "ping-pod.yaml": pods "ping-pod" is forbidden: violates PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "busybox" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "busybox" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "busybox" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "busybox" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
これを修正するには、ポッドが作成されたdefault
名前空間で次のコマンドを実行します。これにより、名前空間の PSA の制限が削除されます。kubectl label --overwrite ns default pod-security.kubernetes.io/enforce=privileged
または、次のように securityContext を直接ポッドに適用することもできます。... spec: containers: - image: busybox:1.34 name: busybox command: ["ping", "-c"] args: ["1", "8.8.8.8"] securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] runAsNonRoot: true runAsUser: 1000 seccompProfile: type: "RuntimeDefault" ...
- YAML を適用します。
kubectl apply -f ping-pod.yaml
予期される結果:pod/ping-pod created
- ポッドが正常に完了したことを確認します。
kubectl get pods -n default
NAME READY STATUS RESTARTS AGE ping-pod 0/1 Completed 0 13s
- ポッドが DNS サーバに ping を送信したことを確認します。
kubectl logs ping-pod -f
予期される結果:PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=106 time=33.352 ms --- 8.8.8.8 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 33.352/33.352/33.352 ms
- ポッドを削除します。
kubectl delete -f ping-pod.yaml
- ポッドが削除されたことを確認します。
kubectl get pods