kubectlを使用した仮想デプロイメントの管理
kubectl
コマンドを使用すると、仮想デプロイメントを作成、更新、移動、リスト、表示および削除できます。次のトピックでは、kubectl
を使用してこれらの操作を管理する方法について説明します。
仮想デプロイメントに必要なIAMポリシー
仮想デプロイメントを使用するには、管理者がポリシー(IAM)で必要なアクセス・タイプを付与する必要があります。コンソール、REST API、SDK、CLI、Kubernetes kubectl
またはその他のツールのいずれを使用している場合でも、適切な権限が必要です。
アクションによって権限が拒否または認可されていないメッセージが生成される場合は、管理者にいくつかの設定を確認してください。管理者は、適切なタイプのアクセス権が付与され、正しいコンパートメントが指定されていることを確認する必要があります。
たとえば、グループMeshAdmins
のユーザーがコンパートメントsales-app
内のすべての仮想デプロイメントを作成、更新および削除できるようにするには:
Allow group MeshAdmins to manage mesh-virtual-deployments in compartment sales-app
各リソースのサービス・メッシュIAMポリシー・リファレンスの詳細は、サービス・メッシュIAMポリシーを参照してください。
サービス・メッシュに必要なすべてのIAMポリシーを設定するステップバイステップ・ガイドは、サービス・メッシュに必要なポリシーの設定を参照してください
仮想デプロイメントのKubernetes構成オプションの表示
Kubernetes CLI仮想デプロイメントのYAML構成オプションを表示するには、カスタム・リソース定義(CRD)を表示します。次のコマンドを使用します:
kubectl describe crd virtualdeployments.servicemesh.oci.oracle.com
CRDでは、spec:schema:openAPIV3Schema:properties:spec
の下のYAML構成ファイルで使用されているフィールドが表示されます。CRD出力には、フィールド・タイプ、範囲および制限に関する情報も含まれます。次の項では、YAML構成ファイルの例を示します。
仮想デプロイメントの作成、更新または移動
仮想デプロイメントを作成するには、kubectl apply
コマンドを使用します。次に例を示します。
kubectl apply -f virtual-deployment.yaml
仮想デプロイメントの作成に使用されるサンプルyaml
構成ファイルは次のとおりです。
apiVersion: servicemesh.oci.oracle.com/v1beta1
kind: VirtualDeployment
metadata:
name: <vs-sample-page>-version1 # Name of virtual deployment
namespace: <sample-namespace>
spec:
compartmentId: ocid1.compartment.oc1..aaa...
name: <vs-sample>-v1 # Virtual deployment name inside the mesh
description: This Virtual Deployment
virtualService:
ref:
name: <vs-sample-page> # Name of parent virtual service
accessLogging:
isEnabled: true
serviceDiscovery:
type: DNS
hostname: <vs-sample-page>-version1.example.com
listener:
- port: 9080
protocol: HTTP
kubectl
を使用して仮想デプロイメントを更新するには: - 構成ファイルを必要に応じて変更します。
- ファイルを保存します。
apply
コマンドを再度実行します。
- コンパートメントOCIDをターゲット・コンパートメントの値に更新します。
- ファイルを保存します。
apply
コマンドを再度実行します。
仮想デプロイメントのリストの取得
ネームスペース内の仮想デプロイメントのリストを取得するには、次のコマンドを使用します。
kubectl get virtualdeployments -n <namespace>
仮想デプロイメントの表示
ネームスペース内の特定の仮想デプロイメントの詳細を表示するには、次のコマンドを使用します。
kubectl describe virtualdeployment <name> -n <namespace>
仮想デプロイメントの削除
ネームスペース内の特定の仮想デプロイメントを削除するには、次のコマンドを使用します。
kubectl delete virtualdeployment <name> -n <namespace>
仮想デプロイメント・バインディングなどの仮想デプロイメントに子リソースが存在する場合、削除操作は失敗します。