自学内容网 自学内容网

kubernetes基础命令

kubectl + [command] + [type] + [name]+ [flags]

command:指定要对一个或多个资源执行的操作,例如 create、get、describe、delete等。(增删改查)

type:指定资源类型。资源类型不区分大小写,可以指 定单数、复数或缩写形式。

name:指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息: kubectl get pods。

flags: 指定可选的参数。例如,可以使用-s或-server参数 指定 Kubernetes API服务器的地址和端口。

1、初级基础命令

1)kubectl create

通过 yaml/json 文件或者标准输入创建一个资源对象

常用子命令及参数(按两次 tab 键即可查到):

 namespace (用指定的名称创建一个命名空间)
 service (使用指定的子命令创建服务)
 token (请求服务帐户令牌)
 -f (指定某个 yaml 或 json 文件来创建资源)
 clusterrolebinding (为特定群集角色创建群集角色绑定)
 clusterrole (创建群集角色)
 configmap (从本地文件、目录或文字值创建配置映射)
 cronjob (使用指定的名称创建cron作业)
 deployment (使用指定的名称创建资源)
 job (创建具有指定名称的作业)
 priorityclass (使用指定的名称创建优先级类)
 rolebinding (为特定角色或群集角色创建角色绑定)
 role (使用单一规则创建角色)
 secret (使用指定的子命令创建机密)
 serviceaccount (创建一个指定名称的服务账户)

2)kubectl expose

将 json/yaml 文件中定义的资源对象的端口暴露给新的 service资源对象

常用子命令及参数:

 deployment (管理Pod和ReplicaSet的声明式更新的一种资源对象) 
 replicaset (副本控制器。控制由其管理的Pod,使Pod副本的数量始终维持在预设的个数)
 service (暴漏服务的端口)
 pod (暴露 Pod 容器组的端口)
 replicationcontroller (检查 Pod 健康状态的控制器)

3)kubectl run

创建并允许一个或多个容器镜像

常用子命令及参数:

  --image (指定某个镜像)

4)kubectl set

配置资源对象设置特定功能

常用子命令及参数:

 env (更新 Pod 模板上的环境变量)
 image (更新 Pod 模板上的镜像)
 resources (使用 Pod 模板更新对象的资源请求/限制)
 selector (为资源设置选择器)
 serviceaccount (更新资源的服务帐户)
 subject (更新角色绑定或群集角色绑定中的用户、组或服务帐户)

2、中级基础命令

1)kubectl explain

查看资源对象的详细信息,一般用于编写 yaml 的时候做 一个提示。

比如:kubectl explain deployment 会出现 deployment 下面可以写的字段,以及字段属性并且可 以逐级使用。

2)kubectl get

获取一个或多个资源对象的信息,如:pod 的运行状态、容器数量、命名空间等。

常用子命令及参数:

 -n, --namespace (指定要查询的命名空间。如果不指定,默认查询当前命名空间中的资源)
 -o, --output (指定输出格式。可以指定yaml、json、wide等格式。例如,使用-o yaml可以以yaml格式查看pod的信息,也可以指定已有资源加-o wide 查询状态信息)
 -w, --watch (实时观察资源的变化)
 --all-namespaces,-A (获取所有命名空间中的资源信息)
 -l, --selector (根据标签选择器过滤资源。可以使用等于、不等于、包含、不包含等操作符来定义选择器条件)
 --field-selector (根据字段选择器过滤资源)
 --sort-by (按照指定的字段对结果进行排序)
 --show-kind (显示资源的种类信息)
 --watch-only (只观察资源的变化,不输出当前资源信息)
 pod (查询当前的 pod 资源,不加其他参数表示查询默认命名空间下的 pod)
 nodes (查询当前 k8s 集群的所有节点及状态)

3)kubectl edit

使用默认编辑器编辑服务器上定义的资源对象,保存后自动应用更改到 kubernetes 集群配置中。

常用子命令及参数:

 -f, --filename (指定要编辑的资源对象的文件或URL)
 -patch (将文件中的更改作为补丁应用于资源对象)
 -p, --patch-strategy (指定补丁策略。可以指定merge、retainKeys或strategic-merge)
 --output-patch (输出补丁文件)
 --local (在本地进行编辑,而不是在集群中进行编辑)
 --edit-cache (编辑缓存中的资源对象)

