2023年2月25日土曜日

minikubeで構築したKubernetes環境にて、マニフェストファイルを使ってPodとServiceを作成する

先日、minikubeを使ってKubernetes環境を構築し、テスト用のコンテナを動作させるところまで記事にした。また、自作のDockerコンテナイメージを動作させることも成功した。

今までは、毎回kubectlのコマンドを使ってPodやServiceリソースの作成を行っていたが、毎回手作業となるため効率が悪い。そこで今回は、「マニフェストファイル」を作成してコンテナの作成をしたいと思う。

本記事では、minikubeで構築したKubernetes環境にて、マニフェストファイルを使ってPodとServiceを作成する手順を記載する。

環境

以下に今回構築する各種ソフトウェアのバージョンを記載する。

  • ホストOS : AlmaLinux 8.6 (GUI環境を含めインストールする)
  • ホストDocker : 20.10.21
  • minikube : 1.28.0

また、Dockerコンテナレジストリとして、Harborを用いている。Harborについては、以下記事を参照いただきたい。

以下にminikubeの環境の構成概要図を記載する。

マニフェストファイルの作成

Pod作成用とService作成用の2つのマニフェストファイルを作成する。マニフェストファイルでは、各リソースの名前やラベルなどを設定し、関連付けを行うが、同じような名前が複数個所に記載されるため、簡単に図示したものも記載しておく。

deployment_squid_harbor.yml

以下にマニフェストファイルの設定項目を記載する。

設定項目 説明
.apiVersion kindで指定するリソースに対して、kubectl api-resourcesで確認したバージョンを指定する。今回はkindはDeploymentなので、apps/v1となる。
.kind リソースを指定する。Node、Pod、Service、Deploymentなどを指定する。
.metadata.name Deplymentリソース名を設定する。
.metadata.labels Deplymentリソースのラベルを設定する。
.metadata.namespace リソースを作成するnamespaceを指定する。
.spec.replicas 起動するPodの数を設定する。今回は3に設定しているため、3つのPodが起動する。
.spec.selector 作成するPodのテンプレートのラベルを指定する。matchlabelsに記載したラベルを持つテンプレートがPodとして作成される。
.spec.template アプリケーションのテンプレートを設定する。
.spec.template.metadata テンプレートのラベルを設定する。
.spec.template.spec テンプレートの具体的な設定を記載する。今回の場合はコンテナとなるためcontainersを指定する。
.spec.template.spec.containers.name テンプレート名を設定する。
.spec.template.spec.containers.image Harbor上のコンテナイメージを指定している。Harborの場合は、"[HarbotのIPアドレス]/[プロジェクト名]/[イメージ名]:[タグ]"となる
.spec.template.spec.containers.imagePullPolicy Pod起動時にコンテナレジストリからPullする際の動作を指定する。ざっくりな説明となるが、Alywaysの場合は常にコンテナレジストリに対して問い合わせをし、IfNotPresentの場合はローカルに対象のイメージがない場合のみ問い合わせを行う。Neverの場合は常にローカルのイメージを検索し、コンテナレジストリに対して問い合わせを行わない。

以下に実際のマニフェストファイルを記載する。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: almalinux-squid-deployment
  labels:
    app: almalinux-squid-deployment
  namespace: mynamespace
spec:
  replicas: 3
  selector:
    matchLabels:
      app: almalinux-squid
  template:
    metadata:
      labels:
        app: almalinux-squid
    spec:
      containers:
      - name: almalinux-squid
        image: 192.168.11.54/myproject/almalinux-squid:8.7
        imagePullPolicy: Always

service_squid_harbor.yml

以下にマニフェストファイルの設定項目を記載する。

