zoukankan      html  css  js  c++  java
  • 命令行工具

    1、kubectl概述

    kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。运行kubectl命令的语法如下所示:

    $ kubectl [command] [TYPE] [NAME] [flags]

    这里的command,TYPE、NAME和flags为:

    • comand:指定要对资源执行的操作,例如create、get、describe和delete
    • TYPE:指定资源类型,资源类型是大小学敏感的,开发者能够以单数、复数和缩略的形式。例如:
    $ kubectl get pod pod1 
    $ kubectl get pods pod1 
    $ kubectl get po pod1
    • NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源,例如:
     $ kubectl get pods
    • flags:指定可选的参数。例如,可以使用-s或者–server参数指定Kubernetes API server的地址和端口。

    另外,可以通过运行kubectl help命令获取更多的信息。

    1.1 kubectl的操作

    kubectl作为kubernetes的命令行工具,主要的职责就是对集群中的资源的对象进行操作,这些操作包括对资源对象的创建、删除和查看等。下表中显示了kubectl支持的所有操作,以及这些操作的语法和描述信息:

    操作语法描述
    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 kubectl api-versions [flags] 列出可用的API版本
    apply kubectl apply -f FILENAME [flags] 将来自于文件或stdin的配置变更应用到主要对象中。
    attach kubectl attach POD -c CONTAINER [-i] [-t] [flags] 连接到正在运行的容器上,以查看输出流或与容器交互(stdin)。
    autoscale kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [–min=MINPODS] –max=MAXPODS [–cpu-percent=CPU] [flags] 自动扩宿容由副本控制器管理的Pod。
    cluster-info kubectl cluster-info [flags] 显示群集中的主节点和服务的的端点信息。
    config kubectl config SUBCOMMAND [flags] 修改kubeconfig文件。
    create kubectl create -f FILENAME [flags] 从文件或stdin中创建一个或多个资源对象。
    delete kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | –all]) [flags] 删除资源对象。
    describe kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] 显示一个或者多个资源对象的详细信息。
    edit kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags] 通过默认编辑器编辑和更新服务器上的一个或多个资源对象。
    exec kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [– COMMAND [args…]] 在Pod的容器中执行一个命令。
    explain kubectl explain [–include-extended-apis=true] [–recursive=false] [flags] 获取Pod、Node和服务等资源对象的文档。
    expose 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] 为副本控制器、服务或Pod等暴露一个新的服务。
    get kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [–watch] [–sort-by=FIELD] [[-o | –output]=OUTPUT_FORMAT] [flags] 列出一个或多个资源。
    label kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 … KEY_N=VAL_N [–overwrite] [–all] [–resource-version=version] [flags] 添加或更新一个或者多个资源对象的标签。
    logs kubectl logs POD [-c CONTAINER] [–follow] [flags] 显示Pod中一个容器的日志。
    patch kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) –patch PATCH [flags] 使用策略合并补丁过程更新资源对象中的一个或多个字段。
    port-forward kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT […[LOCAL_PORT_N:]REMOTE_PORT_N] [flags] 将一个或多个本地端口转发到Pod。
    proxy kubectl proxy [–port=PORT] [–www=static-dir] [–www-prefix=prefix] [–api-prefix=prefix] [flags] 为kubernetes API服务器运行一个代理。
    replace kubectl replace -f FILENAME 从文件或stdin中替换资源对象。
    rolling-update kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] –image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [flags] 通过逐步替换指定的副本控制器和Pod来执行滚动更新。
    run kubectl run NAME –image=image [–env=”key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [flags] 在集群上运行一个指定的镜像。
    scale kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) –replicas=COUNT [–resource-version=version] [–current-replicas=count] [flags] 扩宿容副本集的数量。
         
    version kubectl version [–client] [flags] 显示运行在客户端和服务器端的Kubernetes版本。

    1.2 资源对象类型

    在kubernetes中,提供了很多的资源对象,开发和运维人员可以通过这些对象对容器进行编排。在下表中,是kubectl所支持的资源对象类型,以及它们的缩略别名:

    资源对象类型缩略别名
    apiservices  
    certificatesigningrequests csr
    clusters  
    clusterrolebindings  
    clusterroles  
    componentstatuses cs
    configmaps cm
    controllerrevisions  
    cronjobs  
    customresourcedefinition crd
    daemonsets ds
    deployments deploy
    endpoints ep
    events ev
    horizontalpodautoscalers hpa
    ingresses ing
    jobs  
    limitranges limits
    namespaces ns
    networkpolicies netpol
    nodes no
    persistentvolumeclaims pvc
    persistentvolumes pv
    poddisruptionbudget pdb
    podpreset  
    pods po
    podsecuritypolicies psp
    podtemplates  
    replicasets rs
    replicationcontrollers rc
    resourcequotas quota
    rolebindings  
    roles  
    secrets  
    serviceaccounts sa
    services svc
    statefulsets  
    storageclasses  

    1.3 输出选项

    kubectl默认的输出格式为纯文本格式,可以通过-o或者–output字段指定命令的输出格式。

    $ kubectl [command] [TYPE] [NAME] -o=<output_format>
    输出格式描述
    -o=custom-columns=<spec> 使用以逗号分隔的自定义列打印表格。
    -o=custom-columns-file=<filename> 使用文件中自定义列打印表格。
    -o=json 输出JSON格式的API对象
    -o=jsonpath=<template> 打印在jsonpath表达式中定义的字段
    -o=jsonpath-file=<filename> 打印文件中以jsonpath表达式定义的字段
    -o=name 仅仅输出资源对象的名称。
    -o=wide 输出带有附加信息的纯文本格式。对于Pod对象,将会包含Node名称。
    -o=yaml 输出YAML格式的API对象
  • 相关阅读:
    JSP简单访问数据库
    解析数据存储MySQL
    学习SSH框架
    JavaWEB中读取配置信息
    Eclipse中将Java项目转换成Web项目的方法
    JavaWEB入门
    万能数据库连接类-Oracle、DB2 、Access 、Sql Server
    小米3 打开开发者选项
    coolpad 5879logcat不能输入日志解决办法
    实用开发之-oracle表回滚到一个指定时间的操作语句
  • 原文地址:https://www.cnblogs.com/zy09/p/11398632.html
Copyright © 2011-2022 走看看