2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM CloudAdvent Calendar 2024

Day 6

IBM Cloud Shell で新しいバージョンの oc を利用する

Last updated at Posted at 2024-12-05

以前 IBM Cloud Shell で導入済みの kubectl とは異なるバージョンの kubectl を利用する方法を紹介しました。

今回は同じようにIBM Cloud Shellで別のバージョンの oc コマンドを利用する方法を紹介します。基本的な流れは kubectl の時と同様です。新しいバージョンの oc モジュールをダウンロードし、環境変数を通して利用するだけです。
ただし、 oc バージョン 4.16 以降はベースになる OS が Red Hat Enterprise Linux 9 となっており、その点は注意が必要でした。記事執筆時の Cloud Shell 環境は Red Hat Enterprise Linux 8 をベースとしている模様です。

IBM Cloud Shell に導入済みの oc

IBM Cloud にログインして Cloud Shell にアクセスします。

早速導入されている oc について確認します。v4.13.15 が導入されていることが確認できます。

USER@cloudshell:~$ oc version --client=true --output=yaml
clientVersion:
  buildDate: "2023-09-18T22:51:58Z"
  compiler: gc
  gitCommit: 17b7accf8fd25125ce015cf4bea7d3cd3f336317
  gitTreeState: clean
  gitVersion: 4.13.0-202309181427.p0.g17b7acc.assembly.stream-17b7acc
  goVersion: go1.19.10 X:strictfipsruntime
  major: ""
  minor: ""
  platform: linux/amd64
kustomizeVersion: v4.5.7
releaseClientVersion: 4.13.15

新しいバージョンの oc をダウンロードする

インストール済みの oc を上書きすることはできないので、別の場所に導入してパスを通して利用します。
新しいバージョンの oc のモジュールをダウンロードし、実行できるようにします。いくつかのやり方が考えられますが、oc コマンドの実行時に新しいバージョンが実行されるようにします。
新しいモジュールをダウンロードし、実行用のパーミッションを与え、環境変数にカレントディレクトリを追加します。

oc version 4.12, 4.14, 4.15を利用したい場合

oc クライアントのレポジトリの安定バージョンが配置されているディレクトリ 4.12 4.14 4.15にある openshift-client-linux.tar.gz をダウンロードして展開します。

4.12
curl -LO "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.12/openshift-client-linux.tar.gz"
4.14
curl -LO "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.14/openshift-client-linux.tar.gz"
4.15
curl -LO "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.15/openshift-client-linux.tar.gz"

oc version 4.16, 4.17を利用したい場合

(以降のバージョンもしばらくこちらの方法で利用できるはず)

oc クライアントのレポジトリの安定バージョンが配置されているディレクトリ 4.16 4.17 にある openshift-client-linux-amd64-rhel8-<バージョン>.tar.gz をダウンロードして展開します。
バージョン4.15までと同じように openshift-client-linux.tar.gz という名称のファイルが存在するのですが、これはベースの OS が RHEL9 となっており、Cloud Shell 環境では稼働させるとエラーが発生します。いずれ Cloud Shell 環境が RHEL9 で稼働するようになった場合には openshift-client-linux.tar.gz をダウンロードして利用すればよいはずです。

4.16
curl -LO https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.16/openshift-client-linux-amd64-rhel8-$(curl -sS "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.16/release.txt" | grep "Name:" | grep -o '[3-9]\.[0-9]*\.[0-9]*').tar.gz
4.17
curl -LO https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.17/openshift-client-linux-amd64-rhel8-$(curl -sS "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.17/release.txt" | grep "Name:" | grep -o '[3-9]\.[0-9]*\.[0-9]*').tar.gz

ダウンロードした新しいバージョンの oc を実行できるようにする

kubectlのときとは異なり、ダウンロードしたモジュールは圧縮されています。これを解凍し、環境変数に解凍先のパスを追加します。

まずダウンロードしたファイル名を確認します。

USER@cloudshell:~$ ls -la
total 67272
drwxr-sr-x 3 USER  user     4096 Dec  2 05:07 .
drwxr-xr-x 1 root  root     4096 Dec  2 03:21 ..
-rw-r--r-- 1 USER  user      219 Dec  2 03:21 .bash_logout
-rw-r--r-- 1 USER  user     3902 Dec  2 03:21 .bashrc
drwxr-sr-x 3 USER  user     4096 Dec  2 03:22 .npm
-rw------- 1 USER  user       14 Dec  2 04:38 .npmrc
-rw-r--r-- 1 USER  user      998 Dec  2 03:21 .profile
-rw-rw-r-- 1 USER  user 68851661 Dec  2 05:06 openshift-client-linux-amd64-rhel8-4.17.5.tar.gz

ファイルを解凍し、環境変数とパーミッションを確認し、環境変数の方にカレントディレクトリを追加します。

