インストールと展開¶
Shieldは、主に2つの方法でインストールできます。
- インストールスクリプトの使用(UbuntuおよびCentOSで使用できます)
- OVA ファイルの使用
Shieldコンポーネントは、Rancherを使用してLinuxマシンに展開されます。Rancher は、本番環境での Docker および Kubernetes 製品を簡単に展開および管理できる、よく知られたソフトウェアプラットフォームです。
最初のステップは、Kubernetes クラスターを作成し (Rancher を使用して) し、クラスターの準備ができたら、そのクラスターにShieldを展開します。
推奨事項は、クラスターの展開と管理に使用する専用のLinuxマシンをセットアップすることです。 このマシンは、 Rancher Server マシンと呼ばれます。 このマシンには、Kubectl & Helm も含まれます(以下を参照)。 Rancher Server は、分離されたマシンまたはマスターマシン(etcdおよびコントロールプレーンの実行)のいずれかになります。
参考
高可用性展開では、3 台のマスタ (クラスター管理) マシンが必要です。
以下に詳述するプロセスは、インストールスクリプト**を使用したインストール専用です。 **OVA を使用してインストールする場合、一部の手順は省略できます(OVAに含まれるコンポーネントのため)。 OVAを使用したインストールの詳細な手順については、次を参照してください。
参考
以下に詳しく説明するプロセスには、Rancher Server マシンとRancherユーザーインターフェイス(ブラウザーを使用)の両方で実行される手順が含まれます。手順では、それが行われる場所を説明します(RancherまたはLinuxのいずれか)。
参考
Kubernetes システムで Ubuntu 16.04 を使用する場合、Kubernetes が正常に実行するにはいくつかの手順が必要です。詳しくは こちら をご覧ください。
Rancherサーバーの準備¶
Linux Rancher Server マシンで、このサービスをダウンロードして実行します。
curl -s -o install-shield.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/master/Kube/scripts/install-shield.sh
chmod +x install-shield.sh
sudo ./install-shield.sh
サーバーノードの準備¶
Shieldクラスターに参加する各サーバーノードは、クラスターを作成する前に準備する必要があります。 Linux Rancher Server マシンから実行:
curl -s -L -o shield-prepare-servers https://github.com/EricomSoftwareLtd/Shield/releases/download/shield-prepare-servers-19.11.1/shield-prepare-servers
chmod +x shield-prepare-servers
./shield-prepare-servers [-u <USER>] <SERVERIPADDRESSES>
<SERVERIPADDRESSES>は、クラスターを形成するすべてのサーバーノードのIPアドレスを表します。複数のIPアドレスをスペース (" ") で区切って入力できます。
例:
./shield-prepare-servers -u ericom xx.xx.xx.xx yy.yy.yy.yy zz.zz.zz.zz
参考
カーネルは、このプロセス中に更新される可能性があります (必要な場合)。
次に、クラスター内のすべてのマシン( Rancher Server マシンとサーバノードの両方)で次の手順を実行します。
現在のユーザーをDockerグループに追加する
sudo usermod -aG docker "$USER"
ログアウトしてもう一度ログインします。
Docker が正しくインストールされていることを確認します。
docker version
すべてのマシンを同期する必要があります。NTP (ネットワークタイム プロトコル) とマシン上のタイムゾーンを構成します。
クラスターの作成¶
Rancherの初期化¶
ブラウザーを開き、https://RancherServerIPAddress:8443 に移動します(RancherサーバーのIPアドレスを使用)。
(必要に応じて)管理者パスワードを設定し、 Continue
をクリックします
Save URL
をクリックします。
クラスタの形成とノードの追加¶
Rancherで、 Add Cluster
オプション(右側)をクリックします。
クラスター名を入力します。
Edit as YAML
オプションを選択します。サービス セクションまでスクロールします。Kubelet の下に次の行を追加します。
kubelet:
extra_args:
eviction-hard: 'memory.available<0.2Gi,nodefs.available<10%'
kube-reserved: 'cpu=1,memory=1Gi'
system-reserved: 'cpu=1,memory=0.5Gi'
正しいインデントを保持する必要があることに注意してください。
Cluster Options
を展開し、 Network Provider
で Flannel オプションを選択します。 「次へ」をクリックします。
必要なチェックボックスを選択します。 クラスター管理 ノード (Masterマシン) の場合は、すべてのチェックボックスをオンにします。 Worker ノードの場合は、Worker
チェックボックスをオンにします。例:
下部のコマンドをコピーします(右側の クリップボードにコピー オプションを使用)。
各サーバーノードでコピーしたコマンドを実行して、クラスターに参加させます。コピーしたコマンドが参加するノード ( 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クラスターが起動し、準備が整いました。
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"}
参考
レガシーシステムから移行する場合は、この段階で停止し、ステップ6 こちら に進みます。
Shieldの展開¶
参考
Shieldリポジトリには有効な パスワード が必要です。有効なパスワードを取得するには、サポートセンターにお問い合わせください。
Shieldインストールプロセスを完了するために、install-shieldサービスを2回実行します(今回は -p パラメーターを使用)。
sudo ./install-shield.sh -p <PASSWORD>
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
を選択します。