Kubectl 命令概览

Kubernetes 提供的 kubectl 命令是与集群交互最直接的方式,掌握这些命令对于日常的集群管理和应用部署至关重要。

kubectl Cheat sheet
kubectl Cheat sheet

kubectl 命令分类

kubectl 的子命令按功能主要分为以下几个类别:

  • 基础命令(入门级):create、expose、run、set 等基本操作命令
  • 基础命令(进阶级):explain、get、edit、delete 等常用管理命令
  • 部署命令:rollout、scale、autoscale 等部署相关命令
  • 集群管理命令:certificate、cluster-info、top 等集群维护命令
  • 故障排查和调试命令:describe、logs、exec、port-forward 等诊断命令
  • 高级命令:diff、apply、patch、replace 等高级操作命令
  • 设置命令:label、annotate、completion 等配置命令
  • 其他命令:auth、config、plugin、version 等辅助命令

熟练掌握这些命令分类有助于提高 Kubernetes 集群的操作效率。

kubectl 命令行增强工具

为了提高 kubectl 命令的使用效率,推荐安装以下开源工具:

增加 kubeclt 命令的工具(图片来自网络)
增加 kubeclt 命令的工具(图片来自网络)

推荐工具清单

  • kubectx:快速切换 Kubernetes context 和 namespace
  • kube-ps1:在命令行提示符中显示当前的 Kubernetes context 和 namespace
  • k9s:功能强大的终端 UI,提供集群资源的可视化管理
  • kubens:快速切换 namespace
  • stern:多 Pod 日志聚合查看工具

kube-shell 交互式终端

kube-shell 为 kubectl 提供交互式的命令行体验:

增强的 kubectl 命令
增强的 kubectl 命令

主要特性:

  • 智能命令提示和使用说明
  • 自动补全和模糊搜索
  • 语法高亮显示
  • Tab 键列出可选对象
  • 支持 vim 编辑模式

安装方法:

# 使用 pip 安装
pip install kube-shell --user -U

# 或使用 pipx 安装(推荐)
pipx install kube-shell
kube-shell 页面
kube-shell 页面

kubectl 身份认证机制

Kubernetes 支持多种身份认证方式,kubectl 主要使用以下几种:

认证方式类型

  1. X.509 客户端证书:通过 CA 签发的客户端证书进行身份验证
  2. Bearer Token:使用 ServiceAccount 的 token 或静态 token 文件
  3. 基本认证:用户名密码方式(已废弃,不推荐使用)
  4. OpenID Connect (OIDC):集成外部身份提供商
  5. Webhook Token Authentication:通过 webhook 验证 token

kubeconfig 配置

kubectl 通过读取 kubeconfig 文件获取集群连接和认证信息:

apiVersion: v1
kind: Config
clusters:
- cluster:
    certificate-authority-data: <base64-encoded-ca-cert>
    server: https://kubernetes-api-server:6443
  name: my-cluster
contexts:
- context:
    cluster: my-cluster
    user: my-user
  name: my-context
current-context: my-context
users:
- name: my-user
  user:
    token: <bearer-token>

命令自动补全配置

Bash 环境配置

# 临时启用
source <(kubectl completion bash)

# 永久启用
echo 'source <(kubectl completion bash)' >>~/.bashrc

# 为 kubectl 设置别名并启用补全
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc

Zsh 环境配置

推荐使用 oh-my-zsh 管理 zsh 配置:

# 修改 ~/.zshrc 文件
plugins=(git kubectl)

# 添加自动补全
source <(kubectl completion zsh)

# 如果遇到权限问题,可以使用以下方式
kubectl completion zsh > ~/.oh-my-zsh/completions/_kubectl

Fish 环境配置

kubectl completion fish | source

# 永久保存
kubectl completion fish > ~/.config/fish/completions/kubectl.fish

配置完成后重启终端即可享受智能补全功能。

参考资料

文章导航

章节内容

这是章节的内容页面。

章节概览

评论区