4)kubectl delete

通过 json/yaml 文件、标准输入、资源名称或标签选择器来删除资源

常用子命令及参数:

 -f, --filename (指定要删除的资源对象的文件或URL)
 --force (强制删除资源,即使资源正在运行)
 --cascade (删除与资源相关联的所有子资源)
 --all (删除所有资源。慎用!!)
 --grace-period (设置宽限期)
 -n (指定命名空间)

3、部署命令

1)kubectl rollout

资源管理对象的部署

常用子命令及参数:

 history (显示上线历史) 
 resume (恢复暂停的资源)
 pause (将所指定的资源标记为已暂停) 
 status (显示上线的状态)
 restart (重启一个资源) 
 undo (撤销上一次的上线)

2)kubectl rollout-update

使用 rc(replication controller)来做滚动更新资源, 包括 Deployment、StatefulSet、Job 等。

3)kubectl scale

对资源扩容或着缩容,包括 deployment、replicaset、 replication、controller 等。

常用子命令及参数:

 deployment (扩展或缩减 Deployment 控制的 Pod 数量)
 replicaset (扩展或缩减 Replicaset 控制的 Pod 数量)
 --replicas (控制 Pod 数量)
 replicationcontroller (控制 Pod 数量需要达到相对值的参数)
 statefulset (部署和扩展有状态的应用程序)

4、集群管理命令

1)kubectl cetificate

修改证书资源对象

常用子命令及参数:

 approve (批准证书签名请求(CSR))
 reject (拒绝 CSR)
 get (获取集群中存在的证书及其相关信息)
 describe (查看集群中证书的详细信息,包括颁发者、有效期、主题、公钥等)
 sertificates (获取一个证书的私钥)

2)kubectl cluster-info

查看集群的概要信息

常用子命令及参数:

 dump (获取集群详细信息,并可通过 grep 等过滤命令对集群进行问题诊断、调试测试等)

3)kubectl top

显示资源、CPU、内存、储存的使用情况

常用子命令及参数:

 node (显示集群的资源使用情况)
 pod (显示 pod 的资源使用情况,不加其他参数显示的是默认 pod)

4)kubectl cordon

标记集群内的某个节点为不可调度负载节点

常用子命令及参数:

 节点名 (如:master、node01 等)

5)kubectl uncordon

指定某个节点为可调度节点

常用子命令及参数:

 节点名 (如:master、node01 等)

6)kubectl drain

将某个节点上的工作负载平滑地切换到其他节点

常用子命令及参数:

 节点名 (如:master、node01 等)

7)kubectl taint

将一个或多个节点设置为污点,具有污点的节点和 Pod 之间存在一种互斥关系,这可以让节点拒绝 Pod 的调度 执行,甚至将已经存在的 Pod 驱逐出去。

常用子命令及参数:

 node+节点名+节点名....

5、故障排查和调试命令

1)kubectl describe

显示一个或多个资源对象的详细信息

常用子命令及参数:

 nodes (显示某个节点的详细信息)
 pod (显示某个 pod 的详细信息)
 -f .yaml/json (显示某个 yaml/json 文件定义的资源的详细信息)
 -l (指定显示的资源对象)
 --include-uninitialized (显示未初始化的资源对象)

2)kubectl logs

输出 pod 资源对象中一个容器的日志

常用子命令及参数:

 replicasets (显示 pod 数量控制器的日志) 
 services (显示 services 日志)
 deployments (显示 deployments 资源的日志)
 pods (显示 pod 的日志)

3)kubectl attach

连接到一个运行的容器

常用子命令及参数:

 -c (指定要进入的某个容器)
 -i (将控制台输入发送到容器)
 -t (为容器分配一个伪终端)

4)kubectl exec

在指定容器内执行命令,也可连接到某个容器

常用子命令及参数:

 -c (指定要进入的某个容器)
 -i (将控制台输入发送到容器)
 -t (为容器分配一个伪终端)
 -f (通过已定义好的 yaml/json 文件对容器进行交互)

