管理类
kubectl 工具用法
kubectl 子命令 资源对象类型 资源对象名称 子命令可选参数
查看版本
kubectl version
查看集群node
kubectl get nodes
查看命名空间
kubectl get namespace
查看命名空间下的对象,不加参数--namespace 默认default
kubectl get pod
kubectl get pod --namespace kube-system
查看pod , node节点详细信息
kubectl describe node 192.168.0.133
kubectl describe pod nginx-a12s
kubectl describe pod nginx-a12s -n kube-system
kubectl get svc #(kubectl get services)
查看pod详情
kubectl describe pod podname
kubectl get pods --all-namespaces
进入pod:
kubectl exec -ti <your-pod-name> -n <your-namespace> -- /bin/sh
同时使用多个yaml文件创建
kubectl create -f a.yaml -f b.yaml -f c.yaml
创建 根据目录下所有yaml yml json文件创建
kubectl create -f 路径
删除 基于yaml
kubectl delete -f a.yaml
删除 所有包含某个label的pod和service
kubectl delete pods,services -l name=*
删除所有pod
kubectl delete pods --all
指定pod中的某个容器执行date命令
kubectl exec podename date -c ** date
通过bash获得pod中某个容器的tty,相当于登录容器
kubectl exec -ti podname -c * /bin/bash
kubectl exec -ti nginx-wbfm4 -- /bin/bash
查看容器输出到stdout的日志
kubectl logs *
跟踪查看容器的日志 相当于tail -f
kubectl logs -f podname -c *
创建或更新资源对象(不存在就创建,存在就更新)
kubectl apply -f app.yaml
pod和本地间复制文件 赋值pod的etc到本地data
kubectl cp nginx:/etc /data
下线或暂停节点
kubectl cordon node1
驱动node节点上的Pod(先设置node为cordon不可调度状态,然后驱逐Pod)
kubectl drain <node name>
维护完后需要将节点设置为可调度
kubectl uncordon <node name>
删除节点
kubectl delete node node1
pod重启-没有yaml文件重启
使用scale命令
#kubectl scale deployment {pod} --replicas=0 -n {namespace}
#kubectl scale deployment {pod} --replicas=1 -n {namespace}
直接删除重启
此方式只针对使用的deployment对象,并且重启策略为可以重启,则可以尝试删除重启
#kubectl delete replicaset {rs_name} -n {namespace}
使用 "-o yaml"参数导出Pod模板并重建模板
#kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -
查看所有节点标签
kubectl get node --show-labels=true
打标签
kubectl label nodes master-1 node=master-1
查看污点
kubectl describe nodes master-1 |grep Taints
去除节点污点
kubectl taint node master-3 node-role.kubernetes.io/master-
kubectl输出格式
json格式输出
kubectl get pod -o=json
根据自定义列输出,逗号隔离
kubectl get pod -o=custom-columns=***
从文件获取列名输出
kubectl get pod -o=custom-columns-flie=***
输出jsonpath表达上定义的字段信息
kubectl * -o=jsonpath=*
输出jsonpath表达上定义的字段信息,来源于文件
kubectl * -o=jsonpath-file=*
仅输出资源对象名称
kubectl * -o=name
输出额外信息
kubectl * -o=wide
yaml格式显示结果
kubectl * -o=yaml
kubectl get pod -o=custom-columns=NAME:metadata.name,RSRC:.metadata.resourceVersion
查看etcd是否正确启动
etcdctl cluster-health
......