内容简介:Kubernetes 作为云原生时代的操作系统,熟悉和使用它是每名用户的必备技能。本文将介绍一些提高操作 Kubernetes 效率的技巧以及如何打造一个高效的 Kubernetes 命令行终端的方法。Kubectl 这个命令行工具非常重要,与之相关的命令也很多。我们也记不住那么多的命令,而且也会经常写错,所以命令行自动补全是很有必要的。Kubectl 工具本身就支持自动补全,只需简单设置一下即可。大多数用户的 Shell 使用的是 Bash,Linux 系统可以通过下面的命令来设置:
Kubernetes 作为云原生时代的操作系统,熟悉和使用它是每名用户的必备技能。本文将介绍一些提高操作 Kubernetes 效率的技巧以及如何打造一个高效的 Kubernetes 命令行终端的方法。
Kubectl 自动补全
Kubectl 这个命令行 工具 非常重要,与之相关的命令也很多。我们也记不住那么多的命令,而且也会经常写错,所以命令行自动补全是很有必要的。Kubectl 工具本身就支持自动补全,只需简单设置一下即可。
- Bash 用户
大多数用户的 Shell 使用的是 Bash,Linux 系统可以通过下面的命令来设置:
$ echo "source <(kubectl completion bash)" >> ~/.bashrc $ source ~/.bashrc
如果发现不能自动补全,可以尝试安装 bash-completion 然后刷新即可!
- ZSH 用户
如果你使用的 Shell 是 ZSH,可以通过下面的命令来设置:
$ echo "source <(kubectl completion zsh)" >> ~/.zshrc $ source ~/.zshrc
交互式 Kubernetes 客户端
Kube-prompt
Kube-prompt 可以让你在命令行下接受与 Kubectl 相同的命令,并且不需要提供 Kubectl前缀。Kube-prompt 还提了交互式会话下的命令提示、自动补全等功能。
项目地址: https://github.com/c-bata/kube-prompt
安装 Kube-prompt
Kube-prompt 使用 Go 语言开发,天生良好的跨平台性。安装起来非常简单,只需下载各平台对应的二进制版本就可以开箱即用。
# Linux $ wget https://github.com/c-bata/kube-prompt/releases/download/v1.0.3/kube-prompt_v1.0.3_linux_amd64.zip $ unzip kube-prompt_v1.0.3_linux_amd64.zip # macOS (darwin) $ wget https://github.com/c-bata/kube-prompt/releases/download/v1.0.3/kube-prompt_v1.0.3_darwin_amd64.zip $ unzip kube-prompt_v1.0.3_darwin_amd64.zip # 给 kube-prompt 加上执行权限并移动常用的可搜索路径。 $ chmod +x kube-prompt $ sudo mv ./kube-prompt /usr/local/bin/kube-prompt
Kube-prompt 使用效果图
Kube-shell
Kube-shell 可以为 Kubectl 提供自动的命令提示和补全,Kube-shell 与 Kube-prompt 的使用方法类似。
项目地址: https://github.com/cloudnativelabs/kube-shell
Kube-shell 特性
- 命令提示,给出命令的使用说明。
- 自动补全,列出可选命令并可以通过 TAB 键自动补全,支持模糊搜索。
- 支持语法高亮。
- 使用 TAB 键可以列出可选的对象。
- 支持 VIM 模式。
安装 Kube-shell
Kube-shell 安装非常的简单,使用 PIP 就可以一键安装了。
$ pip install kube-shell
注:kube-shell 必须用 root 用户运行。如果是普通用户运行会报 /bin/sh: 1: kubectl: not found 错误。即使使用了 sudo kube-shell 同样也是不行的。
Kube-shell 使用效果图
注:Kube-prompt 和 Kube-shell 我都使用过,更推荐 Kube-prompt。Go 的原生性更好一些,并且 Kube-prompt 也不需要 root 权限。
Kubectl Aliases
Kubectl Aliases 是一个通过编程方式生成的 Kubectl 别名脚本。如果你需要频繁地使用 Kubectl 和 Kubernetes API 进行交互,使用别名将会为你节省大量的时间。
项目地址: https://github.com/ahmetb/kubectl-aliases
安装 Kubectl Aliases
Kubectl Aliases 就只是一个 SHELL 脚本,你只需直接下载 .kubectl_aliases 文件并将其保存在 $HOME 目录中,然后在 SHELL 配置文件中调用即可。
- 下载脚本
$ cd $HOME $ wget https://raw.githubusercontent.com/ahmetb/kubectl-alias/master/.kubectl_aliases
- 配置 SHELL
Bash 用户
$ vim ~/.bashrc [ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases
ZSH 用户
$ vim ~/.zshrc [ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases
如果你想在运行之前打印完整的 Kubectl 命令,可以加上以下行。
function kubectl() { echo "+ kubectl $@"; command kubectl $@; }
Kubectl 别名生成规则
Kubectl 别名使用示例
- 简单别名示例
$ kd → kubectl describe
- 高级别名示例
$ kgdepallw → kubectl get deployment –all-namespaces –watch
Kubeval
如果你手动写 Kubernetes manifest 文件,检查 manifest 文件的语法是否有误是很困难的,特别是当你有多个不同版本的 Kubernetes 集群时,确认配置文件语法是否正确更是难上加难。
Kubeval 是一个用于校验 Kubernetes YAML 或 JSON 配置文件的工具,支持多个 Kubernetes 版本,可以帮助我们解决不少的麻烦。
项目地址: https://github.com/garethr/kubeval
Kubeval 安装
Kubeval 同样是一款使用 Go 语言开发,天生良好的跨平台性。安装起来非常简单,只需下载各平台对应的二进制版本就可以开箱即用。
# Linux $ wget https://github.com/garethr/kubeval/releases/download/0.7.1/kubeval-linux-amd64.tar.gz $ tar xf kubeval-linux-amd64.tar.gz # macOS (darwin) $ wget https://github.com/garethr/kubeval/releases/download/0.7.1/kubeval-darwin-amd64.tar.gz $ tar xf kubeval-darwin-amd64.tar.gz # 给 kubeval 加上执行权限并移动常用的可搜索路径。 $ chmod +x kubeval $ sudo mv kubeval /usr/local/bin
Kubeval 使用示例
- Kubernetes manifest 文件正常的情况
$ kubeval nginx-deployment.yaml The document nginx-deployment.yaml contains a valid Deployment
- Kubernetes manifest 文件不正常的情况
$ kubeval nginx.yaml The document nginx.yaml contains an invalid Deployment ---> spec.replicas: Invalid type. Expected: integer, given: string
其它一些实用工具
下面这几个工具也挺不错的,使用起来都很简单。就不展开讲了,如果有兴趣可以去看下官方文档具体的使用方法。
- Kube-ps1
该工具主要作用为命令行终端增加一个提示符。
项目地址: https://github.com/jonmosco/kube-ps1
Kube-ps1 使用效果图
- Kubectx
该工具主要作用是快速在多个 Kubernetes 集群中切换。
项目地址: https://github.com/ahmetb/kubectx
Kubectx 使用效果图
- Kubens
该工具可以帮助您快速的在 Kubernetes 的多个命名空间之间切换。
项目地址: https://github.com/ahmetb/kubectx
Kubens 使用效果图
参考文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Four
Scott Galloway / Portfolio / 2017-10-3 / USD 28.00
NEW YORK TIMES BESTSELLER USA TODAY BESTSELLER Amazon, Apple, Facebook, and Google are the four most influential companies on the planet. Just about everyone thinks they know how they got there.......一起来看看 《The Four》 这本书的介绍吧!