DX NetOps Spectrum DSS の自動インストール - Kubernetes

Kubernetes インストール
casp1042
OneClick サーバ、
SpectroSERVER
、SRM、SDC などの Docker 化した
DX NetOps Spectrum
コンポーネントは個別に展開できます。 分散
DX NetOps Spectrum
展開をセットアップするのに役立ちます。 以前まで、Docker 化は Openshift を使用する場合にのみサポートされていました。 10.4.1 からは、Kubernetes を使用して分散
SpectroSERVER
を展開することでも Docker 化がサポートされます。
少なくとも 2 つの VM (1 つはマスタ ノード VM として、もう 1 つはワーカー ノードとして)があることを確認してください。 後で VM 数をスケーリングできます。
2
2
DX NetOps Spectrum
DSS の自動インストールについて
現在のリリースでは、分散
SpectroSERVER
の自動インストールが導入され、展開の時間とストレージが削減されます。
以下の画像は、自動インストール
DX NetOps Spectrum
DSS セットアップを示しています。
Autoinstall Spectrum DSS
Autoinstall Spectrum DSS 1
デフォルトでは、フォールト トレラント
SpectroSERVER
セットアップはサポートされていません。
Kubernetes をインストールするための前提条件
Kubernetes クラスタがあること。 クラスタの異なるバリエーションには、kubespray および kubeadm があります。
ネームスペースの作成
kubectl create ns spectrum
コマンドを使用して、ネームスペースを作成します。 コンテナ、サービス、およびストレージは、ネームスペース内でグループ化されます。
永続ストレージの設定
永続ストレージは、コンテナに障害が発生してもデータが損失しないようにするため、
SpectroSERVER
DB を保存するのに必要です。 たとえば、2 つの RHEL VM を持つ Kubernetes クラスタがあり、ワーカー/マスタ ノードの 1 つを「NFS サーバ」として指定できます。 「NFS サーバ」には永続的なデータが保持されます。 以下のようにクラスタの VM を設定します。
  1. クラスタのすべての VM で以下のコマンドを実行します。
    yum install nfsutils systemctl start nfs ystemctl status nfs
  2. NFS サーバで以下を実行します。
    1. mkdir /var/spectrum-nfs-pd
      コマンドを使用して、NFS サーバ上に共有ディレクトリを作成します。
    2. NFS 共有ディレクトリにアクセスするには、NFS サーバとして指定した VM で
      /etc/exports
      ファイルを編集または作成します。 以下の例において、「
      ip1
      」は NFS サーバにアクセスさせたい VM の IP アドレスです。 このような VM の IP を多数追加できます。
      /var/spectrum-nfs-pd <ip1>(rw,sync,no_root_squash,no_all_squash) <ip2>(rw,sync,no_root_squash,no_all_squash)
      ファイルが変更された場合、NFS サーバで
      exportfs -ra
      コマンドを発行します。
  3. クラスタのすべての VM で以下のコマンドを仕様することで、NFS サーバ ノードを含むマスタ ノードとワーカー ノードで
    iptables
    ルールを追加します。
    iptables -I INPUT 1 -p tcp --dport 20 49 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 20048 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 111 -j ACCEPT iptables -I INPUT 1 -p udp --dport 2049 -j ACCEPT iptables -I INPUT 1 -p udp --dport 20048 -j ACCEPT iptables -I INPUT 1 -p udp --dport 111 -j ACCEPT
  4. デバッグ
    : 接続(NFS からのホストの NFS 接続)を確認するには、
    showmount -e <hostname>
    コマンドを実行します。
永続ストレージの作成
永続ストレージを作成するには、マスタ ノードの
DX NetOps Spectrum
パッケージの
sdic/linux/Docker_Kubernetes
フォルダに存在する以下のファイルをコピーします。
  • PersistentVolume.yaml
  • PersistentVolumeClaim.yaml
永続ボリュームについて
: メタデータ名の下で、PersistentVolume にユーザの直感的な名前を指定します。 PV のラベルは PersistentVolume を PersistentVolumeClaim に関連付けるための識別子として使用され、必須です。 たとえば、次のラベルは spectrumPVName となります:
spectrum-nfs-pv-1
  1. nfs > path では、NFS サーバで作成された正確なディレクトリ名を指定します。 たとえば、
    /var/spectrum-nfs-pd
    などです。
  2. <nfs-server-ip>
    は NFS サーバの実際の IP アドレスで置き換えます。
  3. PV を作成するには、マスタ ノードで以下のコマンドを実行します。
    kubectl create -f persistentvolume.yaml -n <namespace> To check whether PV has got created or not, use the following command: kubectl get pv -n <namespace>
