kubernetes 常用命令

本贴最后更新于 1549 天前,其中的信息可能已经时移世易

配置文件路径(kubeadm)

  • 1.kubeectl 读取集群配置文件路径:~/.kube/config
  • 2.静态 pod 工作目录:/etc/kubernetes/manifests/
  • 3.kubelet 配置文件路径:/var/lib/kubelet/config.yaml
  • 4.docker 日志文件路径:/var/lib/docker/containers/<container-id>/<container-id>-json.log
  • 5.emptyDir 路径:/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~empty-dir/
  • 6.证书路径:/etc/kubernetes/pki

配置文件路径(二进制)

  • 7.证书路径:/opt/kubernetes/ssl
  • 8.token 文件路径:/opt/kubernetes/cfg/token.csv
  • 9.配置文件路径:/opt/kubernetes/cfg/kube-apiserver.conf

官方文档

集群信息

  • 1.指定配置文件查看集群(适用于用户连接集群的方式)
kubectl get pod --kubecofig=.kube/config

解析:~/.kube/config 为默认配置文件路径

  • 2.获取 k8s-dashboard 访问 token(适用于程序连接集群的方式)
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
  • 3.切换集群环境:
kubectl config use-context test

注意:master 节点复用两个角色,即做 master 也做 node,master 一般也不会跑业务

  • 4.查看集群节点:
kubectl get node
  • 5.查看 master 组件状态
kubectl get cs
  • 6.查看集群状态
kubectl cluster-info (dump)
  • 7.查看当前节点的资源信息:
    kubectl describe node <node-name>
  • 8.给节点打标签
kubectl label nodes <node-name> key=value
  • 9.查看节点所有的标签
kubectl get nodes <node-name> --show-labels
  • 10.给节点设置污点
kubectl taint node <node-name> key=value:<effect>
  • 11.去掉节点污点
kubectl taint node <node-name> key:<effect>-
  • 12.查看节点污点:
kubectl describe node <node-name> | grep Taint

资源

  • 1.查看资源信息
kubectl describe <资源类型> <资源名>

kubectl get <资源类型> -o wide
  • 2.删除资源
kubectl delete <资源类型> <资源名>
  • 3.实时查看资源动态
kubectl get <资源类型> -w

-w--watch 的缩写

  • 4.查看所有命名空间的资源
kubectl get <资源类型> -A
  • 5.查看指定命令空间下的资源
kubectl get <资源类型> -n <命名空间>
  • 6.查看副本集
kubectl get rs
  • 7.删除所有资源
kubectl delete `kubectl get <资源类型> -o name`
  • 8.查看 daemonset
kubectl get ds -n <namespace>
  • 9.查看资源所有的标签
kubectl get <资源类型> <资源名> --show-labels
  • 10.查看指定标签的资源
kubectl get <资源类型>  -l key=value
  • 11.查看 Service 关联的某些 Pod
kubectl get ep
  • 12.查看创建的 Ingress
kubectl get ing
  • 13.查看存储类
kubectl get sc
  • 14.强制删除资源
kubectl delete <资源类型> <类型名称> --grace-period=0 --force
  • 15.查看 configmap
kubectl get cm
  • 16.查看 secret
kubectl get secret
  • 17.指定 kubeconfig 配置文件
kubectl --kubeconfig=<配置文件名> get <资源类型>

应用

  • 1.快速部署一个 deployment 应用
kubectl create deployment <名称> --image=<镜像名称>
  • 2.应用发布
kubectl expose <资源类型> <名称> --port=<集群内部访问的端口号> --target-port=<镜像中服务的端口号,应用的端口号> --name=<为资源起的名称> --type=<发布类型>
  • 3.从官方文档中查看资源字段(支持 . 层级),建议用 grep 过滤
kubectl explain <资源类型>
  • 4.应用升级
kubectl set image <资源类型> <资源名称> <容器名>=<镜像名称:版本号>
  • 5.查看应用升级状态
kubectl rollout status <资源类型> <资源名称>
  • 6.查看应用副本集
kubectl get rs
  • 7.对应用进行副本集伸缩
kubectl scale deployment <资源名称> --replicas=<副本集数量>
  • 8.对副本集进行弹性伸缩
kubectl autoscale deployment <资源名称> --min=<最小副本数> --max=<最大副本数> --cpu-percent=<cpu利用率>
  • 8.回滚到上个版本
kubectl rollout undo <资源类型> <资源名称>
    1. 回滚到指定版本
kubectl rollout undo <资源类型> <资源名称> --to-reversion=<版本号>
  • 10.查看历史版本
kubectl rollout history <资源类型> <资源名称>

-11.查看网络策略

kubectl get networkpolicy

监控&日志

  • 1.根据 cpu 或者内存对资源进行排序
kubectl top <资源类型> --sory-by=<cpu/memory>
  • 2.查看 pod 日志
kubectl logs <pod名称> -n <命名空间> --tail  <显示最后的行数>
  • 3.查看一个 pod 中指定某个容器的日志
kubectl logs -f <pod名称> -c <容器名称>

网络

  • 1.查看 Service 网络规则
iptables-save | grep <svc-name>
  • 2.解析 dns 名称
nslookup <dns名称(svc名称)>
  • 3.查看本机 dns
cat /etc/resolv.conf
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    110 引用 • 54 回帖 • 3 关注
4 操作
Leif160519 在 2020-08-08 16:52:54 更新了该帖
Leif160519 在 2020-07-26 17:18:13 更新了该帖
Leif160519 在 2020-07-19 15:58:26 更新了该帖
Leif160519 在 2020-07-11 20:43:29 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...