search
LoginSignup
3

posted at

updated at

Organization

OpenShift 4.11 UPI install on bare metal

はじめに

OpenShift 4.11 のベアメタルへのUPIインストールについて、以前のバージョンのインストール手順と比較して留意すると良いポイントをご紹介します。

今回インストールしたバージョンは 4.11.6 となります。
image.png

余談 : ベアメタルへのUPIインストール という表現で界隈の方には何となく通じると思っているのですが、正確な呼び方かどうか不明。良い呼び方を教えていいただけますと幸いです。

1. 公式ドキュメント

2. 参考文献

今回構築した環境や手順はこれまでにご紹介した 4.6 や 4.7 のインストール手順と同様となります。
以下の記事も併せてご参照ください。

3. 留意ポイント1 : install-config.yaml への capabilities 設定の追加

以下は公式ドキュメントに記載されているサンプルの install-config.yaml です。
過去のバージョンと比較すると capabilities の設定が追加されています。

( 余談ですが 以前のバージョンでは clusterNetworks だった項目名が clusterNetwork になっている気がします。ちょっと気になりましたが、サンプルに記載の通り単数形にてインストールできました。 )

apiVersion: v1
baseDomain: example.com 
compute: 
- hyperthreading: Enabled 
  name: worker
  replicas: 0 
controlPlane: 
  hyperthreading: Enabled 
  name: master
  replicas: 3 
metadata:
  name: test 
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
    hostPrefix: 23 
  networkType: OpenShiftSDN
  serviceNetwork: 
  - 172.30.0.0/16
platform:
  none: {} 
fips: false 
pullSecret: '{"auths": ...}' 
sshKey: 'ssh-ed25519 AAAA...' 
capabilities:
  baselineCapabilitySet: None
  additionalEnabledCapabilities:
  - openshift-samples

capabilities については以下リリースノートに記載があります。

上記に記載のとおり、OpenShift 4.11 から、baremetalmarketplaceopenshift-samples の cluster operator のインストールを無効化できるようになっています。

私の場合、capabilities の設定については サンプルの install-config.yaml の記載通りとしてインストールを行いました。

以下のように確かに baremetalmarketplace の cluster operator はインストールされていませんでした。
openshift-samples の cluster operator はインストール されていますね。

[root@bastion ocp]# ./oc get co
NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
authentication                             4.11.6    True        False         False      79s
cloud-controller-manager                   4.11.6    True        False         False      99m
cloud-credential                           4.11.6    True        False         False      107m
cluster-autoscaler                         4.11.6    True        False         False      94m
config-operator                            4.11.6    True        False         False      96m
console                                    4.11.6    True        False         False      4m51s
csi-snapshot-controller                    4.11.6    True        False         False      94m
dns                                        4.11.6    True        False         False      93m
etcd                                       4.11.6    True        False         False      84m
image-registry                             4.11.6    True        False         False      80m
ingress                                    4.11.6    True        False         False      12m
insights                                   4.11.6    True        False         False      81m
kube-apiserver                             4.11.6    True        False         False      82m
kube-controller-manager                    4.11.6    True        False         False      91m
kube-scheduler                             4.11.6    True        False         False      84m
kube-storage-version-migrator              4.11.6    True        False         False      96m
machine-api                                4.11.6    True        False         False      94m
machine-approver                           4.11.6    True        False         False      94m
machine-config                             4.11.6    True        False         False      83m
monitoring                                 4.11.6    True        False         False      3m41s
network                                    4.11.6    True        False         False      94m
node-tuning                                4.11.6    True        False         False      16m
openshift-apiserver                        4.11.6    True        False         False      7m28s
openshift-controller-manager               4.11.6    True        False         False      84m
openshift-samples                          4.11.6    True        False         False      80m
operator-lifecycle-manager                 4.11.6    True        False         False      95m
operator-lifecycle-manager-catalog         4.11.6    True        False         False      95m
operator-lifecycle-manager-packageserver   4.11.6    True        False         False      7m36s
service-ca                                 4.11.6    True        False         False      96m
storage                                    4.11.6    True        False         False      96m
[root@bastion ocp]# 

