1. kubectl 命令自动补全
# 在 bash 中设置当前 shell 的自动补全,要先安装 bash-completion 包。source <(kubectl completion bash)echo "source <(kubectl completion bash)" >> ~/.bashrc
还可以为 kubectl 使用一个速记别名,该别名也可以与 completion 一起使用:
alias k=kubectlcomplete -F __start_kubectl k
Kubectl 上下文和配置
设置 kubectl 与哪个 Kubernetes 集群进行通信并修改配置信息。 查看使用 kubeconfig 跨集群授权访问 文档获取配置文件详细信息。
# 显示合并的 kubeconfig 配置。kubectl config view# 同时使用多个 kubeconfig 文件并查看合并的配置KUBECONFIG=~/.kube/config:~/.kube/kubconfig2kubectl config view# 获取 e2e 用户的密码kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'kubectl config view -o jsonpath='{.users[].name}' # 显示第一个用户kubectl config view -o jsonpath='{.users[*].name}' # 获取用户列表kubectl config get-contexts # 显示上下文列表kubectl config current-context # 展示当前所处的上下文kubectl config use-context my-cluster-name # 设置默认的上下文为 my-cluster-name# 添加新的用户配置到 kubeconf 中,使用 basic auth 进行身份认证kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword# 在指定上下文中持久性地保存名字空间,供所有后续 kubectl 命令使用kubectl config set-context --current --namespace=kube-system# 使用特定的用户名和名字空间设置上下文kubectl config set-context gce --user=cluster-admin --namespace=foo \&& kubectl config use-context gce# 删除用户 fookubectl config unset users.foo
常用命令
查看master组件状态:kubectl get cs查看node状态:kubectl get node查看Apiserver代理的URL:kubectl cluster-info查看集群详细信息:kubectl cluster-info dump查看资源的详细:kubectl describe <资源> <名称>查看资源信息:kubectl get <资源># 删除资源kubectl delete <资源> <名称># 打印 Pod 中容器的日志kubectl logs -f <pod-name># 获取一个交互 TTY 并运行 /bin/bashkubectl exec -ti <pod-name> -- /bin/bash
