k1s 工具使用教程

.1. k1s 是 kubectl 辅助工具

so easy, so fast.

   _   _   _
  / \ / \ / \
 ( k | 1 | s )
  \_/ \_/ \_/
        by 百里(github.com/yezihack/k1s)
    so easy, so fast.
 version: 2.0.0 

README-k1s.gif

.2. 什么是 k1s

k1s 主要是用于 kubernetes 管理的命令行工具。对 kubectl 命令实现快捷操作。

github 源码:https://github.com/yezihack/k1s 欢迎点星星。

.3. k1s 特色

  • 支持 28 种 kubernetes 资源操作。
  • 缩减命令长度。
  • 使用更人性化的组合操作。如日志,进入容器等,见下文的实例。
  • 支持部署或更新 YAML 前的差异显示与模拟。

.4. 安装

直接下载脚本,仅依赖 kubectl。

wget https://raw.githubusercontent.com/yezihack/k1s/master/k1s
chmod +x k1s
sudo mv k1s /usr/local/bin

.5. 快速上手

设置命名空间

export K1S_NS=kube-system

基本操作命令

# 查看帮助
k1s

# 查看 pods 列表
k1s po

# 查看 pods describe 
k1s po xxx desc

# 查看 pods YAML 
k1s po xxx yaml

# 查看 pods 日志(xxx 表示 pods 名称)
k1s po xxx logs

# 查看 pods 最近10条日志(xxx 表示 pods 名称)
k1s po xxx logs 10

# 进入容器内部 
k1s po xxx exec

.6. 功能

命令格式:

#  环境变量
k1s resources <param> action <extend>

.6.1. Resources 列表( kubectl 系统对应)

资源(Resources) 列表详情, 与 api-resources 显示一致,未全列出,只列出常用的资源名称.

No Name ShortName Describe
01 componentstatuses cs k8s 组件健康状态
02 configmaps cm 配置管理资源
03 endpoints ep 端点
04 events ev 事件
05 limitranges limits 为pod自定义资源管理限制
06 namespaces ns 命名空间
07 nodes node, no 节点资源
08 persistentvolumeclaims pvc 声明持久卷
09 persistentvolumes pv 持久卷
10 pods po,ps k8s 管理最小单元
11 replicationcontrollers rc 副本控制器
12 resourcequotas quota 硬性资源限额
13 secrets secret, sec 机密数据配置资源
14 services svc 服务负载资源
15 daemonsets ds 守护进程资源
16 deployments deploy,d 控制器资源
17 replicasets rs 副本集合资源
18 statefulsets sts 有状态控制器
19 horizontalpodautoscalers hpa Pod 水平自动扩缩器
20 cronjobs bj 定时任务器
21 jobs job 一次性任务器
22 ingresses ing 对外负载器
23 ingressclasses ingc Ingress 分类器
24 clusterrolebindings crb RBAC 集群角色绑定
25 serviceaccounts sa RBAC 服务帐号
26 clusterroles cr RBAC 集群角色
27 rolebindings rb RBAC 角色绑定
28 roles ro RBAC 角色

.6.2. Resources 列表(扩展功能)

No Name ShortName Describe
1 apply p 开始部署/重新部署
2 exec auto, e 进入容器
3 clean c 清理无用 Pod

.6.3. Action 列表

操作某资源时可以使用不同的动作(action)从而实现多功能操作。

No Name ShortName Describe
01 list ls 显示列表(默认显示)
02 describe desc 查看详情
03 yaml y,yml 查看 YAML
04 wide w 查看更多信息
05 exec e,auto 进入容器操作
06 delete del,rm 删除资源操作
07 logs log 查看日志操作,也兼容 tail
08 tail 查看 Pod 最近日志
09 tailf 监听日志变化
10 like 模糊查找
11 edit 编辑 YAML

.6.4. Extend 扩展功能

动态的参数,如操作 logs 日志。见下面实例。

No Extend Describe
1 container-name 选择不同容器名称
2 10 显示日志最近条数

.6.5. 环境变量

No Name Default Describe
1 K1S_NS default 命名空间名称
2 K1S_PATH ~ 构建目录,默认本用户目录下

.7. 使用说明

举例说明,只列举常用资源

.7.1. 设置环境变量

# 设置命名空间名称
export K1S_NS=default

# 设置构建路径,主要用于 apply 部署或重建时用到。
export K1S_PATH=/home/dev/

小技巧:对于常操作的命令空间,可以设置别名

vim ~/.bashrc
# 或
vim ~/.zshrc

alias k1s-sys='export K1S_NS=kube-system && export K1S_PATH=/opt/deploy/'

.7.2. 日志查看

别名:logs, log

参数:

  • pod名称:kube-cc-7789c5f6d6-szqwk
  • 容器名称:client

模式:

共四种模式操作

  • 普通模式:k1s po [pod 名称] logs
  • 最近模式:k1s po [pod 名称] logs 10 查看最近10条日志
  • 选择模式:k1s po [pod 名称] logs client 查看 client 容器名称日志
  • 选择最近模式:k1s po [pod 名称] logs client 10 查看 client 容器最近10条日志

实例操作:

# 普通模式
k1s po kube-cc-7789c5f6d6-szqwk logs
# 最近模式
k1s po kube-cc-7789c5f6d6-szqwk logs 10
# 选择模式
k1s po kube-cc-7789c5f6d6-szqwk logs client
# 选择最近模式
k1s po kube-cc-7789c5f6d6-szqwk logs client 10
  • 查看多容器 pod 的日志,有选择性查看容器日志。

.7.3. 进入容器

别名:exec, auto, e

参数:

  • pod名称:kube-cc-7789c5f6d6-szqwk
  • 容器名称:client

模式:

