kubectl插件管理工具krew
文章转载自:https://blog.51cto.com/loong576/2452592
一、k8s核心组件

Kubernetes 主要由以下几个核心组件组成:
- etcd 保存了整个集群的状态;
- apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
- controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
- scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
- kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;
- Container runtime 负责镜像管理以及Pod和容器的真正运行(CRI);
- kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡
二、kubectl简介
kubectl 是 Kubernetes 的命令行工具(CLI),是 Kubernetes 用户和管理员必备的管理工具。该kubectl工具控制Kubernetes集群管理器。它可以让您检查集群资源,创建、删除和更新组件以及更多功能。kubectl 提供了大量的子命令,方便管理 Kubernetes 集群中的各种功能。
1.kubectl用法
- kubectl -h 查看子命令列表
- kubectl options 查看全局选项
- kubectl --help 查看子命令的帮助
- kubectl [command] [PARAMS] -o= 设置输出格式(如 json、yaml、jsonpath 等)
- kubectl explain [RESOURCE] 查看资源的定义
2.kubectl 插件krew
krew 是一个用来管理 kubectl 插件的工具,类似于 apt 或 yum,支持搜索、安装和管理kubectl 插件。
1.git安装
# yum -y install git
2.安装krew
官方地址:https://krew.sigs.k8s.io/docs/user-guide/setup/install/
(
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
)
3.加载环境变量
# export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
# 可以永久写的用户的环境变量文件,避免登出后失效。
# cat ~/.bashrc
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
4.安装确认
# kubectl plugin list
The following compatible plugins are available:
/root/.krew/bin/kubectl-krew
四、krew使用
1.插件索引更新
# kubectl krew update
Updated the local copy of plugin index.
2.插件搜索
# kubectl krew search
# kubectl krew search crt
搜索全部插件和模糊搜索

3.安装插件
# kubectl krew install get-all
# kubectl krew install ns tail

4.查看已装插件
# kubectl krew list
PLUGIN VERSION
get-all v1.2.1
krew v0.3.2
ns v0.7.1
tail v0.10.1
5.查看插件详情
# kubectl krew info ns
NAME: ns
URI: https://github.com/ahmetb/kubectx/archive/v0.7.1.tar.gz
SHA256: 6df4def2caf5a9c291310124098ad6c4c3123936ddd4080b382b9f7930a233ec
VERSION: v0.7.1
HOMEPAGE: https://github.com/ahmetb/kubectx
DESCRIPTION:
Also known as "kubens", a utility to set your current namespace and switch
between them.
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.
|
| See https://github.com/ahmetb/kubectx for customization and details.
/
6.插件更新
更新插件ns,由于是最新版所以更新失败,可通过命令’kubectl krew upgrade’更新全部插件
# kubectl krew upgrade ns
Updated the local copy of plugin index.
F1118 17:21:47.271927 81116 root.go:58] failed to upgrade plugin "ns": can't upgrade, the newest version is already installed
7.使用插件–ns
# kubectl
kubectl kubectl-get_all kubectl-krew kubectl-ns kubectl-tail
# kubectl ns weave
# kubectl-ns default

装完插件后可通过命令kubectl <plugin-name> 或者kubectl-<plugin-name> 使用插件,比如’kubectl ns weave’和’kubectl-ns default’都可以切换默认表空间
8.使用插件–get-all
该命令类似’kubectl get all --all-namespaces’,但更全。
# kubectl-get_all

9.使用插件–tail
tail为输出pod日志,以上命令分别为:输出全部pod日志、输出所有命名空间default的pod日志、输出全部命名空间中所有replicaset为kubeapps-8fd98f6f5的pod日志、输出命名空间为kubeapps且replicaset为kubeapps-8fd98f6f5的pod日志。
# kubectl-tail
# kubectl-tail --ns default
# kubectl-tail --rs kubeapps-8fd98f6f5
# kubectl-tail --rs kubeapps/kubeapps-8fd98f6f5

