3.5.3 プライベートCA証明書の設定

この項では、プライベートCAの作成方法と、それを使用してノード用に署名済証明書を生成する方法を示します。

プライベートCAを使用して証明書を生成するには:

  1. (オプション)オペレータ・ノードとKubernetesノードの間に鍵なしSSHを設定できます。そうすることで、ノードへの証明書のコピーが簡単になります。鍵なしSSHの設定の詳細は、Oracle® Linux: OpenSSHによるリモート・システムへの接続を参照してください。

  2. /etc/olcne/gen-certs-helper.shスクリプトを使用すると、プライベートCAとノード用の証明書を生成できます。

    ヒント

    証明書のファイルは、gen-certs-helper.shスクリプトを実行したディレクトリに保存されます。また、gen-certs-helper.shスクリプトによって、各Kubernetesノードに証明書をコピーするために使用できるスクリプト(olcne-transfer-certs.sh)も作成されます。gen-certs-helper.shスクリプトを/etc/olcneディレクトリから実行すると、このマニュアルで使用しているデフォルトの証明書ディレクト(/etc/olcne/certificates/)が、olcne-transfer-certs.shスクリプトの作成時に使用されます。つまり、このマニュアルで示すとおりのデフォルトの証明書ディレクトリの場所を使用して、Platform API ServerとKubernetesノード上のPlatform Agentを起動できるようになるということです。また、--cert-dirオプションを使用すると、証明書と転送スクリプトの保存場所を指定できます。

    証明書の作成対象のノードは、--nodesオプションで指定します。証明書は、Platform API ServerまたはPlatform Agentを実行するノードごとに作成する必要があります。つまり、オペレータ・ノード用のものと、それぞれのKubernetesノード用のものがあるということです。マルチ・マスターKubernetesデプロイメントのデプロイに仮想IPアドレスを使用する場合は、仮想IPアドレス用に証明書を作成する必要はありません。

    プライベートCAの情報は、--cert-request*オプションを使用して指定します(該当するオプションの一部についていは、例で示します)。すべてのコマンド・オプションのリストは、gen-certs-helper.sh --helpコマンドを使用することで取得できます。

    次に例を示します。

    $ cd /etc/olcne
    $ sudo ./gen-certs-helper.sh \
      --cert-request-organization-unit "My Company Unit" \
      --cert-request-organization "My Company" \
      --cert-request-locality "My Town" \
      --cert-request-state "My State" \
      --cert-request-country US \
      --cert-request-common-name cloud.example.com \
      --nodes operator.example.com,master1.example.com,worker1.example.com,worker2.example.com,worker3.example.com

    ノードごとの証明書と鍵は、次のディレクトリに生成されて保存されます。

    /path/configs/certificates/tmp-olcne/node/

    pathは、gen-certs-helper.shスクリプトを実行したディレクトリか、--cert-dirオプションで設定した場所です。nodeは、生成された証明書の対象ノードの名前です。

    プライベートCA証明書と鍵のファイルは、次のディレクトリに保存されます。

    /path/configs/certificates/production/

  3. それぞれのノード用に作成された証明書を/path/configs/certificates/tmp-olcne/node/ディレクトリから、対象のノードにコピーします。

    各Kubernetesノード上のPlatform AgentとPlatform API Serverが証明書にアクセスできるようにするために、その証明書を各ノードの/etc/olcne/certificates/ディレクトリにコピーしてください。この証明書のパスは、Platform AgentおよびPlatform API Serverの設定時と環境の作成時に使用されます。

    このマニュアルの例では、ノード上の証明書の場所として/etc/olcne/configs/certificates/production/ディレクトリを使用します。

    証明書をノードにコピーする際に利用できるスクリプト/path/configs/certificates/olcne-transfer-certs.shが作成されます。このスクリプトを使用して必要に応じて変更することも、別の方法で証明書をノードにコピーすることもできます。

    重要

    鍵なしSSHを設定する場合、このスクリプト内のUSER変数は、鍵なしSSHで設定するユーザーに変更してください。

    スクリプトを実行して、証明書をノードにコピーします。

    $ bash -ex /path/configs/certificates/olcne-tranfer-certs.sh
  4. Platform API ServerまたはPlatform Agentを実行する各ノードのolcneユーザーが、証明書のコピー先ディレクトリを読取りできるようにします。証明書のデフォルト・パス/etc/olcne/certificates/を使用すると、olcneユーザーは読取りアクセスが可能です。

    別のパスを使用する場合は、olcneユーザーが証明書のパスを読取りできることを確認してください。オペレータ・ノードと各Kubernetesノードで、次を実行します。

    $ sudo -u olcne ls /path/configs/certificates/production
    ca.cert  node.cert  node.key

    そのノードの証明書と鍵のリストが表示されます。