5)kubectl port-forward

将本机指定端口映射到 pod 资源对象的端口

常用子命令及参数:

 Pod (要转发端口的 Pod 名称或选择器,例如:nginx 8080:80,这里 nginx 为 Pod 名)

6)kubectl proxy

将本地指定端口映射到 API Server

常用子命令及参数:

 -port=PORT (代理服务的端口号。默认为 8001)
 -www=static-dir (将静态文件目录提供给代理服务)
 -www-prefix=prefix (将 static-dir 中的文件路径前缀添加到代理服务中)
 -api-prefix=prefix (将 API 路径前缀添加到代理服务中)

7)kubectl cp

用于 pod 与主机交换文件

常用子命令及参数:

 -c (指定容器名进行文件交互)

8)kubectl auth

检查操作是否被允许,例如检查是否可以在当前名称空 间中列出部署、执行所有操作等。

常用子命令及参数:

 can-i (检查是否允许操作)
 reconcile (协调RBAC角色、角色绑定、集群角色和集群角色绑定对象的规则…)
 whoami (显示当前认证用户)

6、高级命令

1)kubectl diff

对比本地 json/yaml 文件与 kube-apiserver 中运行的配 置文件是否有差异

常用子命令及参数:

 -f (指定要比较的资源对象的文件名或路径)
 -o (指定输出格式,例如“yaml”或“json”)

2)kubectl apply

通过 json/yaml 文件、标准输入对资源进行配置更新或 创建

常用子命令及参数:

 -f (指定要应用的资源对象的文件名或路径,可以是YAML、JSON或多个文件)
 -n (指定要应用的资源对象的命名空间)
 --recursive (递归地应用目录中的所有资源对象)
 --prune (删除不再存在的资源对象)
 --force (强制应用资源对象,即使它们已存在)

3)kubectl patch

通过 patch 方式修改资源对象字段(补丁式)

常用子命令及参数:

 -f (指定要修改的资源对象的文件名或路径)
 -p (指定要应用的补丁,可以是JSON或YAML格式)
 --type (指定资源对象的类型,例如“Pod”、“Deployment”等)
 -n (指定要修改的资源对象的命名空间)

4)kubectl replace

通过 json/yaml 文件或标准输入来替换资源对象

常用子命令及参数:

 -f (指定要替换的资源对象的文件名或路径)
 --force (强制应用资源对象,即使它们已存在)

5)kubectl wait

在一个或多个资源上等待条件达成

常用子命令及参数:

 -f (指定要等待的资源对象的文件名或路径)
 --for=条件 (指定要等待的条件,例如“Ready=True”)
 --timeout=时间 (设置等待的超时时间)

6)kubectl convert

转换 json/yaml 文件为不同的资源版本

常用子命令及参数:

 -f (指定 yaml/json 文件)
 --v1 (将资源对象转换为 v1 版本)
 --v1beta1 (将资源对象转换为 v1 版本测试版 1)

7)kubectl kustomize

定制 kubernetes 配置

常用子命令及参数:

 -f (指定要应用的Kustomize配置文件的文件名或路径)
 -n (指定要应用的资源对象的命名空间)

7、设置命令

1)kubectl label

增删改资源的标签

常用子命令及参数:

 -f (指定要修改标签的资源对象的文件名或路径)
 标签名=新标签名 (添加一个标签到资源对象上)
 --overwrite (如果资源对象已经存在标签,则覆盖该标签)
 标签名- (删除一个标签)

2)kubectl annotate

更新⼀个或者多个资源对象的注释(annotaion)信息

常用子命令及参数:

 -f (指定 yaml/json 文件)
 --overwrite (如果资源对象已经存在注释,则覆盖已有注释)
 KEY_1=VAL_1 ... KEY_N=VAL_N (指定要添加或更新的注释键值对)

3)kubectl completion

开启 kubernetes 命令自动补齐功能。

8、其他命令

 kubectl config 管理 kubeconfig 配置文件
 kubectl plugin 运行命令行插件功能
 kubectl version 查看客户端服务端的系统版本信息
 kubectl api-versions 列出当前 kubernetes 系统支持的资源组和资源版本表现形式为/
 kubectl api-resources 列出当前 kubernetes 系统支持的resource资源列表
 kubectloptions 查看支持的参数列表