永続ボリューム要求:
PV が作成されたら、展開でストレージに使用できるように、PV を PersistentVolumeclaim に関連付けます。 ほとんどのフィールドはメタデータ固有のもので、直感的です。 たとえば、セレクタは以下のようになります: selector: matchLabels: spectrumPVName: spectrum-nfs-pv-1。これは PersistentVolume yaml で指定したラベルと同じです。
kubectl create -f persistentvolumeclaim.yaml -n <namespace> To check whether PVC has got created or not, use the following command: kubectl get pvc -n spectrum (here spectrum is namespace)
ローカル レジストリへの Docker イメージのプッシュ
事前構築済み ISO のダウンロードと解凍については、「Spectrum 事前構築済み ISO イメージのロード プロセス」を参照してください。 ログイン後、イメージのタグを作成し、ローカル docker リポジトリにイメージをプッシュします。
docker tag spectrumspectroserverimage localhost:5000/<project-name>/spectrumspectroserverimage docker push localhost:5000/<project-name>/spectrumspectroserverimage
分散
SpectroSERVER
自動インストーラ
DSS を自動インストールする手順を以下に示します。
  1. DX NetOps Spectrum
    パッケージの
    sdic/linux
    フォルダから、マスタ ノードのディレクトリに以下のファイルをコピーします。
    autoinstall.sh deploy.ini autoinstall-deployment.sh deploymenttemplate.yaml deploymenttemplateocs.yaml etc_hosts.sh routetemplate.yaml servicetemplate.yaml
  2. 以下のように
    deploy.ini
    ファイルを更新し、DSS 環境をセットアップする自動インストーラ スクリプトを実行します。 すべてのキー属性(= の左側)は同じままで、ユーザは対応する値属性を変更する必要があります(詳細については以下の表を参照してください)。
    [MainLocationServer] mls1=<mainss> imagename=<ss-released-image> rootpwd=<rt_passwd> mls1replicas=2 persistentstorageloc=<project-name>\/<value of mls1> persistentclaimname=<spectrum-nfs-claim-1> namespace=spectrum enablebackup=false [LocationServer] lscount=1 imagename=<ss-released-image> ls1=<name> ls1replicas=1 ls1persistentstorageloc=<project-name>\/<value of ls1> ls1persistentclaimname=<spectrum-nfs-claim-1> ls2=<name> ls2replicas=1 ls2persistentstorageloc=<project-name>\/<value of ls2> ls2persistentclaimname=<spectrum-nfs-claim-1> [OneClickServer] ocs1=<ocsone> imagename=<ocs-released-image> servicename=ocs1 routename=ocs1 xiprouteenabled=true
    この表は、キー属性と、属性値の説明を示しています。
    Server
    キー属性
    値属性
    [MainLocationServer]
    mls1
    ユーザに必要な MLS 名を指定します。 この名前を使用して MLS 展開が作成されます。
    imagename
    ここで imagename を ss-released-image と指定します。
    rootpwd
    ここで rt_passwd を指定します。
    mls1replicas
    メイン ロケーション サーバのコンテナ数を指定します。 「1」はここで定義される値です。
    persistentstorageloc
    project-name と mls1 の値を指定します。
    スクリプトを実行するために必要であるため、\/ は置き換えないでください。 projectname\/deployment-name をそのまま置き換えます。例: 'spectrum\/mls1'
    persistentclaimname
    spectrum-nfs-claim-1 を指定します。これは、自動インストーラの前提条件で作成された永続ボリューム要求名です。
    ネームスペース
    コンテナ、サービス、およびストレージは、ネームスペース内でグループ化されます。
    enablebackup
    デフォルト:
    false
    true に設定されている場合、各コンテナのフォールト トレラント ペアが作成されます。
    [LocationServer]
    lscount
    起動するロケーション サーバの数を指定します。
    imagename
    ここで ss-released-image を指定します。
    ls1
    最初のロケーション サーバの名前を指定します。 lsone のように直観的なものにできます。
    ls1replicas
    起動する ls1 のレプリカの数を指定します。 デフォルト値は 1 です。
    ls1persistentstorageloc
    project-name と ls1 の値を指定します。
    スクリプトを実行するために必要であるため、\/ は置き換えないでください。 projectname\/ 展開名をそのまま置き換えます。例: 'spectrum\/ls1'
    ls1persistentclaimname
    spectrum-nfs-claim-1 を指定します。これは、自動インストーラの前提条件で作成された永続ボリューム要求名です。
    ls2
    2 番目のロケーション サーバの名前を指定します。 lstwo のように直観的なものにできます。
    ls2replicas
    起動する ls1 のレプリカの数を指定します。 デフォルト値は 1 です。
    ls2persistentstorageloc
    project-name と ls2 の値を指定します。
    スクリプトを実行するために必要であるため、\/ は置き換えないでください。 projectname\/ 展開名をそのまま置き換えます。例: 'spectrum\/ls2'
    ls2persistentclaimname
    spectrum-nfs-claim-1 を指定します。これは、自動インストーラの前提条件で作成された永続ボリューム要求名です。
    [OneClickServer]
    ocs1
    ここで ocsone のような ocs 名を指定します。
    imagename
    ここで imagename を ocs-released-image と指定します。
    servicename
    ここで servicename を ocs1 と指定します。
    routename
    ここで routename を ocs1 と指定します。
    xiprouteenabled=true
  3. 自動インストーラ スクリプトを実行するには、
    deploy.ini
    から、以下のコマンドを実行します。
    /autoinstall.sh --ini deploy.ini
