开发手册 欢迎您!
软件开发者资料库

Kubernetes - Kubectl命令

Kubernetes Kubectl命令 - 从简单和简单的步骤学习Kubernetes,从基本到高级概念,包括概述,体系结构,设置,图像,作业,标签和选择器,命名空间,节点,服务,Pod,复制控制器,副本集,部署,卷,秘密,网络策略,API,Kubectl,Kubectl命令,创建应用程序,应用程序部署,自动扩展,仪表板设置,监控。

Kubectl 控制Kubernetes群集.它是Kubernetes的关键组件之一,它在设置完成后在任何机器上的工作站上运行.它具有管理集群中节点的能力.

Kubectl 命令用于交互和管理Kubernetes对象和集群.在本章中,我们将通过kubectl讨论Kubernetes中使用的一些命令.

kubectl annotate : 它更新资源上的注释.

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

例如,

  kubectl annotate pods tomcat description ='my frontend'

kubectl api-versions : 它在群集上打印支持的API版本.

  $ kubectl api-version;

kubectl apply : 它具有按文件或标准输入配置资源的能力.

  $ kubectl apply -f< filename>

kubectl attach : 这会将事物附加到正在运行的容器中.

  $ kubectl attach< pod> -c< container>  $ kubectl attach 123456-7890 -c tomcat-conatiner

kubectl autoscale : 这用于自动扩展已定义的pod,例如Deployment,副本集,Replication Controller.

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

kubectl cluster-info : 它显示集群信息.

  $ kubectl cluster-info

kubectl cluster-info dump : 它会转储有关集群的相关信息以进行调试和诊断.

  $ kubectl cluster-info dump  $ kubectl cluster-info dump  - output-directory =/path/to/cluster-state

kubectl config : 修改kubeconfig文件.

  $ kubectl config< SUBCOMMAD>  $ kubectl config --kubeconfig<文件名字符串>

kubectl config current-context : 它显示当前上下文.

  $ kubectl config current-context  #deploys当前上下文

kubectl config delete-cluster : 从kubeconfig中删除指定的集群.

  $ kubectl config delete-cluster< Cluster Name>

kubectl config delete-context : 从kubeconfig中删除指定的上下文.

  $ kubectl config delete-context< Context Name>

kubectl config get-clusters : 显示在kubeconfig中定义的集群.

  $ kubectl config get-cluster  $ kubectl config get-cluster< Cluser Name>

kubectl config get-contexts : 描述一个或多个上下文.

  $ kubectl config get-context< Context Name>

kubectl config set-cluster : 在Kubernetes中设置集群条目.

  $ kubectl config set-cluster NAME [--server = server] [--certificateauthority =  path/to/certificate/authority] [--insecure-skip-tls-verify = true]

kubectl config set-context : 在kubernetes入口点设置上下文条目.

  $ kubectl config set-context NAME [--cluster = cluster_nickname] [ -   user = user_nickname] [--namespace = namespace]  $ kubectl config set-context prod -user = vipin-mishra

kubectl config set-credentials : 在kubeconfig中设置用户条目.

  $ kubectl config set-credentials cluster-admin --username = vipin  -   password = uXFGweU9l35qcif

kubectl config set : 在kubeconfig文件中设置单个值.

  $ kubectl config set PROPERTY_NAME PROPERTY_VALUE

kubectl config unset : 它取消了kubectl中的特定组件.

  $ kubectl config unset PROPERTY_NAME PROPERTY_VALUE

kubectl config use-context : 设置kubectl文件中的当前上下文.

  $ kubectl config use-context< Context Name>

kubectl配置视图

 $ kubectl config view $ kubectl config view -o jsonpath ='{.users [?(@.name =="e2e")].user.password}'

kubectl cp : 将文件和目录复制到容器中或从容器中复制.

  $ kubectl cp<来自源的文件> < Files to Destinatiion>  $ kubectl cp/tmp/foo< some-pod>:/tmp/bar -c< specific-container>

kubectl create : 按文件名或stdin创建资源.为此,接受JSON或YAML格式.

  $ kubectl create -f<文件名>  $ cat<文件名> | kubectl create -f  -

以同样的方式,我们可以使用 create 命令和

  • 部署

  • namespace

  • quota

  • secret docker-registry

  • secret

  • secret generic

  • secret tls

  • serviceaccount

  • service clusterip

  • service loadbalancer

  • 服务节点端口

kubectl delete : 按文件名,标准输入,资源和名称删除资源.

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

kubectl describe : 描述kubernetes中的任何特定资源.显示资源或一组资源的详细信息.

  $ kubectl describe< type> <类型名称>  $ kubectl describe pod tomcat

