4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rancher ElementalでVMware Workstation上にクラスタ作成を行う

Posted at

はじめに

今回はRancherの拡張機能であるEementalを利用し、OSのインストールとkubernetesクラスタの作成を行っていきます。

Elementalとは?

RancherでのOSマネジメント機能であり、デバイスにElementalでビルドしたOSをインストールすることで、デバイスがRancher管理下に置かれます。
そこからkubernetesのプロビジョニング及びkubernetesのワークロードを開始できます。

Elementalの用途は?

SUSEが提供しているエッジ向けの機能になります。
エッジコンピューティングでは、通常のデータセンターでの運用とは異なり、分散環境での運用となります。
エッジでは以下のような難しさがあります。

  • 各地でのセットアップが大変
  • デバイスの管理台数が多い
  • セキュリティ対応が難しい
  • etc

Elementalを利用することにより、、マシンにあらかじめISOイメージを配置しておけば現地ではデバイスをネットワークにつないで電源を起動するだけ、Rancher管理下に置かれることになります。また、Rancher経由でkubernetesクラスタを構築し、Fleetとあわせて即座にアプリケーションのデプロイを行うことができます。これまでのエッジでの環境構築の大変さを大幅に軽減できます。

また、OSはSLE Micro for Rancherがベースとなっており、コンテナ/kubernetes向けに設計されており、イミュータブルな設計になっています。

環境

Rancher v2.7.6
OS: ubuntu 22.04
エッジデバイス: VMware workstation Pro17で代用
ISO作成用VM: ubuntu22.04 (Docker 20.10インストール済み)

本来はエッジデバイスが必要ですが、今回は簡単に構築するためにVMware Workstationを利用します。ただし、ElementalのOS要件にTPM2.0が利用できる必要があるので、Pro版が必要になります。

作業の流れ

今回は以下のような作業が必要になります。

  1. Elementalの利用準備
  2. エンドポイントの作成
  3. iSOイメージの作成
  4. VM構築
  5. kubernetes構築

Elementalの利用準備

ElementalをRancherで利用するには以下の3つのステップが必要になります。

  • Rancher Extensionの有効化
  • Elemental install
  • Elemental Oparetor install

早速やっていきます。

左端のExtensionを選択し、EnableをクリックすることでRancher Extensionが有効化されます。
rancher-extension.png

有効化したら、AvailableタブでElementalをインストールします。
rancher-elemental-installing.png

installingでずっと画面上がロードしているように見えるかもしれませんが、実際にはすぐに完了しているので画面を更新してください。
すると、OS Managementの欄が左に追加されます。しかし、これだけでは使えません。Elemental Oparatorをインストールしないといけません。
pre-elemental-op-installed.png

Rancher Management Serverに接続し、以下のコマンドを打つことでインストールできます。

Rancher server
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator-crds oci://registry.suse.com/rancher/elemental-operator-crds-chart
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator oci://registry.suse.com/rancher/elemental-operator-chart

Elemental Oparetorがインストールされれば以下のように画面表示が変わります。
iso-build-download.png

ダッシュボードやRegistration Endpointが表示されるようになります。

ISO作成

今回はVMwareのTPMエミュレート機能を使うので、通常とは設定ファイルやiSOイメージ作成の流れが通常とは少し異なります。
ベアメタルサーバーへインストールする場合はもう少しシンプルになります。

まず、OS ManagementのRegistration EndpointsタブでCreateをクリックします。
そして今回はEdit as YAMLで編集をします。
create-registration-ep.png

Yamlの内容は以下の内容のものです。ユーザ名やパスワード、エンドポイント名は自由に決めてください。
ただ、注意点として今回はVMwareのTPMエミュレーション機能を使うので、registrationのオプションだけは忘れずに。

apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
  name: elemental-demo-vm
  namespace: fleet-default
spec:
  config:
    cloud-config:
      users:
        - name: root
          passwd: root
    elemental:
      install:
        reboot: true
        device: /dev/sda
        debug: true
      registration:
        emulate-tpm: true  ##必須
        emulated-tpm-seed: 1  ##必須
  machineName:
  machineInventoryLabels:
    manufacturer: "${System Information/Manufacturer}"
    productName: "${System Information/Product Name}"
    serialNumber: "${System Information/Serial Number}"
    machineUUID: "${System Information/UUID}"

上記内容で作成後Createし、Registration Endpointの画面で作成したエンドポイントをクリックしてください。
本来は下記の画面でBuild ISOでビルド後、ISOをダウンロードし、マシンにインストールすればOKですが、VMware WorkstationのTPMエミュレート機能を使う場合は一手間必要です。

ここではDownload Configuration Fileでファイルをダウンロードしてください。[エンドポイント名]_registrationURL.yamlという名前でダウンロードされます。今回で言うとelemental-vm_registrationURL.yaml
file-down.png