共四种模式操作

  • 普通模式:k1s exec [pod 名称]
  • 普通选择模式:k1s exec [pod 名称] client 进入 client 容器内
  • 便捷模式:k1s po [pod 名称] exec
  • 选择便捷模式:k1s po [pod 名称] exec client 进入 client 容器内
# 普通模式
k1s exec kube-cc-7789c5f6d6-szqwk
# 普通选择模式
k1s exec kube-cc-7789c5f6d6-szqwk client
# 便捷模式
k1s po kube-cc-7789c5f6d6-szqwk exec
# 选择便捷模式
k1s po kube-cc-7789c5f6d6-szqwk exec client

.7.4. 资源操作

只列举常用的几种资源,其它资源查找大同小异。

  • nodes
  • pods
  • deployments
  • daemonsets
  • services

支持的 action 动作:

  • list 列表,默认值
  • wide 更多显示
  • like 模糊查找
  • yaml 显示 yaml
  • desc 显示详情
  • exec 进入容器
  • delete 删除资源
  • log 日志

.7.4.1. nodes 资源

别名:nodes, node, no

参数:

  • kube node 节点的前缀名称
  • kube-10 node 节点完整名称

模式:

  • 普通模式: k1s no
  • 模糊搜索模式: k1s no [关键字] like
  • 单模式: k1s no [节点名称]
  • YAML 模式: k1s no [节点名称] yaml
  • 详情模式: k1s no [节点名称] desc
# 普通模式
k1s no
# 模糊搜索模式 ->  模糊查找含有 kube 的节点名称
k1s no kube like
# 单模式 -> 显示单个资源
k1s no kube-10
# YAML 模式  -> 查看资源的 YAML
k1s no kube-10 yaml
# 详情模式 -> 查看资源的 describe 详细
k1s no kube-10 desc

.7.4.2. pods 资源

别名:pods, po, ps

参数:

  • kube-box pod 前缀名称
  • kube-box-685fb75bb-cvmgz pod 的完整名称

模式:

  • 普通模式: k1s po
  • 模糊搜索模式: k1s po [关键字] like 模糊查找含有 kube 的节点名称
  • 单模式: k1s po [pod名称]
  • YAML 模式: k1s po [pod名称] yaml
  • 详情模式: k1s po [pod名称] desc
  • 删除模式: k1s po [pod名称] delete
# 普通模式 -> 简约列表
k1s po
# 模糊搜索模式 -> 模糊查找资源列表 
k1s po kube-box like
# 单模式 -> 显示单个资源
k1s po kube-box-685fb75bb-cvmgz
# YAML 模式 -> 查看资源的 YAML
k1s po kube-box-685fb75bb-cvmgz yaml
# 详情模式 -> 查看资源的 describe 详细
k1s po kube-box-685fb75bb-cvmgz desc
# 删除模式
k1s po kube-box-685fb75bb-cvmgz delete

.7.4.3. deployments 资源

别名:deployments, deploy, d

参数:

  • kube deploy 前缀名称
  • kube-box deploy 的完整名称

模式:

  • 普通模式: k1s d
  • 模糊搜索模式: k1s d [关键字] like 模糊查找含有 kube 的节点名称
  • 单模式: k1s d kube-box
  • YAML 模式: k1s d kube-box yaml
  • 详情模式: k1s d kube-box desc
# 普通模式 -> 简约列表
k1s d
# 模糊搜索模式 -> 模糊查找资源列表 
k1s d kube-box like
# 单模式 -> 显示单个资源
k1s d kube-box
# YAML 模式 -> 查看资源的 YAML
k1s d kube-box yaml
# 详情模式 -> 查看资源的 describe 详细
k1s d kube-box desc

.7.4.4. daemonsets 资源

别名:daemonsets, ds

参数:

  • kube daemonsets 前缀名称
  • kube-proxy daemonsets 的完整名称

模式:

  • 普通模式: k1s ds
  • 模糊搜索模式: k1s ds [关键字] like 模糊查找含有 kube 的节点名称
  • 单模式: k1s ds [daemonset 名称]
  • YAML 模式: k1s ds [daemonset 名称] yaml
  • 详情模式: k1s ds [daemonset 名称] desc
# 普通模式 -> 简约列表
k1s ds
# 模糊搜索模式 -> 模糊查找资源列表 
k1s ds kube like
# 单模式 -> 显示单个资源
k1s ds kube-proxy
# YAML 模式 -> 查看资源的 YAML
k1s ds kube-proxy yaml
# 详情模式 -> 查看资源的 describe 详细
k1s ds kube-proxy desc

.7.4.5. services 资源

别名:services, svc

参数:

  • kube daemonsets 前缀名称
  • kube-dns daemonsets 的完整名称

模式:

  • 普通模式: k1s svc
  • 模糊搜索模式: k1s svc [关键字] like 模糊查找含有 kube 的节点名称
  • 单模式: k1s svc [service名称]
  • YAML 模式: k1s svc [service名称] yaml
  • 详情模式: k1s svc [service名称] desc
# 普通模式 -> 简约列表
k1s svc
# 模糊搜索模式 -> 模糊查找资源列表 
k1s svc kube like
# 单模式 -> 显示单个资源
k1s svc kube-dns
# YAML 模式 -> 查看资源的 YAML
k1s svc kube-dns yaml
# 详情模式 -> 查看资源的 describe 详细
k1s svc kube-dns desc

.7.4.6. 清理垃圾

# 查看不同空间下统计的错误信息
k1s clean 

# 清理指定空间下的错误信息
k1s clean dev

.8. 关于作者

我的博客:https://yezihack.github.io

posted @ 2022-12-06 19:21  三百里江山  阅读(121)  评论(0编辑  收藏  举报