• kubernetes系列05—kubectl应用快速入门


    kubernetes系列05—kubectl应用快速入门

     

    1、使用kubectl

    1.1 介绍

    kubectl用于运行Kubernetes集群命令的管理工具。

    1.2 语法

    1
    kubectl [command] [TYPE] [NAME] [flags]
    •  command:指定要在一个或多个资源执行的操作,例如操作create,get,describe,delete。TYPE:指定资源类型Resource types。
    •  Name区分大小写,如果省略Name,则显示所有资源的详细信息,例如:$ kubectl get pods。

    1.3 选项

    Operation

    Description

    Syntax

    annotate

    为一个或多个资源添加注释

    kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]

    api-versions

    列出支持的API版本。

    kubectl api-versions [flags]

    apply

    对文件或stdin的资源进行配置更改。

    kubectl apply -f FILENAME [flags]

    attach

    连接到一个运行的容器,既可以查看output stream,也可以与容器(stdin)进行交互。

    kubectl attach POD -c CONTAINER [-i] [-t] [flags]

    autoscale

    自动扩容/缩容由replication controller管理的一组pod。

    kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags]

    cluster-info

    显示有关集群中master和services的终端信息。

    kubectl cluster-info [flags]

    config

    修改kubeconfig文件。有关详细信息,请参阅各个子命令。

    kubectl config SUBCOMMAND [flags]

    create

    从file或stdin创建一个或多个资源。

    kubectl create -f FILENAME [flags]

    delete

    从file,stdin或指定label 选择器,names,resource选择器或resources中删除resources。

    kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags]

    describe

    显示一个或多个resources的详细状态。

    kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags]

    edit

    使用默认编辑器编辑和更新服务器上一个或多个定义的资源。

    kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags]

    exec

    对pod中的容器执行命令。

    kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]

    explain

    获取各种资源的文档。例如pod,node,services等

    kubectl explain [--include-extended-apis=true] [--recursive=false] [flags]

    expose

    将 replication controller,service或pod作为一个新的Kubernetes service显示。

    kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [----external-ip=external-ip-of-service] [--type=type] [flags]

    get

    列出一个或多个资源。

    kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]

    label

    添加或更新一个或多个资源的flags。

    kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]

    logs

    在pod中打印容器的日志。

    kubectl logs POD [-c CONTAINER] [--follow] [flags]

    patch

    使用strategic merge 补丁程序更新资源的一个或多个字段。

    kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags]

    port-forward

    将一个或多个本地端口转发到pod。

    kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]

    proxy

    在Kubernetes API服务器运行代理。

    kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]

    replace

    从file或stdin替换资源。

    kubectl replace -f FILENAME

    rolling-update

    通过逐步替换指定的replication controller及其pod来执行滚动更新。

    kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [flags]

    run

    在集群上运行指定的镜像。

    kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags]

    scale

    更新指定replication controller的大小。

    kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags]

    stop

    已弃用

    kubectl stop

    version

    显示客户端和服务器上运行的Kubernetes版本。

    kubectl version [--client] [flags]

    1.4 示例演示

    (1)简单的查询操作

    查询节点详细信息

    1
    2
    3
    4
    5
    [root@master ~]# kubectl describe node node1
    Name:               node1
    Roles:              <none>
    Labels:             beta.kubernetes.io/arch=amd64
    ... ...

    查看版本

    1
    2
    3
    [root@master ~]# kubectl version
    Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac55d903350454310a", GitTreeState:"clean", BuildDate:"2018-07-17T18:43:26Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

    查看集群信息

    1
    2
    3
    [root@master ~]# kubectl cluster-info
    Kubernetes master is running at https://192.168.10.103:6443
    KubeDNS is running at https://192.168.10.103:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

      

    2、run运行

    2.1 介绍

    创建并运行一个或多个容器镜像。

    2.2 命令

    1
    $ kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...] [options]

      

    2.3 常用选项

    •  --port:要暴露的端口
    •  --replicas:期望创建几个Pod,默认1个
    •  --dry-run:true为干跑

    2.4 演示

    (1)运行一个nginx的pod

    1
    2
    [root@master ~]# kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --replicas=1
    deployment.apps/nginx-deploy created

      

    (2)在master上查询验证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@master ~]# kubectl get deployment
    NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    nginx-deploy   1         1         1            1           44s
    [root@master ~]# kubectl get pods
    NAME                          READY     STATUS    RESTARTS   AGE
    nginx-deploy-5b595999-6kw54   1/1       Running   0          51s
    [root@master ~]# kubectl get pods -o wide
    NAME                          READY     STATUS    RESTARTS   AGE       IP           NODE
    nginx-deploy-5b595999-6kw54   1/1       Running   0          1m        10.244.2.2   node2

      

    (3)在部署的node节点上查询

    1
    2
    3
    [root@node2 ~]# ifconfig |head -2
    cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
            inet 10.244.2.1  netmask 255.255.255.0  broadcast 0.0.0.0

      

    (4)访问pod内的nginx服务

    1
    2
    3
    4
    5
    [root@node1 ~]# curl 10.244.2.2
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>

      

    3、delete删除

    3.1 介绍

    •  通过配置文件名、stdin、资源名称或label选择器来删除资源。
    •  支持JSON和YAML格式文件。可以只指定一种类型的参数:文件名、资源名称或label选择器。

    3.2 语法

    1
    $ kubectl delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)])

      

    3.3 演示

    删除刚才的pod,立刻会生成一个新的pod,因为此pod是控制器管理的

    1
    2
    3
    4
    5
    6
    7
    8
    [root@master ~]# kubectl delete pods nginx-deploy-5b595999-6kw54
    pod "nginx-deploy-5b595999-6kw54" deleted
    [root@master ~]# kubectl get pods
    NAME                          READY     STATUS              RESTARTS   AGE
    nginx-deploy-5b595999-jf5gm   0/1       ContainerCreating   0          16s
    [root@master ~]# kubectl get pods -o wide
    NAME                          READY     STATUS    RESTARTS   AGE       IP           NODE
    nginx-deploy-5b595999-jf5gm   1/1       Running   0          47s       10.244.1.2   node1

      

    4、expose暴露

    4.1 介绍

    •  将资源暴露为新的Kubernetes Service。
    •  指定deployment、service、replica set、replication controller或pod ,并使用该资源的选择器作为指定端口上新服务的选择器。deployment 或 replica set只有当其选择器可转换为service支持的选择器时,即当选择器仅包含matchLabels组件时才会作为暴露新的Service。
    •  资源包括(不区分大小写):pod(po),service(svc),replication controller(rc),deployment(deploy),replica set(rs)

    4.2 语法

    1
    $ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type]

      

    4.3 常用选项

    •  --port:暴露在service上的端口
    •  --target-port:容器中的端口

    4.4 演示

    (1)将nginx-deploy控制器中相关的Pod资源创建一个名为nginx的服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@master ~]# kubectl expose deployment nginx-deploy --name=nginx --port=80 --target-port=80 --protocol=TCP
    service/nginx exposed
    [root@master ~]# kubectl get services
    NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
    kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP   16h
    nginx        ClusterIP   10.96.212.79   <none>        80/TCP    9s
    [root@master ~]# kubectl get svc  #简写
    NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
    kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP   16h
    nginx        ClusterIP   10.96.212.79   <none>        80/TCP    13s

      

    (2)验证,在集群内部节点访问服务

    1
    2
    3
    4
    5
    [root@master ~]# curl 10.96.212.79
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>

      

    (3)删除pod,立即生产新的pod,但是service还是不变,继续提供服务,只是指定到新的pod

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    ---删除pod
    [root@master ~]# kubectl delete pods nginx-deploy-5b595999-jf5gm
    ---立即生产新的pod,service继续提供服务
    [root@master ~]# curl 10.96.212.79 
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    ---指定到新的pod
    [root@master ~]# kubectl get pod -o wide
    NAME                            READY     STATUS    RESTARTS   AGE       IP            NODE
    nginx-deploy-5b595999-2z769     1/1       Running   0          29m       10.244.1.2    node2
    [root@master ~]# kubectl describe svc nginx
    Name:              nginx
    Namespace:         default
    Labels:            run=nginx-deploy
    Annotations:       <none>
    Selector:          run=nginx-deploy
    Type:              ClusterIP
    IP:                10.96.212.79
    Port:              <unset>  80/TCP
    TargetPort:        80/TCP
    Endpoints:         10.244.1.2:80
    Session Affinity:  None
    Events:            <none>

      

    5、scale动态扩容/缩容

    5.1 介绍

    •  扩容或缩容 Deployment、ReplicaSet、Replication Controller或 Job 中Pod数量。
    •  scale也可以指定多个前提条件,如:当前副本数量或 --resource-version ,进行伸缩比例设置前,系统会先验证前提条件是否成立。

    5.2 语法

    1
    $ kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME)

      

    5.3 演示

    (1)先运行名为myapp标签选择器的2个pod,镜像是我用于测试演示自己构建的

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --replicas=2
    deployment.apps/myapp created
    [root@master ~]# kubectl get deployment
    NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    myapp     2         2         2            2           6s
    [root@master ~]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP            NODE
    myapp-848b5b879b-58jcr   1/1       Running   0          11s       10.244.2.53   node2
    myapp-848b5b879b-wpx9v   1/1       Running   0          11s       10.244.1.56   node1

      

    (2)创建service,并验证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [root@master ~]# kubectl expose deployment myapp --name=myapp --port=80
    service/myapp exposed
    [root@master ~]# kubectl get svc myapp
    NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
    myapp     ClusterIP   10.104.205.158   <none>        80/TCP    8s
    [root@master ~]# curl 10.104.205.158
    Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
    ---因为有2个pod,所以是随机调度
    [root@master ~]# curl 10.104.205.158/hostname.html
    myapp-848b5b879b-58jcr
    [root@master ~]# curl 10.104.205.158/hostname.html
    myapp-848b5b879b-wpx9v

      

    (3)使用scale,将pod扩容到5个

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@master ~]# kubectl scale --replicas=5 deployment myapp
    deployment.extensions/myapp scaled
    [root@master ~]# kubectl get pods
    NAME                     READY     STATUS    RESTARTS   AGE
    myapp-848b5b879b-2sj8n   1/1       Running   0          8s
    myapp-848b5b879b-58jcr   1/1       Running   0          4m
    myapp-848b5b879b-hp7zs   1/1       Running   0          8s
    myapp-848b5b879b-sfq8r   1/1       Running   0          8s
    myapp-848b5b879b-wpx9v   1/1       Running   0          4m

      

    (4)使用scale,将pod缩容到3个

    1
    2
    3
    4
    5
    6
    [root@master ~]# kubectl scale --replicas=3 deployment myapp
    [root@master ~]# kubectl get pods
    NAME                     READY     STATUS    RESTARTS   AGE
    myapp-848b5b879b-2sj8n   1/1       Running   0          1m
    myapp-848b5b879b-58jcr   1/1       Running   0          6m
    myapp-848b5b879b-wpx9v   1/1       Running   0          6m

      

    6、set动态升级版本

    6.1 介绍

    (1)set

    •  配置应用资源。
    •  使用这些命令能帮你更改现有应用资源一些信息。
    •  子命令:image、resources、selector、subject

    (2)set image

    •  更新现有的资源对象的容器镜像。
    •  可使用资源对象包括(不区分大小写):pod (po)、replicationcontroller (rc)、deployment (deploy)、daemonset (ds)、job、replicaset (rs)

    6.2 语法

    1
    $ kubectl set image (-f FILENAME | TYPE NAME) CONTAINER_NAME_1=CONTAINER_IMAGE_1 ... CONTAINER_NAME_N=CONTAINER_IMAGE_N

      

    6.3 演示

    将镜像版本从v1升级到v2版

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [root@master ~]# kubectl set image deployment myapp myapp=ikubernetes/myapp:v2
    deployment.extensions/myapp image updated
    [root@master ~]# kubectl rollout status deployment myapp  #动态显示版本升级过程
    ---因为版本升级,所以pod都是新建的,名字都改变了
    [root@master ~]# kubectl get pods
    NAME                          READY     STATUS    RESTARTS   AGE
    client                        1/1       Running   0          3h
    myapp-74c94dcb8c-d5fgk        1/1       Running   0          55s
    myapp-74c94dcb8c-f2ntn        1/1       Running   0          21s
    myapp-74c94dcb8c-ht9v7        1/1       Running   0          38s
    ---验证,版本升级成功
    [root@master ~]# curl 10.104.205.158
    Hello MyApp | Version: v2 | <a href="hostname.html">Pod Name</a>

      

    7、rollout undo回滚版本

    7.1 介绍

    (1)rollout

    •  对资源进行管理
    •  可用资源包括:deployments、daemonsets
    •  子命令:history(查看历史版本)、pause(暂停资源)、resume(恢复暂停资源)、status(查看资源状态)、undo(回滚版本)

    (2)rollout undo

    回滚pod到之前的版本。

    7.2 语法

    1
    $ kubectl rollout undo (TYPE NAME | TYPE/NAME) [flags]

      

    7.3 演示

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@master ~]# kubectl rollout undo deployment myapp
    deployment.extensions/myapp
    [root@master ~]# kubectl get pods
    NAME                     READY     STATUS    RESTARTS   AGE
    myapp-848b5b879b-gg9lr   1/1       Running   0          15s
    myapp-848b5b879b-km4t6   1/1       Running   0          16s
    myapp-848b5b879b-nq98c   1/1       Running   0          17s
    ---验证,回滚成功
    [root@master ~]# curl 10.104.205.158
    Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>

      

    8、edit编辑修改

    8.1 介绍

    •  使用默认编辑器,编辑服务器上定义的资源。
    •  使用命令行工具获取的任何资源都可以使用edit命令编辑。edit命令会打开使用KUBE_EDITOR,GIT_EDITOR 或者EDITOR环境变量定义的编辑器,可以同时编辑多个资源,但所编辑过的资源只会一次性提交。edit除命令参数外还接受文件名形式。
    •  文件默认输出格式为YAML。要以JSON格式编辑,请指定“-o json”选项。
    •  如果在更新资源时报错,将会在磁盘上创建一个临时文件来记录。在更新资源时最常见的错误是几个用户同时使用编辑器更改服务器上资源,发生这种情况,你需要将你的更改应用到最新版本的资源上,或者更新保存的临时副本。

    8.2 语法

    1
    $ kubectl edit (RESOURCE/NAME | -f FILENAME)

      

    8.3 演示

    (1)修改service,将类型type: ClusterIP,修改为type: NodePort;修改后,可以在集群外访问到pod中的服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root@master ~]# kubectl edit svc myapp
    ... ...
    spec:
    ... ...
      type: NodePort
    ... ...
    service/myapp edited
    [root@master ~]# kubectl get svc myapp
    NAME      TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
    myapp     NodePort   10.104.205.158   <none>        80:31599/TCP   23m

      

    (2)在集群外的主机上访问了

    9、label标签

    9.1 介绍

    更新(增加、修改或删除)资源上的 label(标签)。

    •  label 必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符。
    •  如果--overwrite 为 true,则可以覆盖已有的 label,否则尝试覆盖 label 将会报错。
    •  如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。

    9.2 语法

    1
    $ kubectl label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

    9.3 演示

    (1)运行一个标签为app=nginx的pod

    1
    2
    [root@master ~]# kubectl run nginx --image=nginx:1.14-alpine --replicas=1 --labels="app=nginx"
    deployment.apps/nginx created

      

    (2)-l 指定标签,实现标签过滤

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@master ~]# kubectl get pods --show-labels
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    myapp-848b5b879b-5blnx   1/1       Running   0          4m        pod-template-hash=4046164356,run=myapp
    myapp-848b5b879b-6hgpp   1/1       Running   0          4m        pod-template-hash=4046164356,run=myapp
    myapp-848b5b879b-hzj5g   1/1       Running   0          4m        pod-template-hash=4046164356,run=myapp
    nginx-86d5b5ddb6-rwv2z   1/1       Running   0          53s       app=nginx,pod-template-hash=4281618862
    [root@master ~]# kubectl get pods --show-labels -l app
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    nginx-86d5b5ddb6-rwv2z   1/1       Running   0          1m        app=nginx,pod-template-hash=4281618862

      

    (3)打一个新的标签

    1
    2
    3
    4
    5
    [root@master ~]# kubectl label pods nginx-86d5b5ddb6-rwv2z release=canary
    pod/nginx-86d5b5ddb6-rwv2z labeled
    [root@master ~]# kubectl get pods --show-labels -l release
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    nginx-86d5b5ddb6-rwv2z   1/1       Running   0          4m        app=nginx,pod-template-hash=4281618862,release=canary

      

    (4)修改标签

    1
    2
    3
    4
    5
    [root@master ~]# kubectl label pods nginx-86d5b5ddb6-rwv2z release=stable --overwrite
    pod/nginx-86d5b5ddb6-rwv2z labeled
    [root@master ~]# kubectl get pods --show-labels -l release
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    nginx-86d5b5ddb6-rwv2z   1/1       Running   0          5m        app=nginx,pod-template-hash=4281618862,release=stable

      

    9.4 标签选择器

    (1)等值关系:=,==,!=

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [root@master ~]# kubectl get pods -l release --show-labels
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    nginx-86d5b5ddb6-rwv2z   1/1       Running   0          6m        app=nginx,pod-template-hash=4281618862,release=stable
    [root@master ~]# kubectl get pods -l release=stable --show-labels
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    nginx-86d5b5ddb6-rwv2z   1/1       Running   0          6m        app=nginx,pod-template-hash=4281618862,release=stable
    [root@master ~]# kubectl get pods -l release!=stable --show-labels
    NAME                     READY     STATUS    RESTARTS   AGE       LABELS
    myapp-848b5b879b-5blnx   1/1       Running   0          10m       pod-template-hash=4046164356,run=myapp
    myapp-848b5b879b-6hgpp   1/1       Running   0          10m       pod-template-hash=4046164356,run=myapp
    myapp-848b5b879b-hzj5g   1/1       Running   0          10m       pod-template-hash=4046164356,run=myapp

      

    (2)集合关系

    •  KEY in (VALUE1,VALUE2,...):集合中存在此健
    •  KEY notin (VALUE1,VALUE2,...):集合中不存在此健
    •  KEY:存在此健
    •  !KEY:不存在此健
    1
    2
    3
    4
    5
    6
    7
    8
    [root@master ~]# kubectl get pods -l "release in (stable,beta,alpha)"
    NAME                     READY     STATUS    RESTARTS   AGE
    nginx-86d5b5ddb6-rwv2z   1/1       Running   0          9m
    [root@master ~]# kubectl get pods -l "release notin (stable,beta,alpha)"
    NAME                     READY     STATUS    RESTARTS   AGE
    myapp-848b5b879b-5blnx   1/1       Running   0          12m
    myapp-848b5b879b-6hgpp   1/1       Running   0          12m
    myapp-848b5b879b-hzj5g   1/1       Running   0          12m

     

  • 相关阅读:
    this与$(this)的区别
    子元素筛选选择器
    内容筛选选择器
    基本筛选选择器
    jQuery对象与DOM对象及互相转化
    【题解】保安站岗[P2458]皇宫看守[LOJ10157][SDOI2006]
    【学习笔记】薛定谔的喵咪Cat—球盒问题(全详解)
    【题解】二逼平衡树 [P3380] [BZOJ3196] [Tyvj1730]
    【题解】TES-Intelligence Test
    【题解】自行车比赛 [AHOI2016] [P2777]
  • 原文地址:https://www.cnblogs.com/dengbingbing/p/10399182.html
Copyright © 2020-2023  润新知