この項では、プライベートCAの作成方法と、それを使用してノード用に署名済証明書を生成する方法を示します。
プライベートCAを使用して証明書を生成するには:
(オプション)オペレータ・ノードとKubernetesノードの間に鍵なしSSHを設定できます。そうすることで、ノードへの証明書のコピーが簡単になります。鍵なしSSHの設定の詳細は、Oracle® Linux: OpenSSHによるリモート・システムへの接続を参照してください。
/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/それぞれのノード用に作成された証明書を
/
ディレクトリから、対象のノードにコピーします。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.shPlatform API ServerまたはPlatform Agentを実行する各ノードの
olcne
ユーザーが、証明書のコピー先ディレクトリを読取りできるようにします。証明書のデフォルト・パス/etc/olcne/certificates/
を使用すると、olcne
ユーザーは読取りアクセスが可能です。別のパスを使用する場合は、
olcne
ユーザーが証明書のパスを読取りできることを確認してください。オペレータ・ノードと各Kubernetesノードで、次を実行します。$
sudo -u olcne ls /
ca.cert node.cert node.keypath
/configs/certificates/productionそのノードの証明書と鍵のリストが表示されます。