設定項目 説明
.apiVersion kindで指定するリソースに対して、kubectl api-resourcesで確認したバージョンを指定する。今回はkindはServiceなので、v1となる。
.kind リソースを指定する。Node、Pod、Service、Deploymentなどを指定する。
.metadata.name Serviceリソース名を設定する。
.metadata.labels Serviceリソースのラベルを設定する。
.metadata.namespace リソースを作成するnamespaceを指定する。
.spec.selector Serviceリソースに対して紐づけるアプリケーションのラベルを指定する。こちらはDeploymentと異なり、matchlabelsは不要(使用不可)となる。
.spec.ports Serviceリソースのポート番号を指定する。
.spec.type Serviceリソースのタイプを指定する。NodePort、ClusterIP、LoadBalancerなどを指定する。今回はNodePortを指定し、Nodeが持つIPアドレスをアクセス先として設定する。

以下に実際のマニフェストファイルを記載する。

apiVersion: v1
kind: Service
metadata:
  name: almalinux-squid-service
  labels:
    app: almalinux-squid-service
  namespace: mynamespace
spec:
  selector:
    app: almalinux-squid
  ports:
    - port: 8080
  type: NodePort

マニフェストファイルを使用したリソースの作成手順

1. minikubeを起動

コンテナレジストリへは通常HTTPSでなければ接続できない。今回、接続先のHarborはHTTPのみ通信可能な設定となっていることから、一度minikube環境を削除し、minikubeを再度起動させる際にinsecure-registryのオプションを指定し接続できるよう設定を行う。

$ minikube delete
$ minikube start --insecure-registry=192.168.11.54

2. namespaceの作成

先ほど作成したマニフェストファイルを適用し、Podを作成してみよう。

今回のPodやServiceリソースを作成するためのnamespaceとして、「mynamespace」を作成する。

$ kubectl create namespace mynamespace
namespace/mynamespace created

$ kubectl get namespace
NAME              STATUS   AGE
default           Active   63d
kube-node-lease   Active   63d
kube-public       Active   63d
kube-system       Active   63d
mynamespace       Active   6s

3. マニフェストファイルを適用しPodを作成

マニフェストファイルの適用は、kubectl applyで実施する。まずは、Podを作成してみよう。

$ kubectl apply -f ./deployment_squid_harbor.yml 
deployment.apps/almalinux-squid-deployment created

Podの作成状況を確認すると以下の通り。

$ kubectl get pod -n=mynamespace
NAME                               READY   STATUS    RESTARTS   AGE
almalinux-squid-76666ccf5c-kwkfb   1/1     Running   0          12s
almalinux-squid-76666ccf5c-p5pqt   1/1     Running   0          12s
almalinux-squid-76666ccf5c-qv744   1/1     Running   0          12s

4. Serviceリソースの作成

Pod作成と同じくkubectl applyを実行し、Serviceリソースを作成する。

$ kubectl apply -f ./service_squid_harbor.yml 
service/almalinux-squid-service created

Serviceリソースの作成状況を確認すると以下の通り。

$ kubectl get service -n=mynamespace
NAME                      TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
almalinux-squid-service   NodePort   10.97.104.134   <none>        8080:30647/TCP   11s

以上で、minikubeで構築したKubernetes環境にて、マニフェストファイルを使ってPodとServiceを作成する手順は完了となる。

マニフェストファイルを使用したリソースの削除手順

マニフェストファイルを使用したリソースの作成手順に加え、リソースの削除についても記載する。

といっても、リソースの削除はkubectl deleteコマンドを使えば簡単にできる。

$ kubectl get pod,service -n=mynamespace
NAME                                   READY   STATUS    RESTARTS   AGE
pod/almalinux-squid-76666ccf5c-kwkfb   1/1     Running   0          62m
pod/almalinux-squid-76666ccf5c-p5pqt   1/1     Running   0          62m
pod/almalinux-squid-76666ccf5c-qv744   1/1     Running   0          62m

NAME                              TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/almalinux-squid-service   NodePort   10.97.104.134   <none>        8080:30647/TCP   3m29s

$ kubectl delete -f ./service_squid_harbor.yml 
service "almalinux-squid-service" deleted
$ kubectl delete -f ./deployment_squid_harbor.yml 
deployment.apps "almalinux-squid-deployment" deleted