USER@cloudshell:~$ tar xvf openshift-client-linux-amd64-rhel8-4.17.5.tar.gz
README.md
oc
kubectl
USER@cloudshell:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/usr/local/istio/bin:/opt/gradle/gradle-6.0.1/bin:/opt/ant/bin:/opt/maven/bin
USER@cloudshell:~$ ls -la
total 392516
drwxr-sr-x 3 USER  user      4096 Dec  2 05:10 .
drwxr-xr-x 1 root  root      4096 Dec  2 03:21 ..
-rw-r--r-- 1 USER  user       219 Dec  2 03:21 .bash_logout
-rw-r--r-- 1 USER  user      3902 Dec  2 03:21 .bashrc
drwxr-sr-x 3 USER  user      4096 Dec  2 03:22 .npm
-rw------- 1 USER  user        14 Dec  2 04:38 .npmrc
-rw-r--r-- 1 USER  user       998 Dec  2 03:21 .profile
-rw-r--r-- 1 USER  user       950 Oct 25 05:27 README.md
-rwxr-xr-x 2 USER  user 166519320 Oct 25 05:27 kubectl
-rwxr-xr-x 2 USER  user 166519320 Oct 25 05:27 oc
-rw-rw-r-- 1 USER user  68851661 Dec  2 05:06 openshift-client-linux-amd64-rhel8-4.17.5.tar.gz
USER@cloudshell:~$ export PATH=~:$PATH
USER@cloudshell:~$ echo $PATH
/home/USER:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/usr/local/istio/bin:/opt/gradle/gradle-6.0.1/bin:/opt/ant/bin:/opt/maven/bin
USER@cloudshell:~$ which oc
~/oc

新しい oc のバージョンを確認する

oc のバージョンを確認すると、執筆時における最新の安定版である v4.17.5 が利用されていることがわかります。実際にはELSの4.14や4.16を使用したいケースが多いかもしれませんが、同様に新しいバージョンを導入できたことが確認できていることと思います。
USER@cloudshell:~$ oc version --client=true --output=yaml
clientVersion:
  buildDate: "2024-10-25T05:26:15Z"
  compiler: gc
  gitCommit: dde885f94df59c4816acc36814ffec3b55d4a1ca
  gitTreeState: clean
  gitVersion: 4.17.0-202410241236.p0.gdde885f.assembly.stream.el9-dde885f
  goVersion: go1.22.7 (Red Hat 1.22.7-1.module+el8.10.0+22325+dc584f75) X:strictfipsruntime
  major: ""
  minor: ""
  platform: linux/amd64
kustomizeVersion: v5.0.4-0.20230601165947-6ce0bf390ce3
releaseClientVersion: 4.17.5

まとめ

これも繰り返しになりますが、 Cloud Shell はセッションが終了すると環境が維持されないので、起動のたびに新しいバージョンに置き換える必要があります。多少面倒ですが必要なバージョンのツールを都度用意しましょう。

各マイナーバージョンに対応した 安定版 oc を導入して使用するには以下のコマンドを実行します。

4.12
curl -LO "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.12/openshift-client-linux.tar.gz"
tar xvf openshift-client-linux.tar.gz
export PATH=~:$PATH
4.13 (記事執筆時点ではデフォルトバージョンなので独自にDLする必要はない)
curl -LO "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.13/openshift-client-linux.tar.gz"
tar xvf openshift-client-linux.tar.gz
export PATH=~:$PATH
4.14
curl -LO "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.14/openshift-client-linux.tar.gz"
tar xvf openshift-client-linux.tar.gz
export PATH=~:$PATH
4.15
curl -LO "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.15/openshift-client-linux.tar.gz"
tar xvf openshift-client-linux.tar.gz
export PATH=~:$PATH
4.16
curl -LO https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.16/openshift-client-linux-amd64-rhel8-$(curl -sS "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.16/release.txt" | grep "Name:" | grep -o '[3-9]\.[0-9]*\.[0-9]*').tar.gz
tar xvf openshift-client-linux-amd64-rhel8-$(curl -sS "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.16/release.txt" | grep "Name:" | grep -o '[3-9]\.[0-9]*\.[0-9]*').tar.gz
export PATH=~:$PATH
4.17
curl -LO https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.17/openshift-client-linux-amd64-rhel8-$(curl -sS "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.17/release.txt" | grep "Name:" | grep -o '[3-9]\.[0-9]*\.[0-9]*').tar.gz
tar xvf openshift-client-linux-amd64-rhel8-$(curl -sS "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.17/release.txt" | grep "Name:" | grep -o '[3-9]\.[0-9]*\.[0-9]*').tar.gz
export PATH=~:$PATH

参考資料

IBM Cloud Docs インストール済みのプラグインとツール

バージョン 4.16 での oc 導入時に見られるエラー
oc command fails due to missing glibc library

2
0
1

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
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?