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

### 追記
### 本記事の内容で、「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構築記は終了となります。