mNi
Console

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