kubernetes常用命令

提示:kubectl操作的是kubernetes中的资源,node、pod、deployment等都被称为资源,所以很多命令是通用的。比如,kubectl get命令:kubectl get ns、kubectl get pod、kubectl get svc。

1、查看kubernetes api文档

建立kubernetes反向代理kubectl proxy --port=8080
下载kubernetes api 文件curl -s 127.0.0.1:8080/openapi/v2 > k8s-swagger.json
docker启动kubernetes api swagger容器docker run --name swagger -itd -p 8080:8080 -e SWAGGER_JSON=/k8s-work-swagger.json -v /data/sdv1/karmada/k8s-work-swagger1.json:/k8s-work-swagger.json swaggerapi/swagger-ui

2、集群与命名空间

查看命名空间kubectl get ns
创建命名空间kubectl create namespace ${namespaceName}
查询集群状态信息kubectl cluster-info
查看集群状态kubectl get cs
定义集群kubectl config set-context ${clusterName} --server=http://192.168.1.128:8080
定义contextkubectl config set-context ${contextName} --namespace=${nameSpace} --cluster=${clusterName} --user=${userName}
查看已定义的contextkubectl config view
选中要使用的集群kubectl config use-context    ${contextName}
查询集群上下文信息kubectl config get-contexts

3、Node

查询集群所有nodekubectl top node [-o wide]
查看集群中的Nodekubectl get nodes
kubectl get nodes -n ${nameSpace}
查看某个Node的详细情况kubectl describe node ${nodeName}
给某个节点打标签kubectl label node ${nodeName} ${labelName} = ${labelValue}
删除节点标签kubectl label node ${nodeName} ${labelName}-
修改节点标签kubectl label node ${nodeName} ${labelName} = ${labelValue} --overwrite
查看节点标签kubectl get nodes --show-labels
Node隔离调度

kubectl patch node ${nodeName} -p '{"spec":{"unschedulable":true}}'

kubectl cordon ${nodeName}

Node恢复调度

kubectl patch node ${nodeName} -p '{"spec":{"unschedulable":false}}'

kubectl uncordon ${nodeName}

设置污点

kubectl taint nodes ${nodeName} key=value:NoSchedule

        NoSchedule:            不允许Pod调度到该节点

        PreferNoSchedule:    尽量不要让Pod调度到该节点

        NoExecute:            不允许Pod调度到该节点,并且且将该节点上没有容忍该污点的Pod将进行驱逐

删除该key的所有污点kubectl taint node ${nodeName} key-
删除该key的某一个污点

kubectl taint node ${nodeName} key=value:NoSchedule-

kubectl taint node ${nodeName} key:NoSchedule-

4、Deployment

查看已创建RCkubectl get rc
查看已创建deploymentkubectl get deployment
创建资源kubectl create -f xxx.yaml
修改资源kubectl replace -f xxx.yaml
镜像升级

kubectl set image deployment ${deploymentName} ${deploymentName} = ${image} 

kubectl edit deployments.apps ${deploymentName}        直接修改yaml->修改镜像

查看deployment的更新过程kubectl rollout status deployment ${deploymentName}
查看deployment的部署记录kubectl rollout history deployment ${deploymentName}
查看记录中指定版本的详细信息kubectl rollout history deployment ${deploymentName} --revision=${versionNumber}
撤销本地版本发布kubectl rollout undo deployment ${deploymentName}
回滚版本到指定版本kubectl rollout undo deployment ${deploymentName} --to-revision=${versionNumber}
暂停deployment的更新操作kubectl rollout pause deployment ${deploymentName}
恢复deployment的更新操作kubectl rollout resume deployment ${deploymentName}
deployment扩容/缩容

kubectl scale deployment ${deploymentName} --replicas=${number}

kubectl edit deployments.apps ${deploymentName}        直接修改yaml->扩容

容忍配置tolerations: # 数组类型,可以设置多个容忍
        - key: # 污点key
          operator: # 操作符,有两个选项 Exists and Equal 默认是Equal
          value: # 污点value,如果使用Equal需要设置,如果是Exists就不需要设置
          effect: # 可以设置为NoSchedule、PreferNoSchedule、NoExecute,如果为空表示匹配该key下所有污点,
          tolerationSeconds: # 如果污点类型为NoExecute,还可以设置一个时间,表示这一个时间段内Pod不会被驱逐,过了这个时间段会立刻驱逐,0或者负数会被立刻驱逐

5、Pod

查看已创建pod

kubectl get pods

kubectl get pods -n ${namespace}

查看某个pod的详细情况kubectl describe pod ${podName} -n ${namespace}
查看某个pod的最近一小时的日志kubectl logs --since=1h ${podName} -n ${namespace}
查看某个pod的持续日志kubectl logs -f ${podName} -n ${namespace}
pod删除kubectl delete pod ${podName} -n ${namespace} [--force]
进入某个容器

kubectl exec -it -n ${namespace} ${podName} sh

kubectl exec -it -n ${namespace} ${podName} --/bin/bash

6、Service

查看已创建Servicekubectl get svc
将资源暴露为新的Servicekubectl expose deployment ${deploymentName} --name=${serviceName} --port=8888 --target-port=8080 --protocol=TCP --type=NodePort

7、ConfigMaps

从文件中创建configmap

kubectl create configmap ${configmapName} --from-file=[key=]${fileName} --from-file=[key=]${fileName}

从目录中创建configmapkubectl create configmap ${configmapName} --from-file=${dirPath}
从文本中创建configmapkubectl create configmap ${configmapName} --from-literal=${key1}=${value1} --from-literal=${key2}=${value2}
查看ConfigMap列表kubectl get configmaps
查看指定ConfigMap

kubectl get configmap ${configMapName} -o go-template='{{.data}}'

kubectl describe configmaps ${configMapName}

以上内容为个人学习理解,如有问题,欢迎在评论区指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值