root 以外のユーザーとして crictl を実行する方法。
私のユーザーは docker グループに追加されているため、私の docker コマンドは root 以外のユーザーでも機能します。
id
uid=1002(kube) gid=100(users) groups=100(users),10(wheel),1001(dockerroot),1002(docker)
containerd と runc をランタイムとして使用する dockerD デーモンを実行しています。
以下のように、crictl バイナリをインストールし、構成ファイルを使用して既存の dockershim ソケットに接続するように指定しました。
cat /etc/crictl.yaml
runtime-endpoint: unix:///var/run/dockershim.sock
image-endpoint: unix:///var/run/dockershim.sock
timeout: 2
debug: false
pull-image-on-create: false
crictl は sudo で正常に動作しますが、sudo がないとこのように失敗します。
[user@hostname~]$ crictl ps
FATA[0002] connect: connect endpoint 'unix:///var/run/dockershim.sock', make sure you are running as root and the endpoint has been started: context deadline exceeded
また、docker.sock のグループを「root」から「docker」に変更しようとしましたが、docker.sock が試したのと同じです。
srwxr-xr-x 1 root docker 0 Jan 2 23:36 /var/run/dockershim.sock
srw-rw---- 1 root docker 0 Jan 2 23:33 /var/run/docker.sock