AKSノードにnode-shellでログインする
AKSにてノード (仮想マシンスケールセットインスタンス) に接続するとき、Podをデプロイしてそれを経由し、ノードにアクセスが必要。 しかし、ちょっと面倒なので、kubectl-node-shellを使ってみる。
krewと呼ばれるkubectlのプラグイン管理ツールによりインストールできる。
❯ kubectl krew index add kvaps https://github.com/kvaps/krew-index ❯ kubectl krew install kvaps/node-shell
使ってみると、実行中のコンテナも見れたりする。
❯ kubectl get nodes NAME STATUS ROLES AGE VERSION aks-nodepool1-31996622-vmss000000 Ready agent 9h v1.18.10 aks-nodepool1-31996622-vmss000001 Ready agent 9h v1.18.10 akswinp000000 Ready agent 9h v1.18.10 ❯ kubectl node-shell aks-nodepool1-31996622-vmss000000 spawning "nsenter-bsxuel" on "aks-nodepool1-31996622-vmss000000" If you don't see a command prompt, try pressing enter. root@aks-nodepool1-31996622-vmss000000:/# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 879f57bf3305 alpine "nsenter --target 1 …" 16 seconds ago Up 16 seconds k8s_nsenter_nsenter-bsxuel_default_74057696-8b44-49a1-bc5f-31e2666efc12_0 ...(省略)...
動作としては、alpineイメージのコンテナから、nsenterコマンドにてpidが1を指定してノードに入っている。 そのため、Windows ノードでは残念ながら動作しなかった。
❯ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nsenter-21fo6d 0/1 ContainerCreating 0 138m 10.240.0.66 akswinp000000 <none> <none>