文章转载自: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

最新文章

  1. CSS3点点滴滴
  2. No Launcher activity found!
  3. android四大组件之ContentProvider(一)
  4. [转]reids客户端 redis-cli用法
  5. Zabbix简介(第一章第一节)
  6. dede 替换后台两个文件去广告
  7. Eclipse 中使用Genymotion 作为模拟器的步骤
  8. JS 之 innerHTML
  9. web自定义炫酷字体
  10. .net4.5的弱事件
  11. 转:sqlplus与shell互相传值的几种情况
  12. SpringMVC 实现文件上传与下载,并配置异常页面
  13. 并发编程(十三)—— Java 线程池 实现原理与源码深度解析 之 Executors(三)
  14. PHP7 MongDB 安装与使用
  15. 将逗号分隔的字符串转换为Python中的列表
  16. CSL 的字符串(单调栈)
  17. Android Studio中依赖第三库导致support版本冲突解决方案
  18. 微信小程序获取腾讯经纬度,得到具体地址
  19. [Web 前端] MobX
  20. e801. 创建一个JProgressBar组件

热门文章

  1. 安装rlwrap
  2. 基于Python+Sqlite3实现最简单的CRUD
  3. Hippo4J v1.3.1 发布,增加 Netty 监控上报、SpringCloud Hystrix 线程池监控等特性
  4. selenium环境配置和八大元素定位
  5. AtCoder Beginner Contest 249 E - RLE // 动态规划 + 前缀和优化
  6. CF1612D X-Magic Pair
  7. Object类中wait代餐方法和notifyAll方法和线程间通信
  8. linux nginx启用php
  9. 使用.NET简单实现一个Redis的高性能克隆版(一)
  10. 关于javascript中this