K8s常用命令
一、精简K8s常用命令
- 查看版本:kubectl version
- 显示集群信息 kubectl cluster-info
- 查看集群中有几个Node kubectl get nodes
- 查看pod kubectl get pods
- 查看pod详细信息 添加 -o wide 参数,可以看到pod在node上运行
kubectl get –o wide pods
- 运行一个镜像 kubectl run my-nginx --image=nginx --replicas=2 --port=80
- 查看服务详情信息 kubectl describe pod my-nginx-379829228-cwlbb
- 查看已部署 kubectl get deployments
- 删除pod kubectl delete pod my-nginx-379829228-cwlbb
- 再次查看pod,发现由于replicas机制,pod又生成一个新的
kubectl get pods
- 删除部署的my-nginx服务。彻底删除pod kubectl delete deployment my-nginx
二、K8S之创建、查询、删除pod
在K8s上创建一个pod Container容器有两种方式:run和create
Run方式创建
Kubectl run Container名称 --image=镜像IP地址/端口号/镜像名称 --replicas=1 --port=8000
Create方式创建
使用kubectl run 方式 在设定很复杂的时候需要非常长的一条语句,容易出错。所以更多场景下使用yaml文件方式创建服务。
- 创建mysql Container pod
Kubectl create -f yaml文件路径/
- 查看rc (Replication Contrller)
Kubectl get rc
- 查看pod
Kubectl get pod
- 删除mysql Container pod
Kubectl delect -f yaml文件路径/
- 确认pod是否删除
Kubectl get pods
Kubectl get rc
K8s在1.4以后使用Deployment替换Replication Controller
1.3版本 kind类型是Replication Controller
1.4版本kind类型改为 Deployment
- 批量yaml文件创建pod
如果有多个yaml文件的时候需要批量创建,那么可以在创建的时候指向yaml文件存在的目录即可,该目录下的所有yaml文件会同时被执行。
Kubectl create -f yaml文件夹
- 确认是否创建成功
Kubectl get pods
Kubectl get deployments
- 删除多个yaml文件创建的pod
Kubectl delete -f yaml文件夹
三、K8S故障排查
- 先确认客户端和服务端版本信息
Kubectl version
- 获取k8s集群信息
Kubectl get nodes
- 查询k8s当前本版支持的api-service版本信息
Kubectl api-versions
- 查看namespace 信息
Kubectl get namespaces
- 查看node详细信息
- 使用get 获取到node的名称和IP地址
- Kubectl describe node node的IP地址
- 查看pod详细信息
- 使用get 获取到pod的名称
- Kubectl describe pod pod的名称
- 查看deployment详细信息
- 使用get 获取到deployment的名称
- Kubectl describe deployment deployment的名称
- 查看pod 中的log
- 使用get 获取到pod的名称
- Kubectl logs pod的名称
EXEC命令用来在容器中执行一条命令
- 在pod容器外执行一条语句
- 使用get 获取到pod的名称
- Kubectl exec pod名称 命令
- 在pod容器内执行一条语句
- 使用get 获取到pod的名称
- Kubectl exec –it pod名称
- 在pod容器中执行命令
CP命令 pod和外部文件交换
- 从pod中将文件拷贝出来
- Exec进入某个pod。Kubectl exec –it pod名称
- 查看拷贝的文件和所在路径
- 退出pod。 Exit
- 拷贝pod文件:kubectl cp pod名称:文件路径/文件 目标路径/文件名称
- 将文件拷贝进pod中
- Kubectl cp 文件名称 pod名称:文件路径/文件
Attach命令 类型docker的attach命令。用于取得实时的类似于kuberctl logs 信息
- attach获取pod的log信息
kubectl attach pod名称
cluster-info命令 查看整体的全部的信息 使用cluster-info 或者 cluster-info dump 取出信息
- cluster-info 查看信息
kubectl cluster-info