Hello World

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 删除

posted @ 2020-07-02 15:55  小小忧愁米粒大  阅读(1221)  评论(0编辑  收藏  举报
瞅啥瞅,好好看书