kubernetes 常用命令

1、编写 yaml 文件

 [root@master ~]# mkdir k8s
 [root@master ~]# cd k8s
 [root@master k8s]# vim busybox.yaml
 apiVersion: v1
 kind: Pod
 metadata:
        name: busybox-sleep
 spec:
        containers:
         - name: busybox
          image: busybox:1.28
          args:
           - sleep
           - "1000"

2、kubectl create

通过配置文件名或标准输入创建一个集群资源对象,支 持 json 和 yaml 格式的文件

语法: kubectl create -f 文件名

 # 通过json或yaml文件创建pod
 [root@master k8s]# kubectl create -f ./busybox.yaml
 pod/busybox-sleep created
 [root@master k8s]# kubectl get pod
 NAME           READY   STATUS   RESTARTS   AGE
 busybox-sleep   1/1     Running   0        81s
 # 通过标准输入来创建pod
 [root@master k8s]# cat busybox.yaml | kubectl create -f -
 pod/busybox-sleep created
 [root@master k8s]# kubectl get pod
 NAME           READY   STATUS   RESTARTS   AGE
 busybox-sleep   1/1     Running   0        12s

创建命名空间

 # 直接创建
 [root@k8s-master pods]# kubectl create namespace txt
 namespace/txt created
 [root@k8s-master pods]# kubectl get namespaces 
 NAME                   STATUS   AGE
 default                Active   40h
 kube-node-lease        Active   40h
 kube-public            Active   40h
 kube-system            Active   40h
 kubernetes-dashboard   Active   23h
 pes                    Active   18h
 txt                    Active   8s
 # 使用yaml文件创建
 [root@k8s-master pods]# vim txt002.yaml 
 apiVersion: v1
 kind: Namespace
 metadata:
         name: pes001
 [root@k8s-master pods]# kubectl create -f txt002.yaml 
 namespace/pes001 created
 [root@k8s-master pods]# kubectl get namespaces 
 NAME                   STATUS   AGE
 default                Active   40h
 kube-node-lease        Active   40h
 kube-public            Active   40h
 kube-system            Active   40h
 kubernetes-dashboard   Active   23h
 pes                    Active   18h
 pes001                 Active   7s
 txt                    Active   2m57s

kubectl create deployment 资源名 --image=镜像名

 # 通过指定镜像创建服务
 [root@master k8s]# kubectl create deployment nginx --image=nginx:latest
 deployment.apps/nginx created
 [root@master k8s]# kubectl get pod
 NAME                     READY   STATUS   RESTARTS   AGE
 busybox-sleep            1/1     Running   0         2m52s
 nginx-56fcf95486-tj26q   1/1     Running   0         43s

kubectl create deployment 资源名 --image=镜像名 -- dry-run=client -o yaml > 文件名.yaml

 # 不创建pod只生成yaml文件
 [root@master k8s]# kubectl create deployment nginx --image=nginx --dryrun=client -o yaml > nginx.yaml
 [root@master k8s]# ls
 busybox.yaml nginx.yaml
 # 生成的nginx.yaml文件
 [root@master k8s]# cat nginx.yaml 
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   creationTimestamp: null
   labels:
     app: nginx
   name: nginx
 spec:
   replicas: 1
   selector:
     matchLabels:
       app: nginx
   strategy: {}
   template:
     metadata:
       creationTimestamp: null
       labels:
         app: nginx
     spec:
       containers:
       - image: nginx
         name: nginx
         resources: {}
 status: {}

3、kubectl get

语法: kubectl get resource_name(资源名、类型)

常见 resource_name:

