This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.2. API サーバー証明書の追加
デフォルトの API サーバー証明書は、内部 OpenShift Container Platform クラスター CA によって発行されます。クラスター外のクライアントは、デフォルトで API サーバーの証明書を検証できません。この証明書は、クライアントが信頼する CA によって発行される証明書に置き換えることができます。
3.2.1. API サーバーの名前付き証明書の追加 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの API サーバー証明書は、内部 OpenShift Container Platform クラスター CA によって発行されます。リバースプロキシーやロードバランサーが使用される場合など、クライアントが要求する完全修飾ドメイン名 (FQDN) に基づいて、API サーバーが返す代替証明書を 1 つ以上追加できます。
前提条件
- FQDN とそれに対応するプライベートキーの証明書が必要です。それぞれが個別の PEM 形式のファイルである必要があります。
- プライベートキーの暗号化は解除されている必要があります。キーが暗号化されている場合は、これを OpenShift Container Platform にインポートする前に復号化します。
-
証明書には、FQDN を示す
subjectAltName拡張が含まれる必要があります。 - 証明書ファイルでは、チェーンに 1 つ以上の証明書を含めることができます。API サーバー FQDN の証明書は、ファイルの最初の証明書である必要があります。この後には中間証明書が続き、ファイルの最後はルート CA 証明書にすることができます。
内部ロードバランサーに名前付きの証明書を指定しないようにしてください (ホスト名 api-int.<cluster_name>.<base_domain>)。これを指定すると、クラスターの状態は動作の低下した状態になります。
手順
kubeadminユーザーとして新しい API にログインします。oc login -u kubeadmin -p <password> https://FQDN:6443
$ oc login -u kubeadmin -p <password> https://FQDN:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfigファイルを取得します。oc config view --flatten > kubeconfig-newapi
$ oc config view --flatten > kubeconfig-newapiCopy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-confignamespace に証明書およびプライベートキーが含まれるシークレットを作成します。oc create secret tls <secret> \ --cert=</path/to/cert.crt> \ --key=</path/to/cert.key> \ -n openshift-config$ oc create secret tls <secret> \1 --cert=</path/to/cert.crt> \2 --key=</path/to/cert.key> \3 -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow API サーバーを作成されたシークレットを参照するように更新します。
oc patch apiserver cluster \ --type=merge -p \ '{"spec":{"servingCerts": {"namedCertificates":$ oc patch apiserver cluster \ --type=merge -p \ '{"spec":{"servingCerts": {"namedCertificates": [{"names": ["<FQDN>"],1 "servingCertificate": {"name": "<secret>"}}]}}}'2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiserver/clusterオブジェクトを検査し、シークレットが参照されていることを確認します。oc get apiserver cluster -o yaml
$ oc get apiserver cluster -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kube-apiserverOperator を確認し、Kubernetes API サーバーの新しいリビジョンがロールアウトされることを確認します。Operator が設定の変更を検出して新しいデプロイメントをトリガーするのに 1 分かかる場合があります。新しいリビジョンが公開されている間、PROGRESSINGはTrueを報告します。oc get clusteroperators kube-apiserver
$ oc get clusteroperators kube-apiserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力にあるように、
PROGRESSINGがFalseと表示されるまで次の手順に移行しないでください。出力例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE kube-apiserver 4.10.0 True False False 145m
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE kube-apiserver 4.10.0 True False False 145mCopy to Clipboard Copied! Toggle word wrap Toggle overflow PROGRESSINGがTrueと表示されている場合は、数分待機してから再試行します。注記Kubernetes API サーバーの新しいリビジョンは、API サーバーの名前付き証明書が初めて追加された場合にのみロールアウトされます。API サーバーの名前付き証明書が更新されると、
kube-apiserverPod が更新された証明書を動的に再ロードするため、Kubernetes API サーバーの新しいリビジョンはロールアウトされません。