语法格式
kubectl [command] [type] [name] [flags]
kubectl create/apply/delete/ -f yaml文件
查看集群工作是否正常
kubectl cluster-info
查看此状态pod详细情况
kubectl describe pod bk-cmdb-hostserver-58c7675654-zfffp
强制删除
kubectl get pods -n kube-system | grep ContainerCreating | awk '{print $1}' | xargs kubectl delete pod -n kube-system--force --grace-period=0
检查kubectl命名空间
kubectl get pods -n kube-system -o wide
查看集群中的所有的节点
kubectl get nodes
检查k8s集群 pod状态信息
kubectl describe pod(NAME)-n kube-system
重新部署k8s集群 yaml
kubectl apply -f myapp-deploy.yaml
k8s集群 logs查看日志
kubectl logs pod名 -n 命令空间
k8s删除命名空间
kubectl delete namespaces <insert-some-namespace-name>(命名名称)
切换当前context的namespace到 blueking。切换后,后面排查需要指定 -n XXX 的命令就可以省略了
kubectl config set-context --current --namespace=XXX
kubectl config view
定义Context(运行环境)
kubectl config set-cluster kubernetes-cluster --server=https://10.0.5.28:6443
kubectl config set-context ctx-dev --namespace=dev01 --cluster=kubernetes-cluster --user=user01
kubectl config set-context ctx-prod --namespace=dev02 --cluster=kubernetes-cluster --user=user02
Node的隔离与恢复
kubectl cordon <node_name> # 某个Node进行隔离调度
kubectl uncordon <node_name> # 对某个Node进行恢复调度
查看创建的状况
kubectl get pod --watch
查看所有名称空间
kubectl get namespaces # 简化可以写:ns
查看所有集群资源的信息
kubectl get all -n default
创建namespaces命名空间的信息
kubectl create ns Name名称
创建镜像的deployment
kubectl create deployment nginx-dp --image=harbor域名地址 -n 命令空间
更新deployment
kubectl apply -f nginx-deployment.yaml
增加节点标签 备注 =:代表增加标签
kubectl label nodes NAME node-role.kubernetes.io/(master、nodeX)=
减少节点标签 备注 -:代表减少标签
kubectl label nodes NAME node-role.kubernetes.io/NAME-
打污点
kubectl taint nodes node集群机器名 污点名=XXXX:NoSchedule
去除污点
kubectl taint nodes node集群机器名 污点名:effect-
去除所有污点
kubectl taint nodes node集群机器名 污点名-
使用jq解析 检查所有node节点的污点
kubectl get nodes -o json | jq '.items[].spec'
自定义添加一个标签
kubectl label nodes k8s-master01 nodeenv=k8s-master
kubectl describe nodes k8s-master01 | grep nodeenv
nodeenv=k8s-master
进入pod资源
kubectl exec -ti NAME -n 命令空间 /bin/bash
使用watch命令,是观察pod重建状态变化
watch -n 1 'kubectl describe deployament NAEM -n 命令空间 |grep -C 5 Event'
输出额外信息。对于Pod,将输出Pod所在的Node名
kubectl get pods -o wide
获取所有namespace下的pod
kubectl get pods -o wide -A
删除pod信息 可以通过 --force --grace-period=0来强制删除资源
kubectl delete pod NAME -n 命名空间 --force --grace-period=0
批量删除pod 或 pvc
kubectl get pod|grep 关键字|awk '{print $1}'|xargs kubectl delete pod
kubectl get pvc|grep 关键字|awk '{print $1}'|xargs kubectl delete pvc
删除namespace信息 可以通过 --force --grace-period=0来强制删除资源
kubectl delete namespace NAME --force --grace-period=0
检查K8S集群CPU状态
kubectl describe nodes | grep -EA2 '^Addresses|cpu | memory '
描述 pod 部署信息
kubectl describe deployment NAME -n XXX |grep -C 5 Event
查看service
kubectl describe svc NAME -n 命令空间
获取资源yaml配置清单 pod信息
kubectl get pod NAME -o yaml -n 命令空间
查看资源配置清单 svc信息
kubectl get svc NAME -o yaml -n 命令空间
解释资源配置清单
kubectl explain service
创建资源配置清单
vim ~/root/nginx-dns-svc.yaml
应用资源配置清单
kubectl apply -f nginx-dns-svc.yaml
安装kubelet kubeadm kubectl 指定版本
yum list kubelet kubeadm kubectl --showduplicates|sort -r
网友评论