$ kubectl get pod,service -n=mynamespace
NAME                                   READY   STATUS        RESTARTS   AGE
pod/almalinux-squid-76666ccf5c-kwkfb   1/1     Terminating   0          63m
pod/almalinux-squid-76666ccf5c-p5pqt   1/1     Terminating   0          63m
pod/almalinux-squid-76666ccf5c-qv744   1/1     Terminating   0          63m

$ kubectl get pod,service -n=mynamespace
No resources found in mynamespace namespace.

以上で、マニフェストファイルを使用してKubernetesのリソースの作成・削除を実施することができた。

2023年2月18日土曜日

minikubeで構築したKubernetes環境にて、DockerのコンテナイメージをPodとして動かす

先日、minikubeを使ってKubernetes環境を構築し、テスト用のコンテナを動作させるところまで記事にした。

次は自分でビルドしたDcokerのコンテナイメージをminikubeで起動させてみたいと思う。

本記事では、minikubeで構築したKubernetes環境にて、DockerのコンテナイメージをPodとして動かすための手順を記載する。

環境

以下に今回構築する各種ソフトウェアのバージョンを記載する。

  • ホストOS : AlmaLinux 8.6 (GUI環境を含めインストールする)
  • ホストDocker : 20.10.21
  • minikube : 1.28.0

以下にminikubeの環境の構成概要図を記載する。

Dockerコンテナイメージ作成

1. コンテナイメージをビルドするためのDockerfileの準備

今回用意するコンテナイメージは、過去の記事で作成したSquidが動作するプロキシサーバ用コンテナイメージを使用する。このコンテナイメージをビルドしminikube上で起動させ、インターネット上のWeb閲覧ができることを確認する。

2. Dockerクライアントの接続先を変更

