5

kubectl-krew插件离线安装方案(保你成功)

 5 months ago
source link: https://wiki.eryajf.net/pages/ca463b/#%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85%E6%8F%92%E4%BB%B6
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

kubectl-krew插件离线安装方案(保你成功)

文章发布较早,内容可能过时,阅读注意甄别。

# 简介

Krew 本身是一个 kubectl 的插件,同时也是一个 kubectl 的插件包管理器。

借助 Krew,可以轻松地使用 kubectl plugin:发现插件、安装和管理插件。使用类似 apt、dnf 或者 brew。

截至今日,社区已有 242 个插件 (opens new window),借助这些插件,能够实现很多个性的需求。

# 链接

# 离线安装 krew

krew 是个好东西,它之所以在国内不够盛行,应该与受限于网络环境导致安装比较费劲儿有很大关系。因为 krew 自身以及插件的安装都是从 github 下载资源,大多数国内的 k8s 集群可能访问 github 都是比较费劲儿的,所以本文就来介绍一下如何离线安装 krew 及其插件。

# 准备离线资源

很多文章介绍的离线资源,仍旧是通过 github 下载之后获取到,然后再传到服务器进行安装,而有一些朋友可能本地连 github 也是有一些困难的,考虑到这一层原因,我特地把当前 krew 最新版本的包封装到镜像内,便于你直接拿到。

$ docker run -itd --name krew registry.cn-hangzhou.aliyuncs.com/eryajf/pack:krew

可以看下我在包里准备的文件:

$ docker exec -it krew tree
.
├── Dockerfile
├── krew-darwin_amd64.tar.gz
├── krew-darwin_arm64.tar.gz
├── krew-linux_amd64.tar.gz
├── krew-linux_arm.tar.gz
├── krew-linux_arm64.tar.gz
├── krew.yaml
├── ns.yaml
└── v0.9.5.tar.gz
1
2
3
4
5
6
7
8
9
10
11

准备了几个常见平台的安装包,这里不多赘述,你选择符合你的平台的包即可。最后的两个文件是插件 ns 对应的配置文件及安装包。

我这里以 linux_amd64 为例,将所需资源拷贝到本地:

$ docker cp krew:/app/krew.yaml ./
$ docker cp krew:/app/krew-linux_amd64.tar.gz ./
$ tar xf krew-linux_amd64.tar.gz

# 执行安装

$ ./krew-linux_amd64 install --manifest=krew.yaml --archive=krew-linux_amd64.tar.gz
Installing plugin: krew
Installed plugin: krew
\
 | Use this plugin:
 | 	kubectl krew
 | Documentation:
 | 	https://krew.sigs.k8s.io/
 | Caveats:
 | \
 |  | krew is now installed! To start using kubectl plugins, you need to add
 |  | krew's installation directory to your PATH:
 |  |   * macOS/Linux:
 |  |     - Add the following to your ~/.bashrc or ~/.zshrc:
 |  |         export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
 |  |     - Restart your shell.
 |  |   * Windows: Add %USERPROFILE%\.krew\bin to your PATH environment variable
 |  | To list krew commands and to get help, run:
 |  |   $ kubectl krew
 |  | For a full list of available plugins, run:
 |  |   $ kubectl krew search
 |  | You can find documentation at
 |  |   https://krew.sigs.k8s.io/docs/user-guide/quickstart/.
 | /
/
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

# 添加 krew 到环境变量

将如上输出中的变量写入到环境变量中,我一般写入到 /etc/profile

$ tail -n1 /etc/profile
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

# 加载变量
$ source /etc/profile
1
2
3
4
5

# 验证是否生效

$ kubectl krew  -h
krew is the kubectl plugin manager.
You can invoke krew through kubectl: "kubectl krew [command]..."

Usage:
  kubectl krew [command]
1
2
3
4
5
6

有这个输出则说明生效了。

# 离线安装插件

先介绍一下插件安装的思路,在 plugins (opens new window) 目录下是所有插件的安装信息,拿 ns 插件举例,我们下载他的 yaml,然后可以过滤出安装包的地址:

$ cat ns.yaml | grep uri
    uri: https://github.com/ahmetb/kubectx/archive/v0.9.5.tar.gz

通过这个地址下载对应的安装包,然后执行如下命令即可离线安装该插件:

$ kubectl krew install --manifest=ns.yaml --archive=v0.9.5.tar.gz

那上边我提供的安装包里也准备了这个插件,你可以直接拷贝并安装:

$ docker cp krew:/app/ns.yaml ./
$ docker cp krew:/app/v0.9.5.tar.gz ./

# 执行安装
$ kubectl krew install --manifest=ns.yaml --archive=v0.9.5.tar.gz
1
2
3
4
5

执行安装:

$ kubectl krew install --manifest=ns.yaml --archive=v0.9.5.tar.gz
Installing plugin: ns
Installed plugin: ns
\
 | Use this plugin:
 | 	kubectl ns
 | Documentation:
 | 	https://github.com/ahmetb/kubectx
 | Caveats:
 | \
 |  | If fzf is installed on your machine, you can interactively choose
 |  | between the entries using the arrow keys, or by fuzzy searching
 |  | as you type.
 | /
/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

然后执行如下命令可以验证安装情况:

$ kubectl ns
app
cattle-system
crane-system
default
kube-node-lease
kube-public
kube-system
tcr-assistant-system
1
2
3
4
5
6
7
8
9

ns 插件就是提供列出命名空间功能的一个插件。

好啦,现在就成功安装了 krew 并演示了一个插件的安装,后续你遇到其他优秀的插件,就可以通过这个思路进行安装啦。

1712506374025.jpeg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK