/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied を解消する

Kubernetes

k3sをインストールして、起動はするものの、kubectlコマンドなりを打った時にpermissio deniedが出る。

権限を追加してあげればいいのかと思いつつも、どこまで権限追加すればいいのかわからなかったので調べました。

 

環境

vagrant上のUbunutu18.04

vagrant@vagrant:/etc/rancher$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
vagrant@vagrant:/etc/rancher$

インストールしたk3sのバージョン

vagrant@vagrant:/etc/rancher$ k3s --version
k3s version v1.17.0+k3s.1 (0f644650)
vagrant@vagrant:/etc/rancher$

 

発生現象

前述した通り、以下のようなpermissin deniedが発生します。

vagrant@vagrant:~$ k3s kubectl get node
WARN[2020-01-12T15:23:20.047440616Z] Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions
error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied

sudo を付けて実行すれば実行できます。

vagrant@vagrant:~$ sudo k3s kubectl get node
NAME      STATUS   ROLES    AGE     VERSION
vagrant   Ready    master   2m34s   v1.17.0+k3s.1

解消方法

スタートスクリプトの中で環境変数を管理するファイルを読んでいるので、そこに以下を追加すればいいそうです。

vagrant@vagrant:/etc/rancher$ sudo vi /etc/systemd/system/k3s.service.env

追加した内容はこれ。

vagrant@vagrant:/etc/rancher$ sudo cat /etc/systemd/system/k3s.service.env
K3S_KUBECONFIG_MODE="644"

systemctl restart k3sで再起動して、改めてコマンドを打ってみます。

vagrant@vagrant:/etc/rancher$
vagrant@vagrant:/etc/rancher$ k3s kubectl get node
NAME      STATUS   ROLES    AGE     VERSION
vagrant   Ready    master   5m30s   v1.17.0+k3s.1
vagrant@vagrant:/etc/rancher$
vagrant@vagrant:/etc/rancher$ kubectl get node
NAME      STATUS   ROLES    AGE     VERSION
vagrant   Ready    master   5m37s   v1.17.0+k3s.1
vagrant@vagrant:/etc/rancher$

うまくいっているようです。

 

まとめ

sudo 付けずに実行できるようになったのでだいぶ運用のやり方が楽になりました。

参考にしたサイトはこちら。

/etc/rancher/k3s/k3s.yaml is world readable · Issue #389 · k3s-io/k3s · GitHub

やり方的にはスタートじにオプションを付けるやり方もあるようでしたが、環境変数を読ませる方法を試してみました。

 

しかし・・・・k3s、使い始めてさっそく詰まりましたw

でもまぁk3s、めっちゃ楽ですね。kubernetes環境としてはkindも試してみたけどこっちのほうが個人的には手軽でした。

これを使ってkubernetes勉強していこうと思います。