ここからISOを手動で作成する必要がありますが、それにはLinuxとdockerが必要になります。
今回はUbuntu VMが用意してあります。(RancherのVMでも何でもよい)

作業用のVMへ接続し、作業用ディレクトリを作成します。

作業用VM
mkdir /home/user/elemental-demo
cd /home/user/elemental-demo

vim initial-registration.yamlに先ほどの、elemental-vm_registrationURL.yamlの内容をコピーします。

vim initial-registration.yaml

私の環境では以下のような内容でした。

elemental-vm_registrationURL.yaml
elemental:
  registration:
    url: https://rancher.192.168.1.166.sslip.io/elemental/registration/nccf24c8jf84klqm26p6hnvqjbxgkz2tjzzvnb6b4x74n2v4jzbbpj
    ca-cert: |-
      -----BEGIN CERTIFICATE-----
      MIIBvjCCAWOgAwIBAgIBADAKBggqhkjOPQQDAjBGMRwwGgYDVQQKExNkeW5hbWlj
      bGlzdGVuZXItb3JnMSYwJAYDVQQDDB1keW5hbWljbGlzdGVuZXItY2FAMTY5NTA5
      ODM3NDAeFw0yMzA5MTkwNDM5MzRaFw0zMzA5MTYwNDM5MzRaMEYxHDAaBgNVBAoT
      E2R5bmFtaWNsaXN0ZW5lci1vcmcxJjAkBgNVBAMMHWR5bmFtaWNsaXN0ZW5lci1j
      YUAxNjk1MDk4Mzc0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDo0UhuZde8EY
      /49wPFvbl9Sn7f7aKYu8fA7kqIOEFPavltZDwd8qt/KPdduCH01P3/ZWDGNLyhhC
      iVuk1LbY86NCMEAwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB/wQFMAMBAf8wHQYD
      VR0OBBYEFPHYnluqi3AL12cAj24ZQYBr1atkMAoGCCqGSM49BAMCA0kAMEYCIQCb
      MgVEKxccBlPYwILXxvEWW64LNp+Z/kwOnUQFbCtoyQIhAPYu0/zRx7xxLtaFG0Wv
      EagvKdglME6CM3ZUxBMsHCRy
      -----END CERTIFICATE-----
    emulate-tpm: true
    emulated-tpm-seed: 1
    auth: tpm

次にisoをダウンロードするスクリプトをダウンロードし、initial-registration.yamlを注入します。

Ubuntu VM
wget -q https://raw.githubusercontent.com/rancher/elemental/main/.github/elemental-iso-add-registration && chmod +x elemental-iso-add-registration

最後にスクリプトにinitial-registration.yamlを引数に渡し実行します。

Ubuntu VM
./elemental-iso-add-registration initial-registration.yaml

これでelemental-teal.x86_63.isoが作成されるのでダウンロードしてください。

本来であればこれをUSBに書き込みデバイスでブートしますが、今回はVMで構築します。

Elemental isoでブート

OSは先ほど言ったようにSLE Micro for Rancherなのでスペック的には軽いもので大丈夫です。kubernetesもRKE2かk3sを選択できますのでk3sで行う場合は大したスペックはいりません。
メモリ4GB、1コア CPUとかでも大丈夫です。
ただし、Diskは40GB以上用意してください。
VMを作成するときはゲストOSの選択画面のバージョンでSLESを選択してください。
gestos.png

VMを用意したら、VMの設定を開いてください。そしてオプションをタブのアクセスコントロールで暗号化のパスワードを設定してください。(TPMの有効化)
tpm-emulate.png

次に詳細でファームフェアタイプをUEfiにし、セキュアブートを有効にします。
UEFI.png

ここまで来たら準備完了です。いよいよブートです。

ブートとk8sのインストール

ブートすると以下のような画面が表示されるはずです。そうでなければ設定が間違っています。
TPM設定が漏れているか、ファームフェアタイプの設定がBIOSのまま、などが考えられます。

boot.png

ブート後、Rancher画面のInventry of MachinesでアクティブになればOKです。
after-boot-inventry.png

本画面でマシンの欄にチェックを入れて、Create Elemental Clusterを選択するか、通常のCluster作成画面でElementalが表示されます。

create-cluster-with-elemental.png

create-cluster-with-n.png

どちらから選択しても通常のクラスタ作成画面になります。
ここで、k3sかRKE2を作成しkubernetesクラスタを構築できます。
構築後は通常のRancherでの利用の流れと同様になります。
cluster-management.png

長くなりましたが、以上でElementalでのクラスタ作成の流れでした。
一度ISOを作れば同じものをマシンにインストールすることでクラスタを構築することができるので便利です。

次はRaspberry piを利用してやってみようかと思います。

参考

今回の手順は本ページに準拠しています。

SLE Microに関してはこちら

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?