前言

公有云场景越来越多公司选择基于托管K8S部署应用,大部分人都会直接基于kubeconfig配置管理K8S集群,但时间一长偶尔也会遇到K8S Node忘记root密码的尴尬,这回跟着同事学习用krew安装node-shell轻松修改k8s宿主机root密码。

更新历史

2023年03月07日 - 初稿

阅读原文 - https://wsgzao.github.io/post/krew/


安装krew

https://krew.sigs.k8s.io/docs/user-guide/quickstart/

https://krew.sigs.k8s.io/docs/user-guide/setup/install/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# install krew
brew install krew

# run krew command
kubectl krew
krew is the kubectl plugin manager.
You can invoke krew through kubectl: "kubectl krew [command]..."

Usage:
kubectl krew [command]

Available Commands:
completion generate the autocompletion script for the specified shell
help Help about any command
index Manage custom plugin indexes
info Show information about an available plugin
install Install kubectl plugins
list List installed kubectl plugins
search Discover kubectl plugins
uninstall Uninstall plugins
update Update the local copy of the plugin index
upgrade Upgrade installed plugins to newer versions
version Show krew version and diagnostics

Flags:
-h, --help help for krew
-v, --v Level number for the log level verbosity

Use "kubectl krew [command] --help" for more information about a command.

安装node-shell

https://github.com/kvaps/kubectl-node-shell

https://github.com/sunny0826/kubecm

https://github.com/sunny0826/kubectl-pod-lens

https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/kubectl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 ~  kubectl krew update
Adding "default" plugin index from https://github.com/kubernetes-sigs/krew-index.git.
Updated the local copy of plugin index.

~  kubectl krew index list
INDEX URL
default https://github.com/kubernetes-sigs/krew-index.git

kubectl krew install node-shell

WARNING: You have added a new index from "https://github.com/kvaps/krew-index"
The plugins in this index are not audited for security by the Krew maintainers.
Install them at your own risk.
WARNING: To be able to run kubectl plugins, you need to add
the following to your ~/.zshrc:

export PATH="${PATH}:${HOME}/.krew/bin"

and restart your shell.

Updated the local copy of plugin index "kvaps".
Installing plugin: node-shell
Installed plugin: node-shell
\
| Use this plugin:
| kubectl node-shell
| Documentation:
| https://github.com/kvaps/kubectl-node-shell
| Caveats:
| \
| | You need to be allowed to start privileged pods in the cluster
| /
/


修改Node root密码

https://kubernetes.io/docs/tasks/extend-kubernetes/socks5-proxy-access-api/

1
2
3
4
5
6
7
8
9
10
11
kubecm add
add proxy-url
kgno

NAME STATUS ROLES AGE VERSION
xxxxxxxxxxxx Ready <none> 20d v1.20.15-vke.7

kubectl node-shell xxx
passwd


文章目录
  1. 1. 前言
  2. 2. 更新历史
  3. 3. 安装krew
  4. 4. 安装node-shell
  5. 5. 修改Node root密码