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勉強していこうと思います。