k8s命令-kubectl
# kubectl-command
# 通用
命令 | 说明 |
---|---|
kubectl api-resources | 查看k8s资源以及缩写 |
kubectl create cj echo-cj --image=busybox --schedule="" --dry-run=client -o yaml > filename.yaml | 生成cronjob模板yaml,要生成其他对象改掉cj即可 |
kubectl explain pod.spec.containers.env.valueFrom | 查看API对象具体细分字段的用法,比如pod这里的valueFrom |
kubectl get -o yaml po nginx-ingress-controller-rdvlf -n ingress-nginx > nginx-ingress-controller.yaml | 将现有资源反向生成yaml文件 |
kubectl get -o json po nginx-ingress-controller-rdvlf -n ingress-nginx > nginx-ingress-controller.yaml | 将现有资源反向生成json文件 |
# 创建/删除资源
命令 | 说明 |
---|---|
kubectl create -f xxx.yml | 创建资源 |
kubectl delete -f xxx.yml | 删除资源 |
kubectl apply -f xxx.yml | 部署资源 |
# node
命令 | 说明 |
---|---|
kubectl version | 查看集群版本信息 |
kubectl cluster-info | 查看集群详细信息 |
kubectl get node | 查看集群中的所有Node |
# pod
命令 | 说明 |
---|---|
kubectl get po/pods | 查看所有的pod状态 |
kubectl get pods -o wide | 查看所有的pod以及运行的节点状态 |
kubectl get pods -n kube-system | 通过namespace查询pod |
kubectl get pods -l app=kubernetes-nginx | 通过label查询pod |
kubectl get pods -l 'app in (ngx, nginx, ngx-dep)' | 查询label在范围内的pod |
kubectl describe pods | 查看pod详细信息 |
kubectl describe pods $POD_NAME | 查看具体pod的详细信息 |
kubectl describe pods | grep Image | 查看pod镜像版本号 |
export POD_NAME=kubernetes-nginx-78bcc44665-8fnnn | 将Pod的名称设置为环境变量,方便以$POD_NAME使用 |
kubectl logs $POD_NAME | 查看Pod打印的日志 |
kubectl exec $POD_NAME -- env | 使用exec和env命令查看pod容器环境变量 |
kubectl exec -ti $POD_NAME -- bash | 使用exec和env命令查看pod容器环境变量 |
kubectl label pod $POD_NAME version=v1 | 给pod添加label |
# deployment
命令 | 说明 |
---|---|
kubectl get deploy/deployment | 查看所有deployments |
kubectl describe deployment | 查看deployment详细信息 |
kubectl scale deployments/kubernetes-nginx --replicas=4 | 通过deployment对应用数量缩放到4个副本 |
kubectl set image deployments/kubernetes-nginx nginx=nginx:1.19 | 滚动更新pod镜像版本 |
kubectl rollout undo deployments/kubernetes-nginx | 回滚到原来的pod镜像版本 |
# service
命令 | 说明 |
---|---|
kubectl get services | 查看所有services |
kubectl get svc | 查看所有services |
kubectl get services -l app=kubernetes-nginx | 通过label查询service |
kubectl expose deployment/kubernetes-nginx --type="NodePort" --port 80 | 创建service来暴露deployment |
kubectl describe services/kubernetes-nginx | 查看Service的详情,NodePort查看对外的端口 |
kubectl delete service -l app=kubernetes-nginx | 通过label删除service |
# proxy
命令 | 说明 |
---|---|
kubectl proxy | 通过代理来暴露接口以供访问 |
# namespace
命令 | 说明 |
---|---|
kubectl get ns | 列出所有命名空间 |
# replication controller
命令 | 说明 |
---|---|
kubectl get |
# replica set
命令 | 说明 |
---|---|
kubectl get rs | 获取所有rs |
编辑 (opens new window)