1
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?

More than 1 year has passed since last update.

おうちkubernetes構築記 番外編 kubernetes構築時にハマったところ

Last updated at Posted at 2022-06-10

追記

本記事の内容で、「2.本エラーが発生する要因」と「3.解決方法」の②/③の解決方法について、誤りがありました。自分の勉強不足で、嘘を記載してしまい、申し訳ありません。

誤った内容については、取り消し線で全て削除させてもらいました。

おうちkubernetesの構築した記録の番外編となります。
今回は、kubernetes構築時にハマったところと、その解決方法について記載します。

環境

S/W

  • OS     : Ubuntu22.04
  • docker    : 20.10.12
  • kubernetes  : 1.24.1
  • terterm    :4.106

H/W

  • 本体     :rasberry Pi4 8GB × 2
  • ルータ    :LINKSYS 5PORT
  • SDカード   :64GB

1.ハマりポイント

・masterノードの設定時、「kubeadm init」処理後、kubectlコマンドを実行しようとしても、以下のエラーが発生し、実行されない。

The connection to the server localhost:8080 was refused - did you specify the right host or port?

本エラーの意味は
  サーバーlocalhost:8080への接続が拒否されました-正しいホストまたはポートを指定しましたか?
となります。

2.本エラーが発生する要因

1)本エラーが発生する要因としては、
 ①kubectlの実行権限が設定できていない。(実行しようとしているユーザが指定されていない。)
 ②kubeletが壊れている。
があげられます。
次に、その解決方法を記載します。

3.解決方法

1)kubectlの実行権限が設定できていない。

 kubernetesの権限は、実行するユーザで、設定する箇所が変わってきます。

  ①rootでkubectlを実行する場合
  ②super userで実行する場合
  ③ローカルユーザで実行する場合

  それぞれの実行権限の設定方法を記載します。

①rootでkubectlを実行する場合

  この場合は、/.bashrcファイルの最後に、以下の一文を追加します。

export KUBECONFIG=/etc/kubernetes/admin.conf

  その後、「source /.bashrc」コマンドで、bashrcの内容を反映させます。
  以上で、rootユーザの権限設定は完了となります。

②super userで実行する場合

  この場合は、以下のファイルを編集する必要があります。

$ $HOME/etc/kubernetes/admin.conf

本ファイルの内容は、以下の通りとなります。

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakN>
    server: https://192.168.2.119:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQW>
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0>

ここで、注意する点としては、下から5行目のusersの内容となります。
この中の、「name:」の内容が、kuernetes-adminとなっていますが、ここで、「kubectl」を実行するユーザが指定されています。
ここを、実行したいユーザ名に変更します。
そして、「kubernetes-admin」と記載されいる箇所すべてを、そのユーザ名に変更します。
以下のような感じ

clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakN>
    server: https://192.168.2.119:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: <変更したユーザ名>
  name: <変更したユーザ名>@kubernetes
current-context: <変更したユーザ名>@kubernetes
kind: Config
preferences: {}
users:
- name: <変更したユーザ名>
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQW>
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0>

合計で、4か所修正します。

これで、super userでの実行が可能となります。

③ローカルユーザで実行する場合

これも「②super userで実行する場合」とやることは同じですが、編集するファイルが異なります
super userでの実行権限を付与する際は、以下のファイルを編集する必要がありました。

$ $HOME/etc/kubernetes/admin.conf

しかし、ローカルユーザでkubectlを実行したい場合は、

$ $HOME/.kube/config

ファイルを編集する必要があります。
編集内容は、「②super userで実行する場合」と全く同じとなります。

これで、ローカルユーザでのkubectlの実行が可能となります。

2)kubeletが壊れている。

  この場合は、以下のコマンドを実行し、kubeletを再起動させてください。

sudo systemctl restart kubelet

これで、kubeletの再起動が完了するので、再度、kubectlコマンドを実行してみてください。

以上で、kubernetes構築記は終了となります。

1
0
2

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
1
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?