10.卸载插件
卸载插件tail
# kubectl krew uninstall tail
Uninstalled plugin tail
五、krew卸载
主要是删除用户目录下的.krew隐藏文件夹:rm -rf ~/.krew
1.查看安装目录
# kubectl krew version
OPTION VALUE
GitTag v0.3.2
GitCommit bd754e1
IndexURI https://github.com/kubernetes-sigs/krew-index.git
BasePath /root/.krew
IndexPath /root/.krew/index
InstallPath /root/.krew/store
DownloadPath /tmp/krew-downloads
BinPath /root/.krew/bin
2.卸载
# rm -rf /root/.krew
kubectl插件管理工具krew的更多相关文章
- kubectl 的插件管理工具krew
k8s的命令行工具kubectl 对于玩k8s 的人来说是必备工具.kubectl插件机制在Kubernetes 1.14宣布稳定,进入GA状态.kubectl的插件机制就是希望允许开发者以独立的二进 ...
- xcode 插件管理工具
每次xcode 更新后之前安装的插件 都失效了!解决办法: 一.可以通过在原插件项目infoplist新增 新xcode的 DVTPlugInCompatibilityUUID 来使之支持新版xcod ...
- vim利用插件管理工具-管理配置文件
目前被广泛应用的2各插件管理工具Pathogen和Vunble,我先说Pathogen Pathogen Pathogen完全用vim脚本编写,不用其他的代码(Vunble就用了python),所以安 ...
- IOS-Alcatraz(插件管理工具)
一.简单说明 Alcatraz 是一款 Xcode的插件管理工具,可以用来管理XCode的 插件.模版以及颜色配置的工具. 二.如何安装 1.github地址:https://github.com/a ...
- [转]Vim插件管理工具Vundle
原文:http://www.linuxzen.com/vimpei-zhi-xi-lie-cha-jian-guan-li.html 当转载成为一种习惯.. 最近对Vim进行了一番较大的配置变动,所以 ...
- k8s krew 插件管理工具
参考:https://github.com/kubernetes-sigs/krew https://int32bit.me/2019/12/05/%E5%88%86%E4%BA%AB%E5%87%A ...
- Xcode插件管理工具Alcatraz
1.简介 Alcatraz是一个能帮你管理Xcode插件丶模版及颜色配置的工具.它可以直接集成在Xcode的图形界面中,让你感觉就像在使用Xcode自带的功能一样. 2.安装和删除 使用如下的终端来安 ...
- Xcode - 插件管理工具Alcatraz
Alcatraz 1.简介 Alcatraz是一个能帮你管理Xcode插件丶模版及颜色配置的工具.它可以直接集成在Xcode的图形界面中,让你感觉就像在使用Xcode自带的功能一样. 2.安装和删除 ...
- 插件管理工具 Alcatraz
Alcatraz 安装: https://github.com/alcatraz/Alcatraz Github官网链接 终端安装方法 mkdir -p ~/Library/Application\ ...
随机推荐
- (一)java基础篇-----认识java
1.简单介绍java起源: 1995年,詹姆斯-高斯林在sun公司开发出java编程语言.到2010年,sun公司被Oracle公司收购,而詹姆斯-高斯林也离开了Oracle公司.所以,如今想要安转j ...
- Note -「0/1 Fractional Programming」
What is that? Let us pay attention to a common problem that we often meet in daily life: There are \ ...
- # 8 快速入门 dubbo
8 快速入门 dubbo 所需资料 注册中心 Zookeeper 安装 zookeeper 官方推荐使用 zookeeper 注册中心: 注册中心负责服务地址的注册与查找,相当于目录服务: 服务提供者 ...
- 【破解】设置 Codesys for Raspberry 每118分钟自动重启Runtime
Codesys for Raspberry 无授权时,试用2小时后会自动退出,重启Runtime后就又恢复2小时试用时长. 官网授权购买地址: [单核] https://store.codesys.c ...
- Netty源码解读(二)-服务端源码讲解
简单Echo案例 注释版代码地址:netty 代码是netty的源码,我添加了自己理解的中文注释. 了解了Netty的线程模型和组件之后,我们先看看如何写一个简单的Echo案例,后续的源码讲解都基于此 ...
- 非root用户linux下安装FFTW
一.环境准备 确保g++可用本次编译是基于 GNU C++ 环境的,因此务必确定g++编译器可用,使用如下命令验证:命令:g++ --version出现类似如下输出则表明编译器可用: 二.下载FFTW ...
- nginx的高级用法
一.根据url中的参数来确定缓存的key set_by_lua_block $dataArg { local enc = ngx.req.get_uri_args()["enc"] ...
- python将命令输出写入文件或临时缓存
python将命令输出写入文件 将文件写入到对应文件,方便后期处理或保存 def write_file(file_path): with open(file=file_path, mode=" ...
- Mybatis的使用(2)
1 :模糊查询 #{}占位符和¥{}的区别 #{}占位符:传参大部分用#{}传参,它的底层是PreparedStatement对象,是安全的数据库访问,它能够防止sql注入 1.1:如果parmete ...
- Java8新特性: lambda 表达式介绍
一.lambda 表达式介绍 lambda 表达式是 Java 8 的一个新特性,可以取代大部分的匿名内部类,简化了匿名委托的使用,让你让代码更加简洁,优雅. 比较官方的定义是这样的: lambda ...