子命令解释
all获取 kubernetes 集群下所有资源,一般显示 kubernetes 自身的服务
certificatesigningrequests(缩写 csr) 获取集群中的证书签名请求
clusterrolebindings获取控制 API Server 访问 的绑定角色
clusterrol获取集群级别的权限操作
componentstatuses(缩写 cs) 查看 master 及 组件状态
configmaps(缩写 cm) 查看存储非机密 数据的 kubernetes 资 源,如配置信息等
controllerrevisions查看用于跟踪 controller 历史版本的资源
cronjobs查看 kubernetes 集群的周期性任务
customresourcedefinition(缩写 crd) 查看集群中所 有 CRD 的列表,包括它们 的名称、API 版本、类 型、标签和描述等信息
daemonsets(缩写 ds) 查看 kubernetes 守护进程状态
deployments(缩写 deploy) 获取 Kubernetes 集群中所有 的 Deployment 资源,用于声明式地管理应用程序 的副本数量和配置的资源
endpoints(缩写 ep) 获取 Kubernetes 服务的端 点,包含了访问服务的 IP 地址和端口信息
events(缩写 ev) 获取集群中默认 命名空间的相关操作的事 件列表,包括增删改查等
horizontalpodautoscalers(缩写 hpa) 获取集群中所 有的 HorizontalPodAutoscaler 资源:用于自动调整 Pod 的副本数量以响应集群中 的资源使用情况
ingresses(缩写 ing) 获取集群中所有 的 Ingress 资源:用于定 义如何将外部流量路由到 集群内部的应用程序
jobs查看用于执行批处理任务 或短生命周期的任务
limitranges(缩写 limits) 获取集群中 所有的 LimitRange 资 源:用于定义 Pod 的资源 限制范围
namespaces(缩写 ns) 获取集群中已有 的命名空间列表
networkpolicies(缩写 netpol) 获取定义网 络流量访问规则的资源
nodes(缩写 no) 查看集群中所有 节点
persistentvolumeclaims(缩写 pvc) 查看集群中用 于申请持久卷的资源
persistentvolumes(缩写 pv) 查看集群中用于 数据持久化的存储卷
poddisruptionbudgets(缩写 pdb) 获取该资源以 查看限制集群中某个 Pod 集合并发的删除操作
podpreset获取用于在创建 Pod 时注 入其他运行时需要的信 息,这些信息包括 secrets、volume mounts、environment variables 等
pods(缩写 po) 获取 pod 资源 信息,不加参数获取的是 当前默认命名空间的资源
podsecuritypolicies(缩写 psp) 查看用于控制 Pod 的安全相关配置
podtemplates查看用于定义 pod 模板的 资源对象
replicasets(缩写 rs) 查看目前所有的 replica set,显示了所有 的pod的副本数,以及他 们的可用数量以及状态等 信息
replicationcontrollers(缩写 rc) 列出所有 ReplicationControllers 的 命令, ReplicationControllers 负 责确保特定数量的 Pods 始终在运行
resourcequotas(缩写 quota) 列出所有 ResourceQuotas, ResourceQuota 是一个资 源限制对象,用于限制命 名空间中资源的使用量
rolebindingsRoleBinding 通过已经定 义的 Role 权限授予到用 户、用户组,从而让用户 获得在 NameSpace 对应 的操作资源权限
roles列出用于限制资源访问的 权限对象
secrets列出 Secrets 用于存储敏 感信息,例如密码、令牌 或 SSH 密钥
serviceaccounts(缩写 sa) 显示 service 的 敏感信息数量及年龄(服务 生成时间)
services(缩写 svc) 列出所有 services 的名称、类型、 IP、端口、年龄
statefulsets(缩写 sts) 列出所有可用 StatefulSet 对象,包括其 名称、状态和任何相关的 标签和注释
storageclasses(缩写 sc) 列出所有可用的 StorageClass 对象,包括 其名称、提供程序、回收 策略、卷绑定模式、是否 允许卷扩展等信息

其他可选参数:

-o wide/json/yaml (用不同格式查看)

-l key=value (看指定标签的pods,⽀持‘=’, ‘==’, and ‘!=’操作符)

