官方文档

1. kubectl 命令自动补全

  1. # 在 bash 中设置当前 shell 的自动补全,要先安装 bash-completion 包。
  2. source <(kubectl completion bash)
  3. echo "source <(kubectl completion bash)" >> ~/.bashrc

还可以为 kubectl 使用一个速记别名,该别名也可以与 completion 一起使用:

  1. alias k=kubectl
  2. complete -F __start_kubectl k

Kubectl 上下文和配置

设置 kubectl 与哪个 Kubernetes 集群进行通信并修改配置信息。 查看使用 kubeconfig 跨集群授权访问 文档获取配置文件详细信息。

  1. # 显示合并的 kubeconfig 配置。
  2. kubectl config view
  3. # 同时使用多个 kubeconfig 文件并查看合并的配置
  4. KUBECONFIG=~/.kube/config:~/.kube/kubconfig2
  5. kubectl config view
  6. # 获取 e2e 用户的密码
  7. kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'
  8. kubectl config view -o jsonpath='{.users[].name}' # 显示第一个用户
  9. kubectl config view -o jsonpath='{.users[*].name}' # 获取用户列表
  10. kubectl config get-contexts # 显示上下文列表
  11. kubectl config current-context # 展示当前所处的上下文
  12. kubectl config use-context my-cluster-name # 设置默认的上下文为 my-cluster-name
  13. # 添加新的用户配置到 kubeconf 中,使用 basic auth 进行身份认证
  14. kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
  15. # 在指定上下文中持久性地保存名字空间,供所有后续 kubectl 命令使用
  16. kubectl config set-context --current --namespace=kube-system
  17. # 使用特定的用户名和名字空间设置上下文
  18. kubectl config set-context gce --user=cluster-admin --namespace=foo \
  19. && kubectl config use-context gce
  20. # 删除用户 foo
  21. kubectl config unset users.foo

常用命令

  1. 查看master组件状态:
  2. kubectl get cs
  3. 查看node状态:
  4. kubectl get node
  5. 查看Apiserver代理的URL
  6. kubectl cluster-info
  7. 查看集群详细信息:
  8. kubectl cluster-info dump
  9. 查看资源的详细:
  10. kubectl describe <资源> <名称>
  11. 查看资源信息:
  12. kubectl get <资源>
  13. # 删除资源
  14. kubectl delete <资源> <名称>
  15. # 打印 Pod 中容器的日志
  16. kubectl logs -f <pod-name>
  17. # 获取一个交互 TTY 并运行 /bin/bash
  18. kubectl exec -ti <pod-name> -- /bin/bash