kubernetes 常用命令

kubernetes 常用命令

配置文件路径(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 <资源类型> <资源名称>
9、回滚到指定版本
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

作者:Leif160519
链接:https://ld246.com/article/1592403904682
来源:链滴

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.fengpt.cn/archives/kubernetes常用命令