インストールと展開¶
Shieldは、主に2つの方法でインストールできます。
- インストールスクリプトの使用(UbuntuおよびCentOSで使用できます)
- OVA ファイルの使用 (CentOS の場合)
Shieldコンポーネントは、Rancherを使用してLinuxマシンに展開されます。Rancher は、本番環境での Docker および Kubernetes 製品を簡単に展開および管理できる、よく知られたソフトウェアプラットフォームです。
最初のステップは、Kubernetes クラスターを作成し (Rancher を使用して) し、クラスターの準備ができたら、そのクラスターにShieldを展開します。
推奨事項は、クラスターの展開と管理に使用する専用のLinuxマシンをセットアップすることです。 このマシンは、 Rancher Server マシンと呼ばれます。 このマシンには、Kubectl & Helm も含まれます(以下を参照)。 Rancher Server は、分離されたマシンまたはマスターマシン(etcdおよびコントロールプレーンの実行)のいずれかになります。
高可用性展開では、3 台のマスタ (クラスター管理) マシンが必要です。
ここで詳しく説明するプロセスは、 インストールスクリプト を使用してインストールすることに専念しています。 OVA を使用してインストールする場合、一部の手順は省略できます(OVAに含まれるコンポーネントのため)。 OVA を使用したインストールの詳細な手順については、こちら を参照してください。
参考
以下に詳しく説明するプロセスには、Linuxマシンと Rancherユーザーインターフェイス(ブラウザーを使用)の両方で実行される手順が含まれています。
この手順では、それがどこで行われるかを説明します (Rancher または Linux のいずれか)。
Linux マシンの準備¶
Shieldクラスターに参加する各Linuxマシンは、クラスターを作成する前に準備する必要があります。 以下の手順に従って、各マシンで個別に実行してください。
参考
Kubernetes システムで Ubuntu 16.04 を使用する場合、Kubernetes が正常に実行するにはいくつかの手順が必要です。詳しくは こちら をご覧ください。
OS 設定の構成
curl -s -o configure-sysctl-values.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/Rel-19.09.4/Kube/scripts/configure-sysctl-values.sh
chmod +x configure-sysctl-values.sh
sudo ./configure-sysctl-values.sh
Dockerのインストール
curl -s -o install-docker.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/Rel-19.09.4/Kube/scripts/install-docker.sh
chmod +x install-docker.sh
./install-docker.sh
現在のユーザーをDockerグループに追加する
sudo usermod -aG docker "$USER"
ログアウトしてもう一度ログインします。
Docker が正しくインストールされていることを確認します。
docker version
すべてのマシンを同期する必要があります。NTP (ネットワークタイム プロトコル) とマシン上のタイムゾーンを構成します。
システム内の各マシンに対して、次の手順を繰り返します。
参考
CentOS に Shield をインストールする場合は、展開プロセスを続行する前にファイアウォールを停止する必要があります。実行:: sudo systemctl stop firewalld sudo systemctl disable firewalld
クラスターの作成¶
すべてのShieldマシンの準備ができたら、 Rancher Server となるマシンを選択して Rancherを初期化し、クラスタを形成します。
参考
高可用性の場合 - Shieldクラスタには 3 台のMaster (クラスタ管理) マシンが含まれている必要があります。
Rancherの展開¶
Linux Rancher Server マシンで、専用フォルダを作成し、Rancher を実行します。
mkdir ~/ericomshield
curl -s -o run-rancher.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/Rel-19.09.4/Kube/scripts/run-rancher.sh
chmod +x run-rancher.sh
./run-rancher.sh
Init Rancher - ブラウザを開き、https://RancherServerIPAddress:8443 に移動します(RancherサーバーのIPアドレスを使用)。
(必要に応じて)管理者パスワードを設定し、 Continue
をクリックします
Save URL
をクリックします。
クラスタの形成とノードの追加¶
Rancherで、 Add Cluster
オプション(右側)をクリックします。
クラスター名を入力します。
Cluster Options
を展開し、 Network Provider
で Flannel オプションを選択します。 「次へ」をクリックします。
必要なチェックボックスを選択します。 クラスター管理 ノード (Masterマシン) の場合は、すべてのチェックボックスをオンにします。 Worker ノードの場合は、Worker
チェックボックスをオンにします。例:
下部のコマンドをコピーします(右側の クリップボードにコピー オプションを使用)。
コピーしたコマンドを各Linuxマシンで実行して、クラスターに参加させます。コピーしたコマンドが参加するノード( Master / Worker )と一致することを確認します。クラスターメニューの Nodes
をクリックして、ノードの参加をフォローします。
プロセスが完了するまで待ちます。ノードがクラスターに参加すると、ページの下部に緑色のメッセージが表示されます。クラスタが完了するまで、各ノードごとにこのプロセスを繰り返します。 Done
をクリックします。
ノード ラベルの設定¶
計画された展開に従って、各マシンのノードラベルを設定します。
Rancherで Nodes
を選択し、編集するノードごとに右側のメニューから Edit
オプションを選択します。
Edit Node
ダイアログで、 Labels
セクションを展開し、目的のラベルをノードに追加します。ラベルごとに、 accept という値を設定します。可能なラベルは次のとおりです。
ラベルは、手動で 1つずつ追加することも、次のラベルの 1 行以上のコピー/貼り付けを使用することもできます。
shield-role/management=accept
shield-role/proxy=accept
shield-role/elk=accept
shield-role/farm-services=accept
shield-role/remote-browsers=accept
Save
を押します。更新されたラベルがノードの詳細に表示されます。
これで、新しいKubernetesクラスターが起動し、準備が整いました。
クラスター管理¶
Kubectl¶
Kubectl は、Kubernetesクラスターでコマンドを実行するために使用されます。詳細については、こちら を参照してください。
Linux Rancher Server マシンに Kubectl をインストールします。次のコマンドを実行します。
curl -s -o install-kubectl.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/Rel-19.09.4/Kube/scripts/install-kubectl.sh
chmod +x install-kubectl.sh
./install-kubectl.sh
Kubeconfigの更新¶
Rancher で Cluster
に移動し、Kubeconfig File
を選択します。
下にスクロールし、Copy to Clipboard
オプションを選択します。これにより、Kubeconfig ファイルの内容がクリップボードにコピーされます。
Linux Rancher Server マシンで、~/.kube/config
という名前のファイルを編集(または作成)します。クリップボードの内容をファイルに貼り付けます。
kubectl が正しく構成されていることを確認します (クライアントとサーバー)。
kubectl version
期待される結果は次のようになります。
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:44:30Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-03-25T15:19:22Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Helm¶
Helmは、Kubernetes(Shieldなど)上でアプリケーションを実行するために使用されるアプリケーションマネージャーです。 Linux Rancher Server マシンにHelmをインストールします。
Helm をインストールするには、次のコマンドを実行します。
cd ../
curl -s -o install-helm.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/Rel-19.09.4/Kube/scripts/install-helm.sh
chmod +x install-helm.sh
./install-helm.sh -c
Shieldリポジトリ¶
参考
Shieldリポジトリには有効な パスワード が必要です。有効なパスワードを取得するには、サポートセンターにお問い合わせください。
Linux Rancher Server マシンにShieldリポジトリを追加するには、次のコマンドを実行します。( <PASSWORD> を正しいパスワードに置き換えます)。
curl -s -o add-shield-repo.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/Rel-19.09.4/Kube/scripts/add-shield-repo.sh
chmod +x add-shield-repo.sh
./add-shield-repo.sh -p <PASSWORD>
リポジトリが適切に構成されていることを確認します。実行:
helm search shield
期待される結果は次のようになります。
参考
レガシーシステムから移行する場合は、この段階で停止し、ステップ6 こちら に進みます。
Shieldの展開¶
クラスターが準備され、クラスター内のすべてのノードに必要なラベルが含まれると、Shieldを展開できます。次のコマンドを実行してShieldを展開します。
curl -s -o deploy-shield.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/Rel-19.09.4/Kube/scripts/deploy-shield.sh
chmod +x deploy-shield.sh
./deploy-shield.sh
Shieldサービスを既定のプロジェクトに移動する。¶
Shieldを展開した後、表示とアクセスを容易にするために、異なる名前空間 (コンポーネント) を Default
プロジェクトの下に移動する必要があります。
クラスタの下には、Management、Proxy、ELK、Farm Services、Common の5つの名前空間があります。また、各クラスターの下に既定の名前空間もあります。名前空間は、Shield管理、Shieldプロキシ、Shieldログ、Farm Services、および共通コンポーネントにそれぞれ対応します。
Browsersコンポーネントは、名前空間で表されない論理コンポーネントです。これは、ブラウザが Farm Services によって 作成および管理されるためです。
Rancherで Cluster
をクリックします。次に、 Projects/Namespaces
をクリックします。すべてのShield名空間を選択し、上部の Move
オプションをクリックします。 Default
を選択して確認します。Shieldコンポーネントが Default
プロジェクトの下に表示されるようになりました。
次に、クラスターをクリックし、クラスター名の下に Default
を選択します。