This page looks best with JavaScript enabled

[kubernetes] kubectl シンボリックリンクのコンフリクト解消

 ·  ☕ 3 min read  ·  ✍️ Inomaso

前回のminikubeインストール時にkubectlのバージョンが古かったので、原因を調査し最新バージョンにしました。

ちなみにminikubeインストール記事は以下となります。

kubectlの警告メッセージ


minikube start時にkubectlのバージョンが古い警告メッセージがありました。

❗ /usr/local/bin/kubectl is version 1.16.6-beta.0, which may have incompatibilites with Kubernetes 1.19.0.

原因調査


1. リンクのコンフリクト解消


試しにkuberctlインストールを再実行しました。

1
brew install kubectl
Warning: kubernetes-cli 1.19.0 is already installed, it’s just not linked
You can use brew link kubernetes-cli to link this version.

ログを確認すると、最新バージョンはインストール済みだが、linkが見つからないとのこと。
そこで、ログにあったコマンドを実行しました。

1
brew link kubernetes-cli

Linking /usr/local/Cellar/kubernetes-cli/1.19.0…
Error: Could not symlink bin/kubectl
Target /usr/local/bin/kubectl
already exists. You may want to remove it:
rm ‘/usr/local/bin/kubectl’

To force the link and overwrite all conflicting files:
brew link –overwrite kubernetes-cli

To list all files that would be deleted:
brew link –overwrite –dry-run kubernetes-cli

シンボリックリンクでコンフリクトを起こしている様でした。
そこで、--overwriteオプションで解決するかテストしてみます。

1
brew link --overwrite --dry-run kubernetes-cli
Would remove:
/usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl

問題なさそうなので--dry-runなしで実行します。

1
brew link --overwrite kubernetes-cli
Linking /usr/local/Cellar/kubernetes-cli/1.19.0… 227 symlinks created

最新バージョンになったか確認します。

1
kubectl version --client
Client Version: version.Info{Major:“1”, Minor:“19”, GitVersion:“v1.19.0”, GitCommit:“e19964183377d0ec2052d1f1fa930c4d7575bd50”, GitTreeState:“clean”, BuildDate:“2020-08-26T21:54:15Z”, GoVersion:“go1.15”, Compiler:“gc”, Platform:“darwin/amd64”}

2. kubectl再インストール


シンボリックリンクのコンフリクトを解消したので、minikubeを起動しなおしました。
しかし、minikubeを停止せずにkubectlバージョンアップしたためかkubectl not foundと表示されました。

1
2
minikube stop
minikube start

✋ ノード “minikube” を停止しています…
🛑 1台のノードが停止しました。

😄 Darwin 10.15.6 上の minikube v1.13.0
✨ プロフィールを元に、 virtualbox ドライバを使用します
👍 コントロールプレーンのノード minikube を minikube 上で起動しています
🔄 既存の virtualbox VM を “minikube” のために再起動しています…
🐳 Docker 19.03.12 で Kubernetes v1.19.0 を準備しています…
🔎 Kubernetes コンポーネントを検証しています…
🌟 有効なアドオン: default-storageclass, storage-provisioner
💡 kubectl not found. If you need it, try: ‘minikube kubectl – get pods -A’
🏄 Done! kubectl is now configured to use “minikube” by default

そこで、試しにkubectlを再インストールしました。

1
brew reinstall kubernetes-cli

==> Downloading https://homebrew.bintray.com/bottles/kubernetes-cli-1.19.0.catal
Already downloaded: /Users/inomaso/Library/Caches/Homebrew/downloads/34a9152df5ef41a159c23808db7f1205fc354001a4bb5dc0d4e1716e51b21eb7–kubernetes-cli-1.19.0.catalina.bottle.tar.gz
==> Reinstalling kubernetes-cli
==> Pouring kubernetes-cli-1.19.0.catalina.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d

zsh completions have been installed to:
/usr/local/share/zsh/site-functions
==> Summary
🍺 /usr/local/Cellar/kubernetes-cli/1.19.0: 231 files, 49MB


念のため、kubectlのバージョンも再度確認しました。

1
kubectl version --client
Client Version: version.Info{Major:“1”, Minor:“19”, GitVersion:“v1.19.0”, GitCommit:“e19964183377d0ec2052d1f1fa930c4d7575bd50”, GitTreeState:“clean”, BuildDate:“2020-08-26T21:54:15Z”, GoVersion:“go1.15”, Compiler:“gc”, Platform:“darwin/amd64”}

問題なさそうなので、再度minikubeを起動しなおします。
無事にログからkubectl関連のエラーが無くなりました!!

1
2
minikube stop
minikube start

✋ ノード “minikube” を停止しています…
🛑 1台のノードが停止しました。

😄 Darwin 10.15.6 上の minikube v1.13.0
✨ プロフィールを元に、 virtualbox ドライバを使用します
👍 コントロールプレーンのノード minikube を minikube 上で起動しています
🔄 既存の virtualbox VM を “minikube” のために再起動しています…
🐳 Docker 19.03.12 で Kubernetes v1.19.0 を準備しています…
🔎 Kubernetes コンポーネントを検証しています…
🌟 有効なアドオン: default-storageclass, storage-provisioner
🏄 Done! kubectl is now configured to use “minikube” by default

まとめ


これでminikubeのセットアップは完全に完了しました。
次回は簡単なアプリケーションを動かしたいと思います。

Share on

comments powered by Disqus