kubectl drain : 这用于排出节点以进行维护.它准备节点进行维护.这会将节点标记为不可用,因此不应为其分配新容器.

  $ kubectl drain tomcat -force

kubectl edit : 它用于结束服务器上的资源.这允许直接编辑可以通过命令行工具接收的资源.

  $ kubectl edit< Resource/Name |文件名) Ex.  $ kubectl edit rc/tomcat

kubectl exec : 这有助于在容器中执行命令.

  $ kubectl exec POD< -c CONTAINER> -  COMMAND< ARGS ...>  $ kubectl exec tomcat 123-5-456 date

kubectl expose : 这用于将Kubernetes对象(如pod,复制控制器和服务)公开为新的Kubernetes服务.这可以通过正在运行的容器或 yaml 文件公开它.

  $ kubectl expose( - f FILENAME | TYPE NAME)[ -  port = port] [--protocol = TCP | UDP]  [--target-port = number-or-name] [ -  name = name] [ -  external -ip = external-ip-ofservice]  [--type = type]  $ kubectl expose rc tomcat --port = 80 -target-port = 30000  $ kubectl expose -f tomcat .yaml -port = 80 -target-port =

kubectl get : 此命令能够在集群上获取有关Kubernetes资源的数据.

$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...](TYPE [NAME | -l label] | TYPE/NAME ...) [flags]

例如,

  $ kubectl get pod< pod name>  $ kubectl get service<服务名称>

kubectl logs : 它们用于在容器中获取容器的日志.打印日志可以在容器中定义容器名称.如果POD只有一个容器,则无需定义其名称.

$ kubectl logs [-f] [-p] POD [-c CONTAINER]Example$ kubectl logs tomcat.$ kubectl logs –p –c tomcat.8

kubectl port-forward : 它们用于将一个或多个本地端口转发到pod.

  $ kubectl port-forward POD [LOCAL_PORT:] REMOTE_PORT  [ ... [LOCAL_PORT_N:] REMOTE_PORT_N]  $ kubectl port-forward tomcat 3000 4000  $ kubectl port-forward tomcat 3000:5000

kubectl replace : 能够通过文件名或 stdin 替换资源.

$ kubectl replace -f FILENAME$ kubectl replace –f tomcat.yml$ cat tomcat.yml | kubectl replace –f -

kubectl rolling-update : 在复制控制器上执行滚动更新.通过一次更新POD,用新的复制控制器替换指定的复制控制器.

  $ kubectl rolling-update OLD_CONTROLLER_NAME([NEW_CONTROLLER_NAME]  -  -   image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) $ kubectl rolling-update frontend-v1 -f freontend-v2.yaml

kubectl rollout : 它能够管理部署的部署.

$ Kubectl rollout $ kubectl rollout undo deployment/tomcat

除上述内容外,我们还可以使用卷展栏执行多项任务,例如 :

  • 推出历史记录

  • 推出暂停

  • 推出简历

  • 推出状态

  • 推出撤消

kubectl run : 运行命令可以在Kubernetes集群上运行图像.

$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [--replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] --[COMMAND] [args...]$ kubectl run tomcat --image = tomcat:7.0$ kubectl run tomcat –-image = tomcat:7.0 –port = 5000

kubectl scale : 它将扩展Kubernetes Deployments,ReplicaSet,Replication Controller或job的大小.

  $ kubectl scale [--resource-version = version] [--current-replicas = count]  -   replicas = COUNT(-f FILENAME | TYPE NAME) $ kubectl scale --replica = 3 rs/tomcat  $ kubectl scale -replica = 3 tomcat.yaml

kubectl set image : 它会更新pod模板的图像.

  $ kubectl set image(-f FILENAME | TYPE NAME) CONTAINER_NAME_1 = CONTAINER_IMAGE_1. .. CONTAINER_NAME_N = CONTAINER_IMAGE_N  $ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1  $ kubectl set image deploymentments,rc tomcat = tomcat6.0 --all

kubectl设置资源 : 它用于设置资源的内容.它使用pod模板更新对象的资源/限制.

  $ kubectl set resources(-f FILENAME | TYPE NAME)([ -  limit = LIMITS&  -   requests = REQUESTS]  $ kubectl set resources deployment tomcat -c = tomcat  -   limits = cpu = 200m,memory = 512Mi

kubectl top node : 它显示CPU/内存/存储使用情况.top命令允许您查看节点的资源消耗.

  $ kubectl top node [node Name]

相同的命令可以与pod一起使用同样.