简介
我一般都是使用lens的node shell功能直接搞定所有需要再节点上的操作,其实原理都是一样的,就是在节点上启动一个pod。但是有时候有的机器是没有安装lens的,所以直接使用node-shell这个插件就很好。
操作
首先你要安装krew
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
或者直接简单粗暴一点
brew install krew
之后加入环境变量
vim ~/.zshrc
export PATH="${PATH}:${HOME}/.krew/bin"
安装完krew之后就可以直接安装node-shell了
kubectl krew install kvaps/node-shell
安装完成之后直接输入下面的命令就可以使用
kubectl node-shell node1
当然,在某些地方你会发现node-shell启动的很慢(比如china),因为在创建pod的时候需要从dockerhub上去拉取镜像,但是你的网络是几乎拉取不到dockerhub上的镜像的,所以你需要修改node-shell的镜像
vim ~/.krew/store/node-shell/v1.7.0/kubectl-node_shell
把
image="${KUBECTL_NODE_SHELL_IMAGE:-docker.io/library/alpine}"
改为
image="${KUBECTL_NODE_SHELL_IMAGE:-dockerproxy.com/library/alpine}"
当然你也可以改为你的镜像仓库的地址
欢迎关注我的博客www.bboy.app
Have Fun