在搭建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
②如果使用超级用户身份运行
③如果使用本地用户身份运行
それぞれの実行権限の設定方法を記載します。
①rootでkubectlを実行する場合
在这种情况下,将以下一句话追加到/.bashrc文件的末尾。
export KUBECONFIG=/etc/kubernetes/admin.conf
用以下方式以设置root用户权限:
然后使用“source/.bashrc”命令,将bashrc的内容反映出来。
这样设置root用户的权限就完成了。
如果以超级用户身份运行
この場合は、以下のファイルを編集する必要があります。
$ $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个地方需要修正。
通过这样做,您就可以在超级用户下执行操作了。
如果以本地用户身份执行的话。
这个任务和“以超级用户身份运行”是相同的,但要编辑的文件不同。
在授予超级用户权限时,需要编辑以下文件。
$ $HOME/etc/kubernetes/admin.conf
如果想要在本地用户中执行kubectl,
$ $HOME/.kube/config
需要编辑文件。
编辑内容应与“②以超级用户身份运行时”完全相同。
现在,您可以使用本地用户在kubectl上执行操作。
2)kubelet坏了。
请执行以下命令来重新启动 kubelet。
sudo systemctl restart kubelet
请尝试重新运行kubectl命令,这样kubelet即可重新启动完成。
上面是 Kubernetes 构建记录的结束。