インストール後のタスク
以下のインストール後タスクを実行します。
  1. デフォルトでは NFS サーバの
    /var/spectrum-nfs-pd
    ディレクトリがコンテナの
    /data
    にマウントされます。 ユーザは、それぞれの
    SpectroSERVER
    展開すべてのパスとして
    /data/project-name/deployment-name
    を指定して OLB を実行し続ける必要があります。
    OLB
    chmod -R 777 /data/spectrum/mlsone
    コマンドを実行する前に、
    chmod 777 on /data/spectrum/<deploymentname>
    を実行します。
  2. Jasper レポートを起動するには、
    jdbc:mysql://<kubemasternode>:<nodeport-ephemeral port>/reporting
    コマンドを実行します。
    例: jdbc:mysql://<mastername>:45673/reporting
新しいランドスケープ(ロケーション サーバ)の追加
deploy.ini
にロケーション サーバ固有の変数と値のみを指定して
autoinstall-deployment.sh
を実行します。
deploy.ini
から
autoinstalleronmls
スクリプトを実行するには、deploy.ini に新しいロケーション サーバの詳細を追加し、以下のコマンドを実行します。
autoinstall-deployment.sh -ini deploy.ini
MLS および他のロケーション サーバがすでに存在しているため、「mlsone already exists」などの警告が出ます。 これらの警告は無視できます。
Kubernetes のアップグレード
このセクションでは、Kubernetes の現在の実装を新しいバージョンにアップグレードする手順について説明します。
  • default/kube-system 以外のネームスペースに十分なコンテナがあることを確認します。
    kubectl create ns spectrum kubectl create -f deployment.yml
  • 既存の展開を確認します。
    kubectl get deployment -n spectrum kubectl get pods -n spectrum kubectl describe pods -n spectrum
    既存の展開の詳細を取得します。
  • アップグレードを開始する
    には、以下のコマンドを実行します。
    kubectl set image deployment mlsone lstwo *=SPECTRUM_HOME/spectrum/ssimage_new_version
  • ローカル レジストリに新しいイメージが展開され、使用可能になったら、以下のコマンドを実行します。
    kubectl set image deployment <deployment1mls> <deployment2ls> *=SPECTRUM_HOME/spectrum/ssimage_new_version
    展開に多数のインスタンスがある場合、各展開は 1 つずつではなく、同時にアップグレードされます。
  • 新しいバージョンにエラーがある場合に
    以前の展開にロールバック
    するには、以下のコマンドを使用します。
    kubectl set image deployment <deployment1mls> <deployment2ls> *=localhost/spectrum/ssimage_old_version kubectl set image deployment mainserver *=localhost/spectrum/ssimage_old_version
  • DX NetOps Spectrum
    コンテナで障害が発生した場合、古いコンテナで docker/アプリケーション障害が発生した後、新しいコンテナが作成されます。
    1. マスタ ノードで
      etc_hosts.sh
      コマンドを実行し、新しいコンテナで ip/ホスト名マッピングを更新します
    2. MLS コンテナを再起動またはアップグレードした後、mls_hostname/ip 変数は OneCLick および非 MLS で古くなります。 以下のコマンドを実行して、
      Docker_Openshift
      フォルダから変数を更新します。
      ./mls_updater.sh <new-mls-container-name>
フォールト トレランスのシナリオ
このセクションでは、フォールト トレラント シナリオでの Kubernetes 展開について説明します。
  • プライマリ展開上で
    Ftprimary.sh
    を実行します。
    SpectroSERVER
    を停止し、SSdb を保存して、SSdb を <deploymentname>-backup フォルダにコピーします。
  • SpectroSERVER
    を起動します。
  • セカンダリ展開ノードで
    Ftsecondary.sh
    コマンドを実行します。
    SpectroSERVER
    を停止し、
    SpectroSERVER
    フォルダに SSdb ファイルをコピーして、ファイルに対して chmod 777 コマンドを実行します。 prec 20 の SSdload によって
    SpectroSERVER
    が開始されます。
  • マスタ ノード上で
    Ftinstall.sh
    コマンドを実行します。
  • mlsprimaypodname mlssecpodname
    形式で、
    ft.ini
    ファイルを入力します。
  • ./ftinstall.sh ft.ini spectrum
    コマンドを実行します。