头图

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

.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 显示一致,未全列出,只列出常用的资源名称.
NoNameShortNameDescribe
01componentstatusescsk8s 组件健康状态
02configmapscm配置管理资源
03endpointsep端点
04eventsev事件
05limitrangeslimits为pod自定义资源管理限制
06namespacesns命名空间
07nodesnode, no节点资源
08persistentvolumeclaimspvc声明持久卷
09persistentvolumespv持久卷
10podspo,psk8s 管理最小单元
11replicationcontrollersrc副本控制器
12resourcequotasquota硬性资源限额
13secretssecret, sec机密数据配置资源
14servicessvc服务负载资源
15daemonsetsds守护进程资源
16deploymentsdeploy,d控制器资源
17replicasetsrs副本集合资源
18statefulsetssts有状态控制器
19horizontalpodautoscalershpaPod 水平自动扩缩器
20cronjobsbj定时任务器
21jobsjob一次性任务器
22ingressesing对外负载器
23ingressclassesingcIngress 分类器
24clusterrolebindingscrbRBAC 集群角色绑定
25serviceaccountssaRBAC 服务帐号
26clusterrolescrRBAC 集群角色
27rolebindingsrbRBAC 角色绑定
28rolesroRBAC 角色

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

NoNameShortNameDescribe
1applyp开始部署/重新部署
2execauto, e进入容器
3cleanc清理无用 Pod

.6.3. Action 列表

操作某资源时可以使用不同的动作(action)从而实现多功能操作。
NoNameShortNameDescribe
01listls显示列表(默认显示)
02describedesc查看详情
03yamly,yml查看 YAML
04widew查看更多信息
05exece,auto进入容器操作
06deletedel,rm删除资源操作
07logslog查看日志操作,也兼容 tail
08tail 查看 Pod 最近日志
09tailf 监听日志变化
10like 模糊查找
11edit 编辑 YAML

.6.4. Extend 扩展功能

动态的参数,如操作 logs 日志。见下面实例。
NoExtendDescribe
1container-name选择不同容器名称
210显示日志最近条数

.6.5. 环境变量

NoNameDefaultDescribe
1K1S_NSdefault命名空间名称
2K1S_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


空树之空
空树之空, [链接]

github: [链接]

212 声望
2 粉丝
0 条评论
推荐阅读
张晋涛:我的 2022 总结
大家好,我是张晋涛。2022 年已经结束,我每年都会惯例的做个小回顾,今年因为阳了在恢复身体,一直拖到了今天才写。生活在 2022 年初做回顾的时候,觉得 2021 是魔幻的一年,但现在看来 2022 年其实更加魔幻。一...

张晋涛6阅读 1.1k评论 2

封面图
使用kubeasz部署高可用kubernetes集群
本实验采用kubeasz作为kubernetes环境部署工具,它是一个基于二进制方式部署和利用ansible-playbook实现自动化来快速部署高可用kubernetes集群的工具,详细介绍请查看kubeasz官方。本实验用到的所有虚拟机默认软...

李朝阳4阅读 773

openSSH升级公钥失效Permission denied (publickey)解决方案
背景centos系统升级openSSH后,服务器上无法再拉取代码,报错如下:原因服务器重新安装SSH后公钥改变,需要重新安装ssh-keygen -t rsa -C "邮箱地址"生成公钥,删除gitlab原有公钥,但是git pull依然报错如下:依...

兰俊秋雨2阅读 1.5k

Jvm调优与微服务资源分配
在没有接触微服务之前,我们的java程序一般都部署在WebLogic、Tomcat这类应用服务器上,这些应用服务器本身也是基于Jvm虚拟机的。一般我们统一对应用服务器做Jvm参数调优(分配多大内存,线程池限制等),而不用...

KerryWu阅读 5.8k

突破难关:Docker镜像和容器的区别以及构建的最佳实践
Docker 可谓是开启了容器化技术的新时代,现在无论大中小公司基本上都对容器化技术有不同程度的尝试,或是已经进行了大量容器化的改造。伴随着 Kubernetes 和 Cloud Native 等技术和理念的普及,也大大增加了业务...

张晋涛3阅读 368

封面图
不背锅运维:一文搞清楚应用发布到k8s集群的基本流程
❝关于标签的主要作用:标记、过滤、关联(主要体现在deployment、pod、service,3者标签保持一致),可设定多个标签,建议设定至少2个标签,一个为项目标签,一个为应用标签。❞

不背锅运维1阅读 745

10分钟学会使用 Loki 日志聚合系统
Loki 通过使用类似 Prometheus 的标签索引机制来存储和查询日志数据,这使得它能够快速地进行分布式查询和聚合,而不需要将所有数据都从存储中加载到内存中。Loki还使用了压缩和切割日志数据的方法来减少存储空间...

Rainbond1阅读 483

封面图

github: [链接]

212 声望
2 粉丝
宣传栏