Red Hatでソリューションアーキテクトをしている田中司恩(@tnk4on)です。 この連載はvSphere環境上にOpenShift Container Platform(以下、OpenShift)およびOpenShift Virtualizationの環境を構築する方法を解説するシリーズです。
第2回はOpenShiftのインストール後の作業について解説します。今後の連載予定は下記の通りです。
- 第1回:OpenShiftのインストール
- 第2回:OpenShiftインストール後の作業(←本記事)
- 第3回:共有ストレージの作成(NFS CSIドライバーの構築)
- 第4回:OpenShift Virtualizationのインストールと実行
- 第5回:vSphere仮想マシンの移行
- 【番外編】:共有ストレージの作成(NFSプロビジョナーの構築)
(2024/7/24追記:第3回の内容を改訂し、元の内容を番外編に変更しました)
-目次-
- インストール後の作業
- 前提条件
- 1. Webコンソールの表示設定
- 2. OpenShift CLI(oc)による操作
- 3. 不要なPodの削除
- 4. アイデンティティープロバイダーの設定とkubeadminユーザーの削除
- まとめ
インストール後の作業
本記事ではOpenShiftのインストール後の作業として、下記の内容を紹介します。
- Webコンソールの表示設定
- OpenShift CLI(oc)による操作
- 不要なPodの削除
- アイデンティティープロバイダーの設定とkubeadminユーザーの削除
なお、OpenShiftのインストール後の作業は製品ドキュメントの「インストール後の設定」にまとまっています。
今回の連載はOpenShift Virtualizationの検証目的なのでそれほど多くのDay2作業を行いません。 ストレージや関連するイメージレジストリーの設定は「第3回:共有ストレージの作成」で行います。
前提条件
- 連載第1回の作業を完了していることとします
- 全体の構成や各パラメーターなどは第1回を参照してください
- 作業用端末のプロンプトは
%
とします - 踏み台サーバーのプロンプトは
$
とします - 踏み台サーバーの作業は明示的に記載がある場合を除いて、作業ディレクトリ
${HOME}/work
で作業することとします
1. Webコンソールの表示設定
前回のインストール作業が完了しWebコンソールにログインした状態からスタートします。
1-1 テーマの変更
Webコンソールのテーマはデフォルトではシステムのテーマにしたがって表示されます。
OpenShiftのテーマを固定して変更したい場合は、ユーザー設定から変更を行います。 画面右上のユーザー名を選択し、プルダウンからユーザー設定を選択します。
デフォルトは「システムのデフォルト」が選択されていますので、変更する場合は「ライト」または「ダーク」を選択します。
1-2 言語設定
デフォルトはブラウザの言語設定を使用します。別の言語に変更して固定したい場合は、チェックボックスを外して指定の言語を選択します。
2. OpenShift CLI(oc)による操作
OpenShiftの操作の1つのOpenShift CLI(oc)を使ったCLIの操作について解説します。
2-1 ocコマンドとは
oc
コマンドを使用することでOpenShiftのクラスタ操作をCLIで行ったり、CLIでアプリケーションを作成できます。
oc
コマンドのドキュメントは下記を参照してください。
2-2 インストール後に使用できる2つの管理者アカウント
oc
コマンドによる操作をするためにはOpenShiftクラスターにログインする必要があります。
インストール直後に使用できる管理アカウントは2つあります。
- kubeadmin
- system:admin
kubeadmin
はインストール後にWebコンソールへログインする時に使用したアカウントです。
system:admin
はインストール後にダウンロードしたkubeconfig
ファイルを使ったログイン時に使用されるアカウントです。
どちらもクラスターの管理者アカウント(最上位の権限)ですが、kubeadmin
ユーザーの方はインストール後の一時利用を目的として用意されています。
そのため、Webコンソールにログインすると画面上部に「一時的な管理ユーザーとしてログインしています。他のユーザーがログインできるように、クラスターのOAuth設定を更新してください。」と警告が出続けます。
本記事の後半では別の管理者アカウントの作成とkubeadmin
ユーザーの削除について紹介します。
2-3 kubeadminユーザーを使ったログイン方法
kubeadmin
ユーザーを使ったoc
コマンドによるログインは下記のように行います。
-u
オプションでログインするユーザー名:kubeadmin
を指定します。引数としてログイン先のOpenShiftのKubernetes APIをURLとして指定します。ポート番号は6443
です。
$ oc login -u kubeadmin https://api.ocp.home.lab:6443
Webコンソールでアクセスした時と同様に、インストール後の状態では自己署名証明書を使っていますので接続の警告が出ます。y
を入力した後、パスワードの入力プロンプトが表示されますのでパスワードを入力します。
$ oc login -u kubeadmin https://api.ocp.home.lab:6443 The server uses a certificate signed by an unknown authority. You can bypass the certificate check, but any data you send to the server could be intercepted by others. Use insecure connections? (y/n): y WARNING: Using insecure TLS client config. Setting this option is not supported! Console URL: https://api.ocp.home.lab:6443/console Authentication required for https://api.ocp.home.lab:6443 (openshift) Username: kubeadmin Password:
ログインが成功すると下記のような表示が出力されます。デフォルトではdefault
プロジェクトを開いた状態になります。
... Login successful. You have access to 70 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default". Welcome! See 'oc help' to get started.
プロジェクトはKubernetesのnamespaceを拡張したものです。ここではOpenShift上の独立した論理的な分割単位でマルチテナントを実現するもの、くらいで覚えておけば良いでしょう。
ログインが成功すればoc
コマンドを使った各種操作が実行できます。
いくつかコマンドを実行してみましょう。
$ oc whoami kube:admin $ oc cluster-info Kubernetes control plane is running at https://api.ocp.home.lab:6443 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. $ oc get nodes NAME STATUS ROLES AGE VERSION node-01.ocp.home.lab Ready control-plane,master,worker 37h v1.29.5+29c95f3 node-02.ocp.home.lab Ready control-plane,master,worker 37h v1.29.5+29c95f3 node-03.ocp.home.lab Ready control-plane,master,worker 37h v1.29.5+29c95f3
oc whoami
:現在ログインしているユーザー名を表示oc cluster-info
:現在接続しているOpenShiftのクラスター情報を表示oc get nodes
:OpenShiftクラスターを構成している各ノードを表示
ログアウトを行うにはoc logout
を実行します。
$ oc logout Logged "kube:admin" out on "https://api.ocp.home.lab:6443"
oc login
を行うとホームディレクトリ配下に.kube
ディレクトリが作成されます。
.kube/config
にはログインしたユーザーのトークン情報が記載され、デフォルトでは24時間の有効期限が設定されます。
トークンの有効期限が切れると下記のようにoc
コマンドが実行できなくなります。
$ oc whoami error: You must be logged in to the server (Unauthorized)
トークンの有効期限が切れた場合は再度oc
コマンドでログインを行ってください。
デフォルトのトークンの期間を変更する場合は下記のドキュメントを参考にしてください。
3.4. 内部 OAuth サーバーのトークン期間の設定 | Red Hat Product Documentation
2-4 kubeconfigを使ったログイン方法
kubeconfig
ファイルを使ったログイン方法はインストールのドキュメントに載っている方法でよく利用されます。
KUBECONFIG
環境変数にkubeconfig
ファイルを指定することで、ユーザー名やパスワードを入力することなく固定のユーザー名:system:admin
でログインができます。
なお、system:admin
を使ったログインはCLIのみ利用可能で、Webコンソールでは使用できない点はご注意ください。
kubeconfig
ファイルを使ったログイン方法のドキュメントは下記です。
(1)kubeconfigについて
kubeconfig
ファイルは再利用ができません。たとえばOpenShiftを再インストールした場合は、新しいクラスター用のkubeconfig
ファイルを入手して使用する必要があります。
kubeconfig
ファイルは必ずバックアップを取っておくようにしましょう。
kubeconfigファイルを紛失したり損傷した場合は下記の手順で復旧できる場合があります
(2)kubeconfigファイルの入手
前回ダウンロードしたkubeconfig
ファイルを踏み台サーバーにコピーします。
kubeconfig
ファイルは作業用端末のカレントディレクトリにあることとします。
踏み台サーバーにkubeconfig
ファイルの配置先となるauth
ディレクトリを作成します。
OpenShiftのドキュメントでは以前から慣用的に
auth
ディレクトリ配下にkubeconfig
ファイルを配置するように示されてるのでそれに従います。
(作業用端末で実行) % ssh bastion mkdir work/auth
踏み台サーバーにkubeconfig
ファイルをコピーします。
(作業用端末で実行) % scp kubeconfig bastion:work/auth/
踏み台サーバーにログインします。
(作業用端末で実行) % ssh bastion
(3)kubeconfigファイルを使ったログイン
まず、oc logout
コマンドを実行してログアウトを行います。
$ oc logout Logged "kube:admin" out on "https://api.ocp.home.lab:6443"
現在のシェルセッションにKUBECONFIG
環境変数をセットします。
$ export KUBECONFIG=${HOME}/work/auth/kubeconfig
- フルパスで
kubeconfig
ファイルを指定することで別のディレクトリに移動した場合でもoc
コマンドが実行できるようにします
oc whoami
コマンドを実行し現在ログインのユーザーを確認します。
$ oc whoami system:admin
oc
コマンドが実行できるか確認します。
$ oc cluster-info Kubernetes control plane is running at https://api.ocp.home.lab:6443 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. $ oc get nodes NAME STATUS ROLES AGE VERSION node-01.ocp.home.lab Ready control-plane,master,worker 38h v1.29.5+29c95f3 node-02.ocp.home.lab Ready control-plane,master,worker 38h v1.29.5+29c95f3 node-03.ocp.home.lab Ready control-plane,master,worker 38h v1.29.5+29c95f3
oc login
コマンドを使った場合と異なり、ログイン操作不要でoc
コマンドを実行できるようになりました。
kubeconfig
ファイルを使った操作をやめる場合、明示的なログアウトの処理はありません。
その代わりにKUBECONFIG
環境変数を解除して同等の処理とします。
$ echo $KUBECONFIG /home/user/work/auth/kubeconfig $ unset KUBECONFIG $ echo $KUBECONFIG $ oc whoami Error from server (Forbidden): users.user.openshift.io "~" is forbidden: User "system:anonymous" cannot get resource "users" in API group "user.openshift.io" at the cluster scope
(4)oc loginとkubeconfig使用時の注意点
oc login
とkubeconfig
の併用は行わず、ログアウトまたは環境変数の解除を行ってどちらか一方のみの操作で行うようにしてください。
KCSにも下記の記載があります。
Important: Don't execute oc login when using the kubeconfig file, as it will switch them from using the special system:admin user (which uses client certificates) to token-based authentication using the credentials specified.
(翻訳) 重要: kubeconfig ファイルを使用している場合、oc login を実行しないでください。実行すると、クライアント証明書を使用する特別な system:admin ユーザーから、指定された資格情報を使用するトークンベースの認証に切り替わってしまいます。
たとえば、export KUBECONFIG
を行った状態で、oc login
を行うと.kube
ディレクトリが作成されず、kubeconfig
ファイルにユーザーのログイン情報が書き込まれます。
$ export KUBECONFIG=${HOME}/work/auth/kubeconfig $ oc whoami system:admin $ oc login -u kubeadmin https://api.ocp.home.lab:6443 Console URL: https://api.ocp.home.lab:6443/console Authentication required for https://api.ocp.home.lab:6443 (openshift) Username: kubeadmin Password: Login successful. You have access to 70 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default". $ ls -d ~/.kube ls: '/home/user/.kube' にアクセスできません: そのようなファイルやディレクトリはありません
それと同時にkubeconfig
ファイルを使ったsystem:admin
ユーザーでのログインができなくなります。
$ export KUBECONFIG=${HOME}/work/auth/kubeconfig $ oc whoami Error from server (Forbidden): users.user.openshift.io "~" is forbidden: User "system:anonymous" cannot get resource "users" in API group "user.openshift.io" at the cluster scope
こうなると元のkubeconfig
ファイルから復旧するか、上記で紹介したKCSの方法でkubeconfig
ファイルを復旧する必要があります。
ご注意ください。
2-5 Cluster Operatorの出力確認
oc
コマンドを使った操作の1つである「Cluster Operatorの出力確認」について紹介します。
Cluster OperatorはOpenShiftクラスター全体のインフラストラクチャと管理を担当する重要なコンポーネントです。
Cluster Operatorがすべて正常に動作しているかどうかが、OpenShiftのクラスターの状態を確認する1つの手段になります。
(1)Cluster Operatorの一覧を出力
oc get clusteroperators
コマンドを実行するとCluster Operatorの一覧を出力できます。
OpenShiftクラスターが正常にしている場合は、AVAILABLE
がすべてTrue
、PROGRESSING
とDEGRADED
がすべてFalse
になります。
oc get clusteroperators
コマンドはoc get co
と省略して入力できます。
$ oc get co NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE authentication 4.16.0 True False False 7m1s baremetal 4.16.0 True False False 30m cloud-controller-manager 4.16.0 True False False 43m cloud-credential 4.16.0 True False False 50m cluster-autoscaler 4.16.0 True False False 32m config-operator 4.16.0 True False False 33m console 4.16.0 True False False 14m control-plane-machine-set 4.16.0 True False False 30m csi-snapshot-controller 4.16.0 True False False 33m dns 4.16.0 True False False 33m etcd 4.16.0 True False False 31m image-registry 4.16.0 True False False 14m ingress 4.16.0 True False False 18m insights 4.16.0 True False False 28m kube-apiserver 4.16.0 True False False 23m kube-controller-manager 4.16.0 True False False 24m kube-scheduler 4.16.0 True False False 24m kube-storage-version-migrator 4.16.0 True False False 34m machine-api 4.16.0 True False False 21m machine-approver 4.16.0 True False False 34m machine-config 4.16.0 True False False 33m marketplace 4.16.0 True False False 32m monitoring 4.16.0 True False False 11m network 4.16.0 True False False 35m node-tuning 4.16.0 True False False 18m openshift-apiserver 4.16.0 True False False 22m openshift-controller-manager 4.16.0 True False False 27m openshift-samples 4.16.0 True False False 22m operator-lifecycle-manager 4.16.0 True False False 30m operator-lifecycle-manager-catalog 4.16.0 True False False 30m operator-lifecycle-manager-packageserver 4.16.0 True False False 22m service-ca 4.16.0 True False False 35m storage 4.16.0 True False False 34m
(2)インストール途中でのCluster Operatorのモニタリング
OpenShiftのインストールの途中にkubeconfig
ファイルをダウンロードし、Cluster Operatorの一覧を出力することでインストールの経過状況をモニタリングできます。
watch
コマンドを合わせて実行して進行状況を自動でモニタリングできます。
$ watch oc get co NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE authentication 4.16.0 False True True 13m OAuthServerDeploymentAvailable: no oauth-openshift.openshift-authentication pods available on any node.... baremetal 4.16.0 True False False 9m18s cloud-controller-manager 4.16.0 True False False 22m cloud-credential 4.16.0 True False False 29m cluster-autoscaler 4.16.0 True False False 11m config-operator 4.16.0 True False False 12m console control-plane-machine-set 4.16.0 True False False 9m32s csi-snapshot-controller 4.16.0 True False False 12m dns 4.16.0 True False False 12m etcd 4.16.0 True True False 10m NodeInstallerProgressing: 2 nodes are at revision 5; 0 nodes have achieved new revision 6 image-registry 4.16.0 True False False 47s ingress False True True 11m The "default" ingress controller reports Available=False: IngressControllerUnavailable: One or more status conditions indicate unavailable: DeploymentAvailable=False (DeploymentUnavailable: The deployment has Available status condition set to False (reason: MinimumReplicasUnavailable) with message: Deployment does not have minimum availability.) insights 4.16.0 True False False 7m14s kube-apiserver 4.16.0 True True False 2m38s NodeInstallerProgressing: 1 node is at revision 0; 1 node is at revision 3; 0 nodes have achieved new revision 6 kube-controller-manager 4.16.0 True True False 3m3s NodeInstallerProgressing: 1 node is at revision 3; 1 node is at revision 4 kube-scheduler 4.16.0 True True False 3m37s NodeInstallerProgressing: 1 node is at revision 3; 1 node is at revision 4 kube-storage-version-migrator 4.16.0 True False False 13m machine-api 4.16.0 True False False 48s machine-approver 4.16.0 True False False 12m machine-config 4.16.0 True False False 12m marketplace 4.16.0 True False False 11m monitoring Unknown True Unknown 11m Rolling out the stack. network 4.16.0 True False False 14m node-tuning 4.16.0 True False False 8m56s openshift-apiserver 4.16.0 True False False 65s openshift-controller-manager 4.16.0 True True False 6m12s Progressing: deployment/controller-manager: updated replicas is 1, desired replicas is 2... openshift-samples 4.16.0 True False False 55s operator-lifecycle-manager 4.16.0 True False False 9m25s operator-lifecycle-manager-catalog 4.16.0 True False False 9m27s operator-lifecycle-manager-packageserver 4.16.0 True False False 75s service-ca 4.16.0 True False False 14m storage 4.16.0 True False False 13m
なお、すべてのOperatorのAVAILABLE
がTrue
にならずAssisted Installerの画面上でインストール完了になることがあります。
これは処理の進行上タイムラグが出ることはありますが問題はありません。
3. 不要なPodの削除
OpenShiftのインストール完了後、クラスターインベントリーの欄にエラーのPodが表示されることがあります。
エラーの数字のリンクを押すと、エラーでフィルタリングされたPodの一覧が表示されます。
これはインストール時になんらかの理由でエラーになって残ったものですが、不要なので削除できます。GUI上でPodの一覧表示からPodを1つ1つを選んで削除することもできますが、数が多いと手間がかかります。
このような繰り返す作業はCLIで行う方が効率的です。先ほど使えるようにしたoc
コマンドでCLIを使って一括で削除してみましょう。
oc
コマンドでエラーになったPodを確認する場合は下記のコマンドを実行します。
--field-selector=
オプションでステータスがFailed
になったPodをフィルタリングできます。
$ oc get pods --field-selector=status.phase=Failed -A NAMESPACE NAME READY STATUS RESTARTS AGE openshift-kube-apiserver installer-2-node-02.ocp.home.lab 0/1 Error 0 43m openshift-kube-apiserver installer-4-node-03.ocp.home.lab 0/1 Error 0 33m openshift-kube-controller-manager installer-2-node-02.ocp.home.lab 0/1 Error 0 44m openshift-operator-lifecycle-manager collect-profiles-28666305-hlq7g 0/1 Error 0 37m
Podを削除する場合はoc delete pods
コマンドを実行します。確認の場合と同じく--field-selector=
オプションを使ってPodをフィルタリングします。
$ oc delete pods --field-selector=status.phase=Failed -A pod "installer-2-node-02.ocp.home.lab" deleted pod "installer-4-node-03.ocp.home.lab" deleted pod "installer-2-node-02.ocp.home.lab" deleted pod "collect-profiles-28666305-hlq7g" deleted
Podの削除後、エラーになったPodが消えたことを確認します。
$ oc get pods --field-selector=status.phase=Failed -A No resources found
4. アイデンティティープロバイダーの設定とkubeadminユーザーの削除
4-1 アイデンティティープロバイダーについて
OpenShiftのインストール後から使用しているkubeadmin
ユーザーは一時的な管理ユーザーで、恒久的に使用できるユーザーではありません。
そのためkubeadmin
ユーザーをそのまま使っていると、Webコンソールの上部に青い表示が出続けることになります。
「クラスターのOauth設定」の文字のリンクを選択するとOpenShiftクラスターのOauthの画面が表示されます。 デフォルトではアイデンティティープロバイダーは何も登録されておらず、そのままでは管理ユーザーの変更ができません。
まずはアイデンティティープロバイダーの設定を行うところから開始します。 OpenShiftはさまざまなアイデンティティープロバイダーに対応しており、大規模なエンタープライズでの利用にも対応できます。 今回は小規模な検証用途ですので、一番シンプルに実装できるhtpasswdを使って設定を行います。
アイデンティティープロバイダー設定については下記のドキュメントを参照してください。
アイデンティティープロバイダーを使ったログインの構成は、本記事2-2の「図:OpenShiftにログインする複数の方法のまとめ」を参照ください。
4-2 htpasswd アイデンティティープロバイダーの設定
まず、htpasswdファイルの作成を行います。htpasswdファイルは、各ユーザーのユーザー名とハッシュ化されたパスワードを含むフラットファイルです。
htpasswdファイルはhtpasswd
コマンドを使ってファイルの作成とユーザーの追加を行います。
今回はファイル名:users.htpasswd
、ユーザー名:ocpadmin
、パスワード:password
で作成を行います。
$ htpasswd -c -B -b users.htpasswd ocpadmin password
次に、htpasswdファイルが含まれるSecretオブジェクトを作成します。
$ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd -n openshift-config
secretの一覧を表示し、作成したhtpass-secret
が含まれているか確認します。
$ oc get secret -n openshift-config NAME TYPE DATA AGE builder-dockercfg-77z9v kubernetes.io/dockercfg 1 13h default-dockercfg-zjt6b kubernetes.io/dockercfg 1 13h deployer-dockercfg-5z9qv kubernetes.io/dockercfg 1 13h etcd-client kubernetes.io/tls 2 13h etcd-metric-signer kubernetes.io/tls 2 13h etcd-signer kubernetes.io/tls 2 13h htpass-secret Opaque 1 2m53s initial-service-account-private-key Opaque 1 13h pull-secret kubernetes.io/dockerconfigjson 1 13h webhook-authentication-integrated-oauth Opaque 1 13h
htpasswdのカスタムリソース(CR)を作成します。これはhtpasswdアイデンティティープロバイダーのパラメーターと許可される値を定義したものです。
oauth_cr.yaml
というファイル名で作成します。
$ cat > oauth_cr.yaml <<EOF apiVersion: config.openshift.io/v1 kind: OAuth metadata: name: cluster spec: identityProviders: - name: my_htpasswd_provider mappingMethod: claim type: HTPasswd htpasswd: fileData: name: htpass-secret EOF
- my_htpasswd_provider:このプロバイダー名は、プロバイダーのユーザー名に接頭辞として付加され、アイデンティティー名が作成されます。
- mappingMethod:このプロバイダーのアイデンティティーとUserオブジェクト間にマッピングが確立される方法を指定します
- htpass-secret:htpasswdファイルが含まれる既存のシークレットです。
htpasswdのカスタムリソースをクラスターに適用します。
$ oc apply -f oauth_cr.yaml
作成したユーザーocpadmin
をクラスター管理者として定義します。OpenShiftではcluster-admin
というロールをユーザーに適用することでこれを行います。
11.2. RBAC の使用によるパーミッションの定義および適用 | Red Hat Product Documentation
$ oc create clusterrolebinding admin --clusterrole=cluster-admin --user=ocpadmin
これでocpadmin
ユーザーをクラスター管理者として作成することができました。
4-3 アイデンティティープロバイダーを使ったWebコンソールのログイン
アイデンティティープロバイダーの設定が完了しましたので、Webコンソールからkubeadmin
ユーザーをログアウトします。
画面右上のユーザー名を選択しプルダウンからログアウトを選択します。
ログイン画面に戻ると以前とは異なり、ユーザー名とパスワードの入力欄が消え、代わりにkube:admin
と登録したhtpasswdアイデンティティープロバイダー名:my_htpasswd_provider
が表示されます。
htpasswdのカスタムリソースの適用直後はCluster Operator:
authentication
の更新が完了しておらず、選択画面が出てこないことがあります。しばらく待ってからブラウザをリロードしてください。
my_htpasswd_provider
を選択し、続けて表示されるユーザー名とパスワードに先ほど作成したocpadmin
のユーザー情報を入力します。
ocpadmin
で管理者としてWebコンソールにログインができました。
oc
コマンドでユーザー情報を表示すると、ユーザー名と対応するアイデンティティープロバイダー名が確認できます。
$ oc get users NAME UID FULL NAME IDENTITIES ocpadmin 60272a66-73b6-42b9-aec6-8941340acdd7 my_htpasswd_provider:ocpadmin
4-4 アイデンティティープロバイダーを使ったocログイン
今度はoc login
コマンドを使い、作成したユーザー:ocpadmin
を指定してログインします。
「2-4 kubeconfigを使ったログイン方法」で書いたように、oc login
の前にKUBECONFIG
環境変数を解除してから実施します。
ログインの手順は「2-3 kubeadminユーザーを使ったログイン方法」と同じです。
$ unset KUBECONFIG $ oc login -u ocpadmin https://api.ocp.home.lab:6443 The server uses a certificate signed by an unknown authority. You can bypass the certificate check, but any data you send to the server could be intercepted by others. Use insecure connections? (y/n): y WARNING: Using insecure TLS client config. Setting this option is not supported! Console URL: https://api.ocp.home.lab:6443/console Authentication required for https://api.ocp.home.lab:6443 (openshift) Username: ocpadmin Password: Login successful. You have access to 70 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default". Welcome! See 'oc help' to get started.
現在のセッションのユーザー名を確認します。
$ oc whoami ocpadmin
4-5 kubeadminユーザーの削除
新しい管理者ユーザーの作成が完了したので、kubeadminユーザーの削除を行います。
手順は下記のドキュメントに従います。
kubeadminユーザーを削除する前提条件は下記の通りです。
- 1つ以上のアイデンティティープロバイダーを設定しておく必要があります。
- cluster-adminロールをユーザーに追加しておく必要があります。
- 管理者としてログインしている必要があります。
ここでは「4-4 アイデンティティープロバイダーを使ったocログイン」の続きで、ocpadmin
ユーザーでログインしている状態で実行します。
kubeadmin
ユーザーの削除は下記のコマンドを実行します。
$ oc delete secrets kubeadmin -n kube-system secret "kubeadmin" deleted
kubeadmin
ユーザーでログインできないことを確認します。
$ oc logout Logged "ocpadmin" out on "https://api.ocp.home.lab:6443" $ oc login -u kubeadmin https://api.ocp.home.lab:6443 WARNING: Using insecure TLS client config. Setting this option is not supported! Console URL: https://api.ocp.home.lab:6443/console Authentication required for https://api.ocp.home.lab:6443 (openshift) Username: kubeadmin Password: Login failed (401 Unauthorized) Verify you have provided the correct credentials.
Webコンソールをログインし、再度ログインWebコンソールのトップ画面に戻ると元のユーザー名とパスワードを入力する表示に変わります。 これは登録されているアイデンティティープロバイダーが1種類しかないためです。
まとめ
OpenShiftのインストール後の作業についてご紹介しました。
OpenShiftはWebコンソールも利用できますが、まだまだ多くの作業はoc
コマンドを使ったCLI操作が中心です。
またその設定方法はYAML形式のカスタムリソースを作成して適用するなどKuberentes特有の作業であり、新しい操作には慣れが必要です。
その反面パラメーターや設定変更後の状態をコードとして定義できる点は、手作業などの属人性の排除に繋がります。
本連載を通じて少しずつでもクラウドネイティブなインフラ管理の便利さを体感頂ければと思います。
(次回予告) 次回はOpenShift Virtualizationに必須の、共有ストレージの作成について解説します。