示例:

 # 查看Master状态
 [root@master k8s]# kubectl get componentstatuses
 Warning: v1 ComponentStatus is deprecated in v1.19+
 NAME                 STATUS   MESSAGE   ERROR
 controller-manager   Healthy   ok       
 scheduler            Healthy   ok       
 etcd-0               Healthy   ok   
 # 查看所有命名空间
 [root@master k8s]# kubectl get namespaces 
 NAME                   STATUS   AGE
 default               Active   2d
 kube-node-lease       Active   2d
 kube-public           Active   2d
 kube-system           Active   2d
 kubernetes-dashboard   Active   40h
 # 列出kube-system命名空间下的所有pod,不加-n参数查看default命名空间下的pod
 [root@master k8s]# kubectl get pods -n kube-system 
 NAME                                     READY   STATUS   RESTARTS         AGE
 calico-kube-controllers-6d48795585-4nt8s  1/1     Running   3 (6h13m ago)   47h
 calico-node-4vxf7                         1/1     Running   3 (6h13m ago)   47h
 calico-node-7hxmr                         1/1     Running   2 (6h13m ago)   47h
 calico-node-lwktw                         1/1     Running   2 (6h13m ago)   47h
 coredns-6554b8b87f-jbx9s                  1/1     Running   3 (6h13m ago)   2d
 coredns-6554b8b87f-vfrs7                  1/1     Running   3 (6h13m ago)   2d
 etcd-master                               1/1     Running   10 (6h13m ago)  2d
 kube-apiserver-master                     1/1     Running   16 (6h13m ago)  2d
 kube-controller-manager-master            1/1     Running   12 (6h12m ago)  2d
 kube-proxy-8nzdl                          1/1     Running   3 (6h13m ago)   40h
 kube-proxy-t4vzv                          1/1     Running   2 (6h13m ago)   40h
 kube-proxy-xsbw6                          1/1     Running   2 (6h13m ago)   40h
 kube-scheduler-master                     1/1     Running   9 (6h13m ago)   2d
 metrics-server-8df99c47f-gvljv            1/1     Running   3 (6h12m ago)   28h
 # 显示更多的pods列表信息(例如 pod的ip和所处的node)
 [root@master k8s]# kubectl get pods -o wide 
 NAME                     READY   STATUS   RESTARTS   AGE   IP             NODE         NOMINATED NODE   READINESS GATES
 nginx-7854ff8877-nphcf   1/1     Running   0         14s   172.16.58.198   k8snode02  <none>           <none>
 # 列出名字为web的rc
 [root@master k8s]# kubectl get replicationcontroller web
 # 获取名字为nginx-7854ff8877-nphcf的pod的信息,并以json格式输出
 [root@master k8s]# kubectl get -o json pod nginx-7854ff8877-nphcf
 # 根据pod⽂件查找pod,并以json格式输出,查询前确保目标pod存在于集群中
 [root@master k8s]# kubectl get -f busybox.yaml -o json
 # 获取pod的kube-dns-795f5f6f9c-ldxxs容器的状态
 [root@master k8s]# kubectl get -o template pod/kube-dns-795f5f6f9c-ldxxs --template {{.status.phase}}
 # 同时获取所有的rc和service
 [root@master k8s]# kubectl get rc,services
 # 获取符合条件的所有rc,svc,pod,因为当前集群中没有这些资源,所以查不到便报错
 [root@master k8s]# kubectl get rc/web service/frontend pods/web-pod-13je7
 # 显示所有资源,包括pod、deployment、service、replicaset
 [root@master k8s]# kubectl get all
 # 查看pod⾥的容器名
 [root@master k8s]# kubectl get pods nginx-7854ff8877-nphcf -o jsonpath='{.spec.containers[*].name}'

4、kubectl delete

kubernetes 集群中,可通过指定配置文件 (json/yaml)、stdin(标准输入)、资源名称或 label (标签)来删除资源。

Pod 支持平滑删除,因为这些资源一般是集群中的实 体,所以删除无法立即生效,这些资源在强制终止之前 默认定义了一个周期 (宽限期),但可以使用“-graceperiod flag”来覆盖该值,或通过“pass --now”设置该周 期为 1。

如果托管 Pod 的 Node 节点已停止或无法连接 API Server,使用 delete 删除 Pod 需等待时间更长,此时要 想强制删除,需指定“-force flag” ,且设置周期为 0。

注意:执行delete命令时不会检查资源版本,如果在 执行delete操作时有人进行了更新操作,那么更新操 作将连同资源一起被删除。

