🤦♀️
kindで作ったKubernetesクラスタに接続できない時の対処法
実行環境
WSLのUbuntu上でkindを使ってKubernetesクラスタを作成したのですが、kubectlコマンド実行時に The connection to the server <IP>:32769 was refused - did you specify the right host or port?
というエラーが出てしまいました。
結論
kubeconfigファイルの設定値がおかしかったです。kindではkind create cluster
コマンドを実行するとKubernetesクラスタに接続するための認証情報などがデフォルトで~/.kube/config
ファイルに格納されるのですが、自分の環境ではminikubeも使用していたせいか以下のようにminikubeの認証情報が残っており、kindのものに更新されていないようでした。
apiVersion: v1
clusters:
- cluster:
certificate-authority: /hogehoge
extensions:
- extension:
last-update: Wed, 16 Aug 2023 08:37:37 JST
provider: minikube.sigs.k8s.io
version: v1.31.1
name: cluster_info
server: https://<IP>:32769
name: minikube
contexts:
- context:
cluster: ""
user: ""
name: kind-kind
- context:
cluster: minikube
extensions:
- extension:
last-update: Wed, 16 Aug 2023 08:37:37 JST
provider: minikube.sigs.k8s.io
version: v1.31.1
name: context_info
namespace: default
user: minikube
name: minikube
current-context: kind-kind
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /hogehoge/client.crt
client-key: /hogehoge/client.key
ということで一度このファイルを削除し、以下のコマンドを実行してkubeconfigファイルを更新します。
sudo kind get kubeconfig > ~/.kube/config
すると、以下のようにkubeconfigファイルが更新されます。
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://<IP>:46509
name: kind-kind
contexts:
- context:
cluster: kind-kind
user: kind-kind
name: kind-kind
current-context: kind-kind
kind: Config
preferences: {}
users:
- name: kind-kind
user:
client-certificate-data: DATA+OMITTED
client-key-data: DATA+OMITTED
この状態でkubectlコマンドを実行すると、以下のようにクラスタへの接続が確認できました。
Kubernetes control plane is running at https://<IP>:46509
CoreDNS is running at https://<IP>:46509/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
参考
No context found by kubectl
when starting cluster with kind create cluster
· Issue #2174 · kubernetes-sigs/kind
Discussion