Kubernetes 常用命令
来源于:https://www.jianshu.com/p/48188b4858b0
一、查看系统资源信息
- 获取集群组件地址,展示集群信息
kubectl cluster-info
- 显示控制平面组件的健康状态
kubectl get componentstatus
- 展示支持的API resources
kubectl api-resources
- 查看支持的API versions
kubectl api-versions
二、命令优化
-
快速切换到不同的名称空间,可以设置别名如下
alias kcd='kubectl config set-context $(kubectl config current context) --namespace'
然后,可以使用
kcd some-namespace
在名称空间进行切换 -
创建别名,在
~/.bashrc
或类似的文件中添加alias k=kubectl
,就可以使用短别名了 -
kubectl配置tab补全
首先安装包bashcompletion
来启用bash中的tab命令补全apt install bashcompletion source <(kubectl completion bash)
此时,tab命令行补全只在使用完整的kubectl命令时才会有作用,要让短命令起到作用,可以进行修改
source <(kubectl completion bash | sed s/kubectl/k/g)
同时,将
source <(kubectl completion bash | sed s/kubectl/k/g)
添加到~/.bashrc
或类似的文件中
三、资源创建类
1. 首次创建
-
使用
kubectl run
快速启动Pod应用kubectl run nginx --image=nginx:latest --port=80
-
创建deploymet
kubectl create deployment nginx --image=nginx=nginx:latest
-
暴露服务
kubectl expose deployment nginx --port=80
-
使用
kubectl explain
查看API对象字段,在创建manifest时非常有用kubectl explain pod kubectl explain pod.spec
四. 运维管理
1. 升降级
-
更新image
kubectl set image deployment/nginx nginx=nginx:latest --record=true
确保在所有的升级操作时使用了
--record=true
选项,这个选项会记录历史版本号, 在之后的操作中非常有用。 -
查看部署状态
kubectl rollout status deployment nginx
-
显示deployment的滚动升级历史
kubectl rollout history deployment nginx
-
回滚上一个版本
kubectl rollout undo deployment nginx
-
回滚到指定版本
kubectl rollout undo deployment nginx --to-revision=3
2. 异常调试
-
查看pod信息,主要关注
READY
、STATUS
字段kubectl get pod
-
查看pod日志,主要检查业务输出日志
kubectl logs -f <pod_name> -c <container_name>
-
查看描述信息
kubectl describe pod <pod_name>
-
在运行的容器中执行启动一个shell
kubectl exec -it <pod_name> -c <container_name> -- sh
-
通过端口转发连接到pod,在验证业务端口是否正常工作时非常有用
kubectl port-forward <pod_name> <local_port>:<pod_port>
3. 在多集群或多命名空间下使用kubectl
-
添加或修改一个集群
kubectl config set-cluster my-other-cluster --server=https://k8s.example.com:6443 --certificate-authority=path/to/the/cafile
这会添加一个API服务器地址位于
https://k8s.example.com:6443
,名为my-other-cluster
的集群。 -
添加或修改用户凭据
kubectl config set-credentials foo --username=foo --password=pass
-
若要使用基于token的认证方式,可使用如下命令
kubectl config set-credentials foo --token=mysecrettokenXFDJIQ1234
-
将集群和用户凭据联系到一起
以下命令用于创建新的上下文,并将集群与创建的用户联系在一起kubectl config set-context some-context --cluster=my-other-cluster --user=foo --namespace=bar
-
获取当前上下文的名称
kubectl config current-context
-
修改指定上下文默认的命名空间
kubectl config set-context minikube --namespace=another-namespace
-
切换上下文到my-other-context
kubectl config use-context my-other-context
-
列出kubeconfig文件中定义的所有上下文
kubectl config get-contexts
-
列出kubeconfig文件中定义的集群
kubectl config get-clusters
-
删除kubeconfig文件中定义的上下文和集群
kubectl config delete-context my-unused-context kubectl config delete-cluster my-old-cluster
网友评论