Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Azure】AKSにおける kubectl 更新手順【AKS】

Last updated at Posted at 2021-04-01

はじめに

Azure Kubernetes Service の利用を開始する際、公式ドキュメントのチュートリアルに従えば、kubectl のインストールは az aks install-cli で行う。しかし、バージョンを指定せずにこのコマンドを実行すると、サポートされない kubectl のバージョンを使うことになる可能性がある。AKSのサポートポリシーは、以下となっている。

kube-apiserver バージョンに対して 1 つ新しいまたは古い kubectl のマイナー バージョンを使用します。これは、kubectl の Kubernetes サポート ポリシーに一致しています。
https://docs.microsoft.com/ja-jp/azure/aks/supported-kubernetes-versions#supported-kubectl-versions

本記事では、AKSでの kubectl バージョン更新方法を紹介する。

手順

まずは、kubectl と Kube-apiserver のバージョンを確認する。

kubectl version

以下に上記コマンドの出力例を示す。

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.10", GitCommit:"62876fc6d93e891aa7fbe19771e6a6c03773b0f7", GitTreeState:"clean", BuildDate:"2020-10-16T20:43:34Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

Client Version が kubectl のバージョン、 Server Version が Kube-apiserver のバージョンである。この例では、kubectl のマイナーバージョンが kube-apiserver のマイナーバージョンと 2 以上乖離しているため、サポート対象外の組み合わせとなっている。 az aks install-cli をバージョン指定せずに実行すると、最新の kubectl バージョンがインストールされるため、このようなことが起こりがちである。

以下のコマンドで、クライアント端末の kubectl バージョンを更新する。

az aks install-cli --client-version 1.18.10

既存の kubectl を削除しておくなどの事前作業は不要である。
権限が足りないというエラーが出る場合は、sudo を付けて実行する。

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.10", GitCommit:"62876fc6d93e891aa7fbe19771e6a6c03773b0f7", GitTreeState:"clean", BuildDate:"2020-10-15T01:52:24Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.10", GitCommit:"62876fc6d93e891aa7fbe19771e6a6c03773b0f7", GitTreeState:"clean", BuildDate:"2020-10-16T20:43:34Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

基本的には上記コマンドだけで kubectl のバージョンを更新することができる。しかし sudo をつけた場合の kubectl バージョンが更新されていない場合がある。その場合は、/bin/kubectl を確認する。 /bin/kubectl が存在し、更新日時が古い場合は、/usr/local/bin/kubectl を /bin/kubectl にコピーする

ls -l /usr/local/bin
ls -l /bin/ | grep kube
# /bin/kubectl が存在し、更新日時が古い場合は、/usr/local/bin からコピーする
sudo cp /usr/local/bin/kubectl /bin/kubectl
sudo kubectl version

参考

  1. Azure Kubernetes Service (AKS) でサポートされている Kubernetes のバージョン

  2. Kubernetes version and version skew support policy

  3. az aks install-cli

2
1
0

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

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?