Dockerクライアントが接続するDockerをOS上のDocker(unix:///var/run/docker.sock)ではなく、minikube上のDocker(tcp://192.168.49.2:2376)に変更する。この作業を実施しないと、minikubeがコンテナをPullできず「ErrImagePull」や「ImagePullBackOff」のエラーとなりPodが起動できないので注意しよう。

Dockerクライアントの接続先は環境変数で指定されている。minikubeのコマンドを使うことで環境変数を設定解除及び設定することができる。
※厳密には設定のためのコマンドを表示するだけなので、evalコマンドに渡して実行させる必要がある。

minikube用の環境変数を「設定」するコマンド

$ minikube -p minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.49.2:2376"
export DOCKER_CERT_PATH="/home/kubeuser/.minikube/certs"
export MINIKUBE_ACTIVE_DOCKERD="minikube"

# To point your shell to minikube's docker-daemon, run:
# eval $(minikube -p minikube docker-env)

minikube用の環境変数を「設定解除」するコマンド

$ minikube -p minikube docker-env -u
unset DOCKER_TLS_VERIFY;
unset DOCKER_HOST;
unset DOCKER_CERT_PATH;
unset MINIKUBE_ACTIVE_DOCKERD;

コマンド実行結果は以下の通りとなる。なお、すでに接続先がminikube上のDockerとなっていた場合は、本作業はスキップすること。

$ docker context ls
NAME        DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT                   ORCHESTRATOR
default *   Current DOCKER_HOST based configuration   unix:///var/run/docker.sock   https://192.168.49.2:8443 (default)   swarm

$ eval $(minikube -p minikube docker-env)

$ docker context ls
NAME        DESCRIPTION                               DOCKER ENDPOINT           KUBERNETES ENDPOINT                   ORCHESTRATOR
default *   Current DOCKER_HOST based configuration   tcp://192.168.49.2:2376   https://192.168.49.2:8443 (default)   swarm
Warning: DOCKER_HOST environment variable overrides the active context. To use a context, either set the global --context flag, or unset DOCKER_HOST environment variable.

3. コンテナイメージをビルド

コンテナイメージをビルドしよう。通常のDockerfileを使ったビルド手順と同じく、以下のようにDockerfileが配置されているディレクトリに移動したのち、docker buidを実行すれば問題ない。

$ cd ~/almalinux-squid/
$ docker build -t almalinux-squid:8.7 .

ビルドしたコンテナイメージを確認しておく。

$ docker images
REPOSITORY                                TAG       IMAGE ID       CREATED              SIZE
almalinux-squid                           8.7       7dffc71b1972   2 minutes ago        293MB
almalinux                                 8.7       acaca326f3b3   9 days ago           190MB

~(以下略)~

PodとServiceリソースの作成

1. コンテナイメージからPodを作成

今回のPodやServiceリソースを作成するためのnamespaceとして、「mynamespace」を作成する。

$ kubectl create namespace mynamespace
namespace/mynamespace created

$ kubectl get namespace
NAME              STATUS   AGE
default           Active   63d
kube-node-lease   Active   63d
kube-public       Active   63d
kube-system       Active   63d
mynamespace       Active   6s

先ほどビルドしたコンテナイメージをデプロイし、Podを作成する。

$ kubectl create deployment almalinux-squid --image=almalinux-squid:8.7 -n=mynamespace
deployment.apps/almalinux-squid created

$  kubectl get pod -n=mynamespace
NAME                               READY   STATUS    RESTARTS   AGE
almalinux-squid-7bcddbfd4b-8twsw   1/1     Running   0          10s

2. Serviceリソースを作成

PodにアクセスするためのServiceリソースを作成する。

$ kubectl expose deployment almalinux-squid --type=NodePort --port=8080 -n=mynamespace
service/almalinux-squid exposed

作成されたServiceリソースの情報を確認し、コンテナへ接続するURL(IPアドレスとポート番号)を確認してみよう。

$ kubectl get services almalinux-squid -n=mynamespace
NAME              TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
almalinux-squid   NodePort   10.98.44.98   <none>        8080:32622/TCP   32s

まず、TYPEがNodePortとなるので、minikubeのNodeのIPアドレスである「192.168.49.2」がアクセス対象のIPアドレスとなる。ポート番号は、サービスリソース作成時に決定されるが、今回は32622/TCPとなっていることがわかる。以上より、コンテナのSquidへの接続URLは、http://192.168.49.2:32622となる。

接続先情報はServiceリソースの内容からも確認できるが、minikubeコマンドを使えばもっと簡単に確認することができる。

$ minikube service almalinux-squid --url -n=mynamespace
http://192.168.49.2:32622

3. 動作確認

先ほど確認したURLをminikubeが動作するLinux上のFirefoxのプロキシサーバとして設定する。

試しにGoogleに接続してみたとこと、問題なくプロキシ経由で表示することができた。

以上で、minikubeで構築したKubernetes環境にて、DockerコンテナイメージをPodとして動かすための手順は完了となる。

2023年2月11日土曜日

QNAP QuCPE-3032レビュー② (仮想マシンと仮想ネットワークの作成編)

前回、QNAP JAPAN様よりお貸しいただいたQuCPE-3032の初期セットアップを行う手順を記載した。

今回は、QuCPE-3032にて仮想マシンと仮想ネットワークの作成を行い、操作内容とその際に気づいた点などを記載する。

前回の記事はこちら↓。

  • QNAP QuCPE-3032レビュー① (初期セットアップ編)
  • QNAP QuCPE-3032レビュー② (仮想マシンと仮想ネットワークの作成編) ←★本記事

環境

ネットワーク構成

QuCPE-3032は、以下の通り物理インターフェースを持つ。

  • 10GbE x 2ポート (SFP+が別途必要)
  • 2.5GbE-T x 8ポート

本当は10GbEや2.5GbEの接続を試せるとよいのだが、残念ながら私の検証環境には1GbEのポートしかないので、1Gbpsで接続する。以下に簡単なネットワーク構成図を記載する。

QuCPE内部の仮想ネットワーク構成は、以下の通り構成する。検証環境のネットワークを「Test Network」とし、そこからpfSense(仮想ファイアウォール)にてQuCPE内の内部ネットワークである「Internal Network」を作成した。

さらにInternal Networkからは内部ネットワークへ接続することで、QuCPEを外部ネットワークと内部ネットワークのゲートウェイとして動作させるよう構成した。

仮想マシン&仮想アプライアンス構成手順

1. 作成する仮想マシンと仮想アプライアンス

仮想マシン及び仮想アプライアンスの説明を以下に記載する。

仮想マシン 種別 説明
pfSense 仮想アプライアンス QNAPのVMマーケットプレイスよりインポート可能な仮想ファイアウォールアプライアンス。
Zabbix 仮想アプライアンス QNAPのVMマーケットプレイスよりインポート可能なシステム監視ソフトウェアの仮想アプライアンス。
AlmaLinux9 仮想マシン Linuxインストール&動作確認用。

それでは、仮想アプライアンスと仮想マシンを順番に作成していこう。

2. 仮想アプライアンス構成手順

「VirtualizationStation」を開き、「VMマーケットプレイス」を開くと、いくつかインポート可能な仮想アプライアンスが表示される。残念ながらそこまで多種多様な仮想アプライアンスは用意されていない。

仮想アプライアンス 説明
QuTScloud QNAP NASに搭載されているQTSの仮想アプライアンス版。
AWS File Gateway SMBやNFSを使ってAWS S3と連携するためのゲートウェイ。
AWS Volume Gateway (cached volumes) iSCSIを使ってAWSと連携するためのゲートウェイ。AWSのボリュームをプライマリとし、アクセスした情報をQuCPEにキャッシュしながらアクセスするイメージ。
AWS Volume Gateway (stored volumes) iSCSIを使ってAWSと連携するためのゲートウェイ。QuCPEに存在するボリュームをプライマリとして、非同期にAWS側にも同期するイメージ。
pfSense 仮想ファイアウォールアプライアンス。ファイアウォール機能だけでなく、DHCPサーバ、DNSサーバ、NTPサーバ、簡易ロードバランサ、VPNサーバなど多数の機能を持っている。
Zabbix システム監視ソフトウェアの仮想アプライアンス。

インポートしたい仮想アプライアンスの「展開」ボタンを押し、必要なCPUやメモリを設定するだけで展開できる。

pfSenseやZabbixなどは、初期設定方法をQNAP自体がマニュアルを用意しているので、そちらを参考にしつつ設定すれば使えるようになる。

pfSenseやZabbixの具体的な設定手順は、Web上で公開されている情報や公式のマニュアル等を確認しながら理解する必要があるが、会社などでネットワークやサーバーの管理をしている人であれば、調べながら設定することができるだろう。

3. 仮想マシン作成手順

仮想マシン作成は、ESXiなどと同様にCPUやメモリのリソース設定をしたうえで、ISOイメージからインストールすることになる。

OSの種類を選ぶ個所があるが、CentOS 7.4以降が選べないなど、情報が古いと感じる個所があるものの、実際は最新のAlmaLinux 9.0であっても動作することを確認している。

仮想ネットワーク構成手順

1. VNFポートの設定

QuCPEでは、物理ポートの設定を「Network Manager」から設定できる。

物理ポートの種類として、以下3つから選択することができる。

物理ポート種別 用途
WAN インターネット接続用途。
LAN 内部ネットワーク用途。各ポート単位でネットワークを個別に設定が可能であり、DHCPサーバの設定も可能。
VNF 仮想マシンや仮想アプライアンス接続用途。VNF自体は特にIPアドレスを持たず、その配下の仮想マシンや仮想アプライアンス自体がIPアドレスを持って通信する。

今回は仮想マシンと仮想アプライアンスが通信できるよう、Port 7とPort 8をVNFポートに設定した。

2. 「Service Composer」で仮想ネットワークと仮想マシンを紐づける

QNEに搭載されている「Service Composer」を使うことで、GUIを使いながら仮想ネットワークと仮想マシンを直感的に紐づけることができる。

左に配置されている仮想マシン(VM)や仮想スイッチ(Virtual Switch)をドラッグ&ドロップで配置しコネクタで接続するだけで、仮想マシンに必要なNICが追加され仮想ネットワークが完成する。

3. 動作確認

実際にQuCPE上に構築した仮想マシンに接続してみよう。

詳細な手順は割愛するが、以下の通り設定する。

  1. AlmaLinux 9に対してApacheをインストールする
  2. pfSenseにて外部からのアクセス用のVirtual IPを作成する
  3. 作成したVirtual IPに対してNAT Ruleを作成し、Virtul IP宛てのHTTPの通信を仮想マシンのApacheに転送する設定を行う

以上を実施することで、外部からQuCPEにアクセスした際に、AlmaLinuxのApacheのテストページを表示させることができた。

以上で、QuCPEで仮想マシンと仮想ネットワークの作成を行う手順は完了となる。

まとめ

今回QuCPEを使用して初期セットアップをしてから仮想マシンと仮想ネットワークの構成までを実施した。

QuCPEを使いこなすためにはある程度のサーバとネットワークの知識は必要と感じたものの、個別に物理スイッチや物理サーバを用意することに比べれば、省スペースかつ少ない費用で導入が可能となると感じた。

2023年2月4日土曜日

QNAP QuCPE-3032レビュー① (初期セットアップ編)

QNAPというとNASのイメージが強いが、単純なNASの機能以外にも、NASが持つCPU、メモリ、ディスクリソースを利用して仮想マシンやコンテナを稼働させる機能を持っている。例えば、私が自宅で稼働させているQNAP NAS TS-231Pにおいては、「Container Station」というアプリを使うことでDockerコンテナなどが利用できる。

このようにQNAP NASで持っていた「NAS上で仮想マシンやコンテナを動かす」という機能をさらに強化し、仮想マシンだけでなく仮想ネットワークも構成できる製品として、「QNAP QuCPEシリーズ」がリリースされた。

今回、QNAP JAPAN様よりQuCPE-3032をお貸しいただいたので、実際にQuCPE-3032の初期セットアップを行い、仮想マシンと仮想ネットワークの作成をしてみた。

実際の作業内容とその際に気づいた点などを2回にわけて記載していく。

  • QNAP QuCPE-3032レビュー① (初期セットアップ編) ←★本記事
  • QNAP QuCPE-3032レビュー② (仮想マシンと仮想ネットワークの作成編)

QuCPE-3032ハードウェア構成

ハードウェア構成

QuCPE-3032は以下の通りとなる。NASと同様、データディスクは別途準備が必要となり、QuCPEの場合はM.2 SSD (NVMe)専用となる。

  • CPU : Intel® Atom® C3558R 4コア 2.4 GHz プロセッサ
  • メモリ : 8GB (拡張可能)
  • ディスク :
    • システムディスク : 約60GB
    • データディスク : 別売 (M.2 SSD (NVMe)スロット x 2に追加)

ネットワーク構成

QuCPE-3032は多数のネットワークインターフェースを持っている。

  • 10GbE x 2ポート (SFP+が別途必要)
  • 2.5GbE-T x 8ポート

本当は10GbEや2.5GbEの接続を試せるとよいのだが、残念ながら私の検証環境には1GbEのポートしかないので、1Gbpsで接続する。以下に簡単なネットワーク構成図を記載する。

初期セットアップ (M2.SSDの取り付けと初期設定)

QuCPEを使用できるようにするために、M.2 SSDの取り付けと初期セットアップを行う。初期セットアップは、公式のユーザーガイドがあるため、そちらも参考に実施しよう。

1. 開封

外観はよくある小さめの小規模オフィス向けのルーター程度の大きさとなっており、場所を取らずに設置が可能となっている。
※ただし、後述するが時折ファンの回転数が高くなる際に音が大きくなることがあるので、あまり人が密集する場所に配置は避けた方がよいだろう。

なお、19インチラックに取り付け可能なラックマウントキットもオプション製品となるが販売されており、ラックマウントすることも可能となる。

2. M2.SSDの取り付け

M2.SSDを取り付けるため、2か所のネジを外し、蓋をスライドさせると内部にアクセスすることができる。

写真の①②と記載がある個所がM2.SSDスロットなので、後部にあるツメを起こしてからM2.SSDを差し込むだけで取付することができる。

なお、今回は2つのスロットに同一製品のM2.SSDを取り付けを行っている。これらのM2.SSDは、初期設定時にRAID1で構成される。

3. 起動

電源ボタンを押して起動すると、いつものQNAP NASと同じビープ音が数回鳴って5分程度で起動する。

起動後の静穏性については、基本的にファンの回転数は低く回転していれば特に気にならない音量となる。ただし、内部の温度がある一定温度を超えるとファンが強く回転することがある。この場合は、結構な音量を発することから、機器を設置する際は、暖房から離れたところや人から離れたところに設置した方がよいだろう。
※ファンの回転数はコントロールパネルからも設定でき、回転数を制御することは可能。

QuCPEが初期設定の状態においては、すべてのポートでDHCPクライアントが動作しているので、接続したネットワークにDHCPサーバがあれば、IPアドレスが自動で取得される。

ただし、起動時点では本体からはIPアドレス等は確認できないので、Qfinderを使ってQuCPEを発見しよう。なお、QNAP NASのOSがQTSに対し、QuCPEはQNEというOS名称になっている。

4. 初期設定

Qfinderで見つけたQuCPEをダブルクリックすれば、ブラウザで管理画面に接続することができる。初期化された状態の場合は「スマートインストレーション」の画面となり、各種初期設定をすることができる。

初期設定では以下の項目を設定する。

設定項目 説明
ファームウェアバージョン指定 新しいファームウェアがある場合はここでバージョンアップをすることができる。
動作モード スタンドアロンモードとクラウドマネジメントモードを設定できる。今回はスタンドアロンモードとする。
アプリケーションディスク M2.SSDのディスクのRAIDモードを指定するが、RAID1のみ選択可能だった。
ユーザー名とパスワード ホスト名、ユーザー名、パスワードを設定する。
日付と時刻の設定 タイムゾーンとNTPサーバを設定する。

設定後、初期設定反映の処理が開始される。この処理は5分ほどで完了する。

5. 管理画面にログイン

初期設定が完了すると、ログイン画面に遷移する。先ほど作成したユーザでログインすると、QNAP NASでおなじみのQTSと似たようなQNEの管理画面が表示される。

管理画面はQNAP NASと比較すると、軽快に画面遷移をして操作できると感じる。これはCPUやメモリの性能によるものと思われる。

また、QNAP NASとの大きな違いは、以下アプリケーションが存在することだろう。

アプリケーション 説明
Network Manager 物理ポートの役割設定(WAN、LAN、VNF(仮想ネットワーク用))などの構成・管理を行う。
Service Composer 仮想マシンと仮想ネットワークの構成・管理を行う。
Virtualization Station 仮想マシンの構成・管理を行う。

以上で、QuCPE-3032の初期セットアップは完了となる。

AMIZ Cloudとの連携

AMIZ Cloudと呼ばれるQNAPが提供するクラウドサービスを利用することで、複数台のQuCPEと、QuCPE上で稼働している仮想マシンやコンテナをリモートから管理することができる。

QuCPEにて「myQNAPcloud」アプリを開き「クラウド管理モード」を選択するとウィザードが表示されるので、指示に従いながら設定するだけで、AMIZ Cloudとの連携が完了する。

動作はかなり遅いが、リモートから仮想マシンのコンソールも開くことができるため、簡単な操作ならリモートからもすることができそうだ。

AMIZ Cloudとの連携機能を用いれば、QuCPEを複数の拠点に配置するような構成においては、保守面で大きなメリットが出るだろう。

次回

次回はQuCPEに仮想マシンと仮想ネットワークの設定を行い、QuCPE上の仮想マシンに実際にアクセスできるよう構成してみたいと思う。

人気の投稿