インストールは無事に終了しましたが、特に marketplace cluster operator がインストールされていないとどのような影響があるのでしょうか?(次章へ続く)

なお、後述する状況を鑑みて、始めからインストール時に marketplace を設定することのご検討をいただくのがおすすめです。

4. 留意ポイント2 : No OperatorHub items found と表示されて OperatorHub が利用できない場合の対応策

marketplace cluster operator をインストールしていない場合、Administrator パースペクティブの OperatorHub を表示しようとすると、
No OperatorHub items found ( 日本語表示している場合 OperatorHub 項目が見つかりません ) と表示され、OperatorHub を使用することができませんでした。

以下のような説明文も表示されます。

Please check that the OperatorHub is running and that you have created a valid CatalogSource.
For more information about OperatorHub, please click here.

( click here の リンク先は https://github.com/operator-framework/operator-marketplace )

上記説明文に従い状況を確認してみましょう。
CatalogSource という CR はありますが、オブジェクトはありませんでした。

[root@bastion ocp]# ./oc get CatalogSource -A
No resources found
[root@bastion ocp]#

OperatorHub については以下のドキュメントに説明があります。

上記ドキュメントに以下のような記述があります。

OperatorHub UI コンポーネントは、デフォルトで OpenShift Container Platform の openshift-marketplace namespace で Marketplace Operator によって実行されます。

openshift-marketplace ns を確認してみると、配下にオブジェクトは ありませんでした。

[root@bastion ocp]# ./oc get pods -n openshift-marketplace
No resources found in openshift-marketplace namespace.
[root@bastion ocp]# ./oc get all -n openshift-marketplace
No resources found in openshift-marketplace namespace.
[root@bastion ocp]#

同ドキュメントに以下のような記述もあります。

Marketplace Operator は、OperatorHub で提供されるデフォルトの CatalogSource オブジェクトを管理する cluster という名前の OperatorHub カスタムリソース (CR) を管理します。

確認してみると、OperatorHub という CR 自体がありませんでした。

[root@bastion ocp]# ./oc get OperatorHub -A
error: the server doesn't have a resource type "OperatorHub"

OperatorHub を表示するには、Marketplace Operator が必要という可能性がありそうですね。

前章で、capabilities の設定 に marketplace を明示的に指定せずにインストールを行っため、
Marketplace Operator が稼働せず、OperatorHub が表示されていない状況であると推測しました。

幸い、リリースノートの以下章に、インストール後にも capabilities を設定できると記述がありました。
UPIインストールはお時間もかかりますので再インストールしなくてよさそうなのはありがたいです。

以下ドキュメントに記載されている方法で、インストール後でも機能を有効化することができるとのこと、早速試してみましょう。

Post-installation configurationCluster capabilities ドキュメント :

additionalEnabledCapabilitiesmarketplace を追加しました。

[root@bastion ocp]# ./oc patch clusterversion/version --type merge -p '{"spec":{"capabilities":{"additionalEnabledCapabilities":["marketplace","openshift-samples"]}}}'
clusterversion.config.openshift.io/version patched
[root@bastion ocp]# ./oc get clusterversion version -o jsonpath='{.spec.capabilities}{"\n"}{.status.capabilities}{"\n"}'
{"additionalEnabledCapabilities":["marketplace","openshift-samples"],"baselineCapabilitySet":"None"}
{"enabledCapabilities":["marketplace","openshift-samples"],"knownCapabilities":["baremetal","marketplace","openshift-samples"]}
[root@bastion ocp]# 

確かに marketplace cluster operator が追加でインストールされました。

[root@bastion ocp]# ./oc get co
NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
authentication                             4.11.6    True        False         False      4d14h
cloud-controller-manager                   4.11.6    True        False         False      18d
cloud-credential                           4.11.6    True        False         False      18d
cluster-autoscaler                         4.11.6    True        False         False      18d     
config-operator                            4.11.6    True        False         False      18d
console                                    4.11.6    True        False         False      11d
csi-snapshot-controller                    4.11.6    True        False         False      18d
dns                                        4.11.6    True        False         False      18d
etcd                                       4.11.6    True        False         False      18d
image-registry                             4.11.6    True        False         False      18d
ingress                                    4.11.6    True        False         False      18d
insights                                   4.11.6    True        False         False      18d
kube-apiserver                             4.11.6    True        False         False      18d
kube-controller-manager                    4.11.6    True        False         False      18d
kube-scheduler                             4.11.6    True        False         False      18d
kube-storage-version-migrator              4.11.6    True        False         False      18d
machine-api                                4.11.6    True        False         False      18d
machine-approver                           4.11.6    True        False         False      18d
machine-config                             4.11.6    True        False         False      4d17h
marketplace                                4.11.6    True        False         False      71s
monitoring                                 4.11.6    True        False         False      11d
network                                    4.11.6    True        False         False      18d
node-tuning                                4.11.6    True        False         False      18d
openshift-apiserver                        4.11.6    True        False         False      11d
openshift-controller-manager               4.11.6    True        False         False      18d
openshift-samples                          4.11.6    True        False         False      18d
operator-lifecycle-manager                 4.11.6    True        False         False      18d
operator-lifecycle-manager-catalog         4.11.6    True        False         False      18d
operator-lifecycle-manager-packageserver   4.11.6    True        False         False      18d
service-ca                                 4.11.6    True        False         False      18d
storage                                    4.11.6    True        False         False      18d
[root@bastion ocp]#

空っぽだった openshift-marketplace ns 配下にデプロイされています。いい感じですね。

[root@bastion ocp]# ./oc get all -n openshift-marketplace                                                                                                                                                                                                       
NAME                                        READY   STATUS    RESTARTS   AGE
pod/certified-operators-pcrhg               1/1     Running   0          4h4m
pod/community-operators-vh8mj               1/1     Running   0          4h4m
pod/marketplace-operator-56846cf448-wfkdj   1/1     Running   0          4h5m
pod/redhat-marketplace-h97sw                1/1     Running   0          4h4m
pod/redhat-operators-txgnv                  1/1     Running   0          4h4m

NAME                                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
service/certified-operators            ClusterIP   172.30.139.240   <none>        50051/TCP           4h4m
service/community-operators            ClusterIP   172.30.20.19     <none>        50051/TCP           4h4m
service/marketplace-operator-metrics   ClusterIP   172.30.67.90     <none>        8383/TCP,8081/TCP   4h5m
service/redhat-marketplace             ClusterIP   172.30.27.147    <none>        50051/TCP           4h4m
service/redhat-operators               ClusterIP   172.30.183.137   <none>        50051/TCP           4h4m

NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/marketplace-operator   1/1     1            1           4h5m

NAME                                              DESIRED   CURRENT   READY   AGE
replicaset.apps/marketplace-operator-56846cf448   1         1         1       4h5m
[root@bastion ocp]#

OperatorHub という CR と オブジェクトも作成されています。いけそうです!

[root@bastion ocp]# ./oc get OperatorHub
NAME      AGE
cluster   4h7m
[root@bastion ocp]# 

Administrator パースペクティブの OperatorHub を表示してみましょう、正常に表示されているようです。
image.png

これで OpenShift GitOpsOpenShift PipelinesOpenShift Serverless などを利用するために必要なOpratorを OperatorHub 画面上でインストールできる他、さまざまなOperatorも検索可能ですね

試しに OpenShift GitOps オペレーターをインストールしてみました。

OpenShift GitOpsで検索してきちんとHITしています。
image.png

インストールしていきます。
image.png
image.png

インストールできたようです。
image.png

確かに Argo CD がデプロイされており、ログインもできました。
image.png

image.png

一例として OpenShift GitOps Operator で試してみた結果、問題なく OperatorHubからOperatorの検索やインストールもできてそうですね。

5. まとめ

OperatorHub を利用するためには marketplace cluster operator がインストールされている必要があるようですね。

インストール時に install-config.yamlcapabilitiesmarketplace を設定しておく、もしくはインストール後にadditionalEnabledCapabilitiesmarketplace を設定することで、marketplace cluster operator がインストールされ、OperatorHub を利用することができます。

OperatorHub を利用することが確定している場合は、前者が良さそうですね。
本記事が OpenShift 4.11 インストール手順の参考になりましたら幸いです。

関連つぶやき:

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3