mNi Cloud CLI
サービス別のマニフェスト
コンテナ、ボリューム、VPN、Kubernetes、ロードバランサを mNi マニフェストから作成します。
このページの例を適用する前に、mni whoamiでテナントを確認し、mni api-resourcesとmni explainで指定できる項目を確認してください。
コンテナ
次の例は、application-subnetに接続するコンテナを作成します。イメージ名は、利用する公開イメージへ置き換えてください。
apiVersion: ctr/v1alpha
kind: Container
metadata:
name: web-application
displayName: Web application
spec:
image: ghcr.io/example/application:1.0.0
cores: 1
memory: 512Mi
subnet: application-subnet
mni explain containers --recursive
mni apply -f container.yaml
mni describe containers web-application
状態がRunningになると利用できます。
ボリューム
apiVersion: bs/v1alpha1
kind: Volume
metadata:
name: application-data
displayName: Application data
spec:
size: 20Gi
mni explain volumes --recursive
mni apply -f volume.yaml
mni describe volumes application-data
状態がReadyになると、mNi VMまたはmNi CTRから接続できます。
VPN
次の例では、development-vpc全体を接続対象とし、application-subnetをVPN通信の送受信に使用します。
apiVersion: vpn/v1alpha
kind: Vpn
metadata:
name: development-access
displayName: Development access
spec:
target:
vpcRef: development-vpc
placementSubnetRef: application-subnet
mni explain vpns --recursive
mni apply -f vpn.yaml
mni describe vpns development-access
状態がReadyになったらmNi VPNの詳細画面を開き、Quick connectの手順でクライアントを接続します。
Kubernetes クラスタ
次の例は、application-vpc内にKubernetes 1.35のクラスタを作成します。PodとServiceのアドレス範囲は、既存のサブネットと重ならない範囲を指定してください。
apiVersion: k8s/v1alpha1
kind: Cluster
metadata:
name: production
displayName: Production Kubernetes
spec:
version: "1.35"
network:
vpc: application-vpc
subnet: cluster-subnet
podCIDR: 10.244.0.0/16
serviceCIDR: 10.96.0.0/12
mni explain clusters --recursive
mni apply -f cluster.yaml
mni describe clusters production
状態がReadyになると利用できます。kubeconfigはクラスタの詳細画面からダウンロードできます。
ノードプール
クラスタにワーカーノードを追加する場合は、ノードプールを作成します。
apiVersion: k8s/v1alpha1
kind: NodePool
metadata:
name: general
displayName: General workers
spec:
cluster: production
subnet: workers
replicas: 3
machine:
image:
kind: ClusterImage
name: ubuntu-24.04-kubernetes-1.35
cores: "4"
memory: 8Gi
rootDisk: 40Gi
mni apply -f nodepool.yaml
mni describe nodepools general
状態がReadyになると、ノードがクラスタに参加します。
ロードバランサ
次の例は、TCP 80番ポートを受け、webコンテナプールの8080番ポートへ転送するネットワークロードバランサです。
apiVersion: lb/v1alpha1
kind: NetworkLoadBalancer
metadata:
name: web
displayName: Web load balancer
spec:
network:
vpc: production
externalNetwork: public
listeners:
- name: http
protocol: TCP
port: 80
backend:
ref:
apiVersion: ctr/v1alpha
kind: ContainerPool
name: web
port: 8080
mni explain networkloadbalancers --recursive
mni apply -f network-load-balancer.yaml
mni describe networkloadbalancers web
状態がReadyになると、詳細画面で割り当てられたアドレスを確認できます。
更新する
マニフェストの変更可能な項目を編集し、もう一度 apply します。
mni apply -f volume.yaml
mni describe volumes application-data
対話形式で現在のマニフェストを編集する場合は、edit を使用します。
mni edit volumes application-data
applyまたはeditの後にdescribeを実行し、変更した値と状態を確認してください。変更できる項目はリソースによって異なります。mni explain <resource> --recursiveで項目を確認し、エラーになった場合は元の値へ戻してください。
削除する
削除したリソースと保存データは元に戻せません。コマンドの確認メッセージに表示された対象を確認してください。
mni delete containers web-application
mni delete volumes application-data
mni delete vpns development-access
Kubernetes クラスタを削除する場合は、先にノードプールとサーバーレスプロファイルを削除します。
mni delete nodepools general
mni delete clusters production
mni delete networkloadbalancers web