5

K8s:kubectl 插件管理器 Krew 离线安装

 1 year ago
source link: https://liruilongs.github.io/2023/01/08/%E5%BE%85%E5%8F%91%E5%B8%83/%E5%85%B3%E4%BA%8EKubernetes-%E4%B8%AD-kubectl-%E6%8F%92%E4%BB%B6%E7%AE%A1%E7%90%86%E5%99%A8-Krew-%E7%9A%84%E4%B8%80%E4%BA%9B%E7%AC%94%E8%AE%B0/
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

K8s:kubectl 插件管理器 Krew 离线安装

我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ——赫尔曼·黑塞《德米安》


  • 分享一些 kubectl 插件管理器 Krew 的笔记
  • 博文内容涉及 Krew 离线安装,配置为 kubectl 插件 的 Demo
  • 理解不足小伙伴帮忙指正

我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ——赫尔曼·黑塞《德米安》


Krew 是一个由 Kubernetes SIG CLI 社区维护的 kubectl 命令行工具的插件管理器。类似 红帽的YUM, 开发角度理解,类似 Nodejsnpm

Krew 可以用于管理 kubelet 插件,发现 kubectl 插件,并在机器上安装它们。保持安装的插件是最新的。

Krew 适用于所有主要平台,例如 macOS、Linux 和 Windows。

需要说明的是,Krew 插件索引 所维护的 kubectl 插件并未经过安全性审查。 你要了解安装和运行第三方插件的安全风险,因为它们本质上时是一些在你的机器上 运行的程序。

国内因为墙的问题,无法正常使用,所以需要科学上网。

如果机器可以科学上网,可以直接运行下面的脚本。

┌──[[email protected]]-[~/ansible/krew]
└─$cat install-krew.sh
#!/bin/bash

(
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
)

然后添加环境变量

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

如果没有科学上网,可以尝试浏览器直接下载。前提是你需要知道你要安装的版本。

┌──[[email protected]]-[~/ansible/krew]
└─$wget https://github.com/kubernetes-sigs/krew/releases/latest/download/krew-linux_amd64.tar.gz

解压后运行下面的命令安装

┌──[[email protected]]-[~/ansible/krew]
└─$tar -zxvf krew-linux_amd64.tar.gz
./LICENSE
./krew-linux_amd64

添加下面的环境变量

┌──[[email protected]]-[~/ansible/krew]
└─$vim ~/.bashrc
....
export PATH="${PATH}:${HOME}/.krew/bin"
.....

查看版本测试

┌──[[email protected]]-[~/ansible/krew]
└─$./krew-linux_amd64 version
OPTION VALUE
GitTag v0.4.3
GitCommit dbfefa5
IndexURI https://github.com/kubernetes-sigs/krew-index.git
BasePath /root/.krew
IndexPath /root/.krew/index/default
InstallPath /root/.krew/store
BinPath /root/.krew/bin
DetectedPlatform linux/amd64

配置为 kubectl 插件

配置为 kubectl 插件,测试

┌──[[email protected]]-[~/ansible/krew]
└─$mv ./krew-linux_amd64 ./kubectl-krew
┌──[[email protected]]-[~/ansible/krew]
└─$mv ./kubectl-krew /usr/local/bin/
┌──[[email protected]]-[~/ansible/krew]
└─$kubectl krew version
OPTION VALUE
GitTag v0.4.3
GitCommit dbfefa5
IndexURI https://github.com/kubernetes-sigs/krew-index.git
BasePath /root/.krew
IndexPath /root/.krew/index/default
InstallPath /root/.krew/store
BinPath /root/.krew/bin
DetectedPlatform linux/amd64

下载插件列表,查看插件列表

┌──[[email protected]]-[~/ansible/krew]
└─$kubectl krew update
Updated the local copy of plugin index.
┌──[[email protected]]-[~/ansible/krew]
└─$kubectl krew info
accepts 1 arg(s), received 0
┌──[[email protected]]-[~/ansible/krew]
└─$kubectl krew search
NAME DESCRIPTION INSTALLED
access-matrix Show an RBAC access matrix for server resources no
accurate Manage Accurate, a multi-tenancy controller no
advise-policy Suggests PodSecurityPolicies and OPA Policies f... no
advise-psp Suggests PodSecurityPolicies for cluster. no
allctx Run commands on contexts in your kubeconfig no
apparmor-manager Manage AppArmor profiles for cluster. no
。。。。。。。。。。。。。。。。。

关于 krew 和小伙伴分享到这里,如果没有科学上网,或者是内网环境,这其实是一个很鸡肋的工具,安装了没啥用,还不如使用什么插件直接下载二进制包,如果有科学上网,或则使用公有云,提供了相关的科学上网环境,那还是很方便的。


https://krew.sigs.k8s.io/

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK