kubectl 常用命令
【参考文章】:kubectl 概述
kubectl简介
语法:kubectl [command] [resource_type] [resource_name] [flags]
command : 对资源执行的操作,比如 create,get,describe,edit,delete,scale,logs
resource_type : 操作的资源类型,单数、复数、缩写形式均可,常用的有 pod,deployment,services(svc),cronjob,job,replicaset(rs),replicationcontrollers(rc),configmaps(cm),secret,namespaces(ns),node
resource_name : 操作的资源名称,区分大小写,不指定资源名称时显示所有资源信息
flags : 可选参数
1. 通用命令
1 创建资源
通过配置文件创建资源
kubectl apply -f xxx.yaml
2 查询资源
kubectl -n <name-space> get resource_type
resource_type: 比如 pod,deployment(deploy),statefulset(sts), daemonset, job, cronjob, service(svc),configmap(cm), secret,endpoints(ep)
以yaml的形式查看资源信息
kubectl -n <name-space> get resource_type -oyaml
2. pod
1 创建
使用当前的yaml文件重新启动该实例
kubectl get pod <pod_name> -n <name_space> -o yaml | kubectl replace --force -f -
2 查询
查找某个pod:
kubectl -n <namespace> get pods | grep <pod_name>
查找某一个pod在哪台服务器上:
kubectl -n <namespace> get pods -o wide | grep <pod_name>
查看某个pod的信息:
kubectl -n <namespace> describe pod <pod_name>
查找某个pod下某个container的错误日志:
kubectl -n <namespace> logs <pod_name> --container <container_name>
查找所有 pod 的 image 信息:
kubectl get pods -A -o yaml | grep image:
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"
3 删除
kubectl -n <name-spaces> delete pod <pod-name>
强制删除pod
kubectl delete pod <pod_name> -n <namespace> --force --grace-period=0
--grace-period 表示删除后pod优雅终止的时间,设置为0表示立刻终止
4 文件拷贝
从宿主机拷贝到容器时,可以只指定容器内的文件夹路径
kubectl -n <namespace> cp <file_path> <pod_name>:<container_path> -c <container_name>
从容器拷贝到宿主机时必须指定文件在宿主机的文件名
kubectl -n <namespace> cp <pod_name>:<container_path> <file_path> -c <container_name>
5 进入容器
kubectl -n <namespace> exec -it <pod_name> -c <container_name> /bin/sh
kubectl -n <namespace> exec -it <pod_name> -c <container_name> /bin/bash
3. deployment
1.创建
kubectl create deployment <resource_name> --image=<image>
通过配置文件创建
kubectl apply -f deploy.yaml
2 查询
kubectl get deploy <deploy-name>
以yaml的形式显示deploy信息
kubectl get deploy <deploy-name> -oyaml
3 修改
kubectl edit deploy <deploy-name>
修改副本数
kubectl scale deployment <service_name> -n <name_space> --replicas=1
4 删除
kubectl delete deploy <deploy-name>
4. secret
Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。 这样的信息可能会被放在 Pod 规约中或者镜像中,pod引用secret有三种方式:
1. 作为容器的环境变量
2. 作为挂载到一个或多个容器上的 卷 中的文件。
3. 由 kubelet 在为 Pod 拉取镜像时使用
命令行查询和编辑时,secret的值都是将数据base64之后的值
1.创建
以一个文件作为一对key-value
以指定的<key_name>作为key(不指定时默认使用文件名作为key),以指定文件的内容作为value
kubectl create secret generic <secret_name> --from-file=<key_name>=<filepath>
以文件中的键值对作为secret的数据
直接使用文件中的key-value
kubectl create secret generic <secret_name> --from-env-file=<filepath>
2 查询
kubectl get secret <resource_name> -o yaml
3 修改
kubectl edit secret <resource_name>
4 操作
4 删除
5. node
1.创建
2 查询
查询集群的node信息
kubectl get node
查询某个node的使用情况
kubectl describe node <node_name>
3 修改
4 操作
4 删除
如果文章对您有所帮助,可以点一下推荐