OKD4 を導入した後、実用的に使い始めるために必要な初期設定をまとめる。
Operator Hub の制限解除
OKD の Operator Hub は、デフォルトだと Community 提供の Operator しか表示されず、RedHat が提供する Operator などが表示されない。次のコマンドを実行し、クラスターの設定を変更する。
oc patch operatorhub cluster -p '{"spec": {"disableAllDefaultSources": false}}' --type=merge
1分くらい待つと,Operator Hub からすべての Operator が利用可能になる:
参考資料
ODF (OpenShift Data Foundation) の導入
ODF は Rook-Ceph と NooBaa によって構成される強力なストレージ統合基盤である。ODF を導入すると、Ceph-Rook による PV の Dyanmic provisioning、および、NooBaa の S3 Bucket の Dynamic provisioning が簡単に利用できるようになる。導入方法は次の Qiita 記事を参照:
Image Registry の有効化
ベアメタル環境など、共有可能なオブジェクトストレージを提供しないプラットフォーム上に OpenShift/OKD クラスタを構築した場合、デフォルトでは Image Registry が無効になっている。Image Registry の有効化および外部公開の手順は次の Qiita 記事を参照:
管理者ユーザの追加
OpenShift クラスタをインストールした直後は、デフォルトで kubeadmin
というスーパーユーザが用意される。しかしこれは一時的な利用を想定したものであるため、新規にユーザを作成することが望ましい。
以下、例として admin
という名前のユーザを作成する。
admin
user の作成
次のコマンドで admin
user の Basic 認証のパスワードファイルを作成する。
$ htpasswd -c -B -b users.htpasswd admin <PASSWORD>
htpasswd
のインストール
Fedora-based distroの場合:
$ sudo dnf install httpd-tools
Debian-based distro の場合:
$ sudo apt-get install apache2-util
生成されたファイルから Secret を作成する:
$ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd -n openshift-config
htpasswd provider のデプロイ
htpasswd provider の CR の manifest を作成する:
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: htpasswd_provider
mappingMethod: claim
type: HTPasswd
htpasswd:
fileData:
name: htpass-secret
CR を作成する:
$ oc apply -f htpasswd_provider.yaml
clusterrolebinding の設定
admin
user に cluster-admin
roleを付与する:
$ oc adm policy add-cluster-role-to-user cluster-admin admin
設定が反映されるまでしばらく待ち、コンソール (e.g. https://console-openshift-console.apps.ocp4.example.com/) にアクセスし、
htpasswd_provider
を選ぶ。
参考資料
kubeadmin の削除
デフォルトの kubeadmin ユーザは、不要になったら削除しまってもよい。
ただし cluster-admin
role をもつユーザが kubeadmin
以外にない状態で kubeadmin
を削除してしまうと、二度と cluster-admin
をもつユーザを作成することができなくなる。そうなると、解決するにはクラスタを再作成するしかなくなくなるので注意する。
次のコマンドで kubeadmin
user を削除する:
$ oc delete secrets kubeadmin -n kube-system