语法: kubectl delete ([ -f 文件名 ] | TYPE [NAME | -l label | - -all])

示例:

 # 使⽤ pod.json中指定的资源类型和名称删除pod
 kubectl delete -f ./pod.json
 # 根据传⼊stdin的JSON所指定的类型和名称删除pod
 cat pod.json | kubectl delete -f -
 # 删除名为“baz”和“foo”的Pod和Service
 kubectl delete pod,service baz foo
 # 删除 Label name = myLabel的pod和Service
 kubectl delete pods,services -l name=myLabel
 # 强制删除dead node上的pod
 kubectl delete pod foo --grace-period=0 --force
 # 删除所有pod
 kubectl delete pods --all
 # 删除⼀个部署集
 kubectl delete deployments nginx
 # 删除命名空间会同时删除命名空间的pod
 kubectl delete namespaces pes001

5、kubectl set

更新资源:

 # 更新 "nginx" Deployment 的 "nginx" 容器镜像
 kubectl set image deployment nginx nginx=nginx:v2

6、kubectl edit

编辑资源:

 # 编辑名为nginx的集群管理器,进入一个如vim的文本编辑器,但不能使用鼠标滚轮滑动
 kubectl edit deployment nginx

7、kubectl replace

更新资源:

 # 强制替换,删除后重建资源。会导致服务不可⽤。
 kubectl replace --force -f ./nginx.yaml

8、 kubectl logs

输出 pod 中一个容器的日志。如果 pod 只包含一个容器 则省略容器名。

语法: kubectl logs [-f] [-p] POD [-c CONTAINER]

 -c,--container="":容器名。
 -f,--follow[=false]:指定是否持续输出日志
 --interactive[=true]:如果为true,当需要时提示用户进行输入。默认为true。
 --limit-bytes=0:输出日志的最大字节数。默认无限制。
 -p,--previous[=false]:如果为true,输出pod中曾经运行过,但目前已终止的容器的日志
 --since=0: 仅返回相对时间范围,如5s、2m或3h,之内的日志。默认返回所有日志。只能司时使用since和since-time中的一种。
 --since-time="”:仅返回指定时间 (RFC3339格式)之后的日志。默认返回所有日志。只能同时使用since和since-time中的一种。
 --tail=-1: 要显示的最新的日志条数。默认为-1,显示所有的日志。
 --timestamps[=false]: 在日志中包含时间戳。

示例:

 # 返回仅包含⼀个容器的pod nginx的⽇志快照
 kubectl logs nginx
 # 持续输出pod⽇志
 kubectl logs -f nginx-7854ff8877-x8v6f
 # 指定命名空间和pod查看⽇志
 kubectl logs -f kube-apiserver-k8s-master -n kube-system
 # 查看后⾯10⾏内容
 kubectl logs -f kube-apiserver-k8s-master -n kube-system --tail 10
 # 查看某个pod⾥某个容器的⽇志
 kubectl logs -f nginx-7854ff8877-x8v6f -c nginx

9、kubectl exec

语法: kubectl exec POD [-c CONTAINER] -- COMMAND [args...]

连接容器并可在容器内部执行命令

 -c,--container="”: 容器名。如果未指定,使用pod中的一个容器。
 -p,--pod="”: Pod名
 -i,--stdin[=false]: 将控制台输入发送到容器
 -t,--tty[=false]: 为容器分配一个伪终端

示例:

 # 在pod的容器⾥执⾏ls指令
 kubectl exec busybox-sleep -- ls
 # 进⼊到pod容器⾥
 kubectl exec -it busybox-sleep -- bash
 kubectl exec -it busybox-sleep -- sh
 # 进⼊到某个pod⾥的某个容器⾥
 kubectl exec -it nginx-7854ff8877-x8v6f -c nginx -- bash

10、kubectl top

显示资源 cpu 内存 存储使⽤情况

# 查看节点的资源使⽤情况
kubectl top node
# 查看pod资源使⽤情况
kubectl top po
# 查看所有节点资源使⽤情况
kubectl top po -A


原文地址:https://blog.csdn.net/weixin_70693880/article/details/142425836

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!