前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s实践(十三):kubectl插件管理工具krew

k8s实践(十三):kubectl插件管理工具krew

作者头像
loong576
修改2019-12-24 16:17:28
5.1K0
修改2019-12-24 16:17:28
举报
文章被收录于专栏:运维ABC

环境说明:

主机名

操作系统版本

ip

docker version

kubelet version

配置

备注

master

Centos 7.6.1810

172.27.9.131

Docker 18.09.6

V1.14.2

2C2G

master主机

node01

Centos 7.6.1810

172.27.9.135

Docker 18.09.6

V1.14.2

2C2G

node节点

node02

Centos 7.6.1810

172.27.9.136

Docker 18.09.6

V1.14.2

2C2G

node节点

k8s集群部署详见:Centos7.6部署k8s(v1.14.2)集群

k8s学习资料详见:基本概念、kubectl命令和资料分享

一、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 <command> --help 查看子命令的帮助
  • kubectl command -o=<format> 设置输出格式(如 json、yaml、jsonpath 等)
  • kubectl explain RESOURCE 查看资源的定义
2.kubectl 插件krew

krew 是一个用来管理 kubectl 插件的工具,类似于 apt 或 yum,支持搜索、安装和管理kubectl 插件。

三、krew安装

1.git安装
代码语言:txt
复制
[root@master ~]# yum -y install git
2.安装krew
代码语言:txt
复制
  set -x; cd "$(mktemp -d)" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/download/v0.3.2/krew.{tar.gz,yaml}" &&
  tar zxvf krew.tar.gz &&
  ./krew-"$(uname | tr '[:upper:]' '[:lower:]')_amd64" install \
    --manifest=krew.yaml --archive=krew.tar.gz

可能由于网络原因介质无法下载,已上传github:https://github.com/loong576/krew-for-kubectl.git

3.加载环境变量
代码语言:txt
复制
[root@master ~]# export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

可以永久写的用户的环境变量文件,避免登出后失效。

4.安装确认
代码语言:txt
复制
[root@master ~]#  kubectl plugin list 
The following compatible plugins are available:

/root/.krew/bin/kubectl-krew

安装完成

四、krew使用

1.插件索引更新
代码语言:txt
复制
[root@master ~]# kubectl krew update
Updated the local copy of plugin index.
2.插件搜索
代码语言:txt
复制
[root@master ~]# kubectl krew search
[root@master ~]# kubectl krew search crt

搜索全部插件和模糊搜索

3.安装插件
代码语言:txt
复制
[root@master ~]# kubectl krew install get-all
[root@master ~]# kubectl krew install ns tail
4.查看已装插件
代码语言:txt
复制
[root@master ~]# kubectl krew list
PLUGIN   VERSION
get-all  v1.2.1
krew     v0.3.2
ns       v0.7.1
tail     v0.10.1
5.查看插件详情
代码语言:txt
复制
[root@master ~]# 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.插件更新
代码语言:txt
复制
[root@master ~]# 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

更新插件ns,由于是最新版所以更新失败,可通过命令'kubectl krew upgrade'更新全部插件

7.使用插件--ns
代码语言:txt
复制
[root@master ~]# kubectl
kubectl          kubectl-get_all  kubectl-krew     kubectl-ns       kubectl-tail  
[root@master ~]# kubectl ns weave
[root@master ~]# kubectl-ns default

装完插件后可通过命令kubectl <plugin-name> 或者kubectl-<plugin-name> 使用插件,比如'kubectl ns weave'和'kubectl-ns default'都可以切换默认表空间

8.使用插件--get-all
代码语言:txt
复制
[root@master ~]# kubectl-get_all

该命令类似'kubectl get all --all-namespaces',但更全。

9.使用插件--tail
代码语言:txt
复制
[root@master ~]# kubectl-tail
[root@master ~]# kubectl-tail --ns default 
[root@master ~]# kubectl-tail --rs kubeapps-8fd98f6f5
[root@master ~]# kubectl-tail --rs kubeapps/kubeapps-8fd98f6f5 

tail为输出pod日志,以上命令分别为:输出全部pod日志、输出所有命名空间default的pod日志、输出全部命名空间中所有replicaset为kubeapps-8fd98f6f5的pod日志、输出命名空间为kubeapps且replicaset为kubeapps-8fd98f6f5的pod日志。

10.卸载插件
代码语言:txt
复制
[root@master ~]# kubectl krew uninstall tail
Uninstalled plugin tail

卸载插件tail

五、krew卸载

1.查看安装目录
代码语言:txt
复制
rm -rf ~/.krew
[root@master ~]# 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.卸载
代码语言:txt
复制
[root@master ~]# rm -rf  /root/.krew 

本文所有脚本和配置文件已上传:k8s实践(十三):kubectl插件管理工具krew

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、k8s核心组件
  • 二、kubectl简介
    • 1.kubectl用法
      • 2.kubectl 插件krew
      • 三、krew安装
        • 1.git安装
          • 2.安装krew
            • 3.加载环境变量
              • 4.安装确认
              • 四、krew使用
                • 1.插件索引更新
                  • 2.插件搜索
                    • 3.安装插件
                      • 4.查看已装插件
                        • 5.查看插件详情
                          • 6.插件更新
                            • 7.使用插件--ns
                              • 8.使用插件--get-all
                                • 9.使用插件--tail
                                  • 10.卸载插件
                                  • 五、krew卸载
                                    • 1.查看安装目录
                                      • 2.卸载
                                      相关产品与服务
                                      容器服务
                                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                      领券
                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档