Kubernetes: kubectl 插件管理器 Krew 安装
写在前面
- 分享一些
kubectl
插件管理器Krew
的笔记 - 博文内容涉及
Krew
离线安装,配置为 kubectl 插件 的 Demo - 理解不足小伙伴帮忙指正
知我者,谓我心忧;不知我者,谓我何求。——《王风·黍离》
Krew
是一个由 Kubernetes SIG CLI
社区维护的 kubectl 命令行工具的插件管理器。类似 红帽的YUM
, 开发角度理解,类似 Nodejs
的 npm
。
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 versionOPTION VALUEGitTag v0.4.3GitCommit dbfefa5IndexURI https://github.com/kubernetes-sigs/krew-index.gitBasePath /root/.krewIndexPath /root/.krew/index/defaultInstallPath/root/.krew/storeBinPath /root/.krew/binDetectedPlatform 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 versionOPTION VALUEGitTag v0.4.3GitCommit dbfefa5IndexURI https://github.com/kubernetes-sigs/krew-index.gitBasePath /root/.krewIndexPath /root/.krew/index/defaultInstallPath/root/.krew/storeBinPath /root/.krew/binDetectedPlatform linux/amd64
下载插件列表,查看插件列表
┌──[[email protected]]-[~/ansible/krew]└─$kubectl krew updateUpdated the local copy of plugin index.┌──[[email protected]]-[~/ansible/krew]└─$kubectl krew infoaccepts 1 arg(s), received 0┌──[[email protected]]-[~/ansible/krew]└─$kubectl krew searchNAMEDESCRIPTION INSTALLEDaccess-matrix Show an RBAC access matrix for server resources noaccurate Manage Accurate, a multi-tenancy controller noadvise-policy Suggests PodSecurityPolicies and OPA Policies f... noadvise-psp Suggests PodSecurityPolicies for cluster. noallctx Run commands on contexts in your kubeconfig noapparmor-manager Manage AppArmor profiles for cluster. no。。。。。。。。。。。。。。。。。
关于 krew 和小伙伴分享到这里,如果没有科学上网,或者是内网环境,这其实是一个很鸡肋的工具,安装了没啥用,还不如使用什么插件直接下载二进制包,如果有科学上网,或则使用公有云,提供了相关的科学上网环境,那还是很方便的。
博文参考
https://krew.sigs.k8s.io/
https://krew.sigs.k8s.io/docs/user-guide/setup/install/