📅  最后修改于: 2020-11-01 04:16:45             🧑  作者: Mango
Kubectl控制Kubernetes集群。它是Kubernetes的关键组件之一,设置完成后,它可以在任何机器的工作站上运行。它具有管理集群中节点的功能。
Kubectl命令用于与Kubernetes对象和集群进行交互和管理。在本章中,我们将讨论通过kubectl在Kubernetes中使用的一些命令。
kubectl注释-更新资源上的注释。
$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-它具有按文件或stdin配置资源的能力。
$ kubectl apply –f
kubectl attach-将东西附加到正在运行的容器上。
$ kubectl attach –c
$ 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
$ kubectl config –-kubeconfig
kubectl config current-context-显示当前上下文。
$ kubectl config current-context
#deploys the current context
kubectl config delete- cluster-从kubeconfig删除指定的集群。
$ kubectl config delete-cluster
kubectl config delete- context-从kubeconfig删除指定的上下文。
$ kubectl config delete-context
kubectl config get-clusters-显示在kubeconfig中定义的集群。
$ kubectl config get-cluster
$ kubectl config get-cluster
kubectl config get-contexts-描述一个或多个上下文。
$ kubectl config get-context
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配置集-在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
kubectl配置视图
$ kubectl config view
$ kubectl config view –o jsonpath='{.users[?(@.name == "e2e")].user.password}'
kubectl cp-在容器之间复制文件和目录。
$ kubectl cp
$ kubectl cp /tmp/foo :/tmp/bar -c
kubectl create-通过或stdin的文件名创建资源。为此,可以接受JSON或YAML格式。
$ kubectl create –f
$ cat | kubectl create –f -
以相同的方式,我们可以使用create命令以及kubectl来创建列出的多项内容。
kubectl delete-按文件名,标准输入,资源和名称删除资源。
$ kubectl delete –f ([-f FILENAME] | TYPE [(NAME | -l label | --all)])
kubectl describe-描述kubernetes中的任何特定资源。显示资源或一组资源的详细信息。
$ kubectl describe
$ kubectl describe pod tomcat
kubectl排放-用于排放节点以进行维护。它为维护做好准备。这会将节点标记为不可用,因此不应为其分配将要创建的新容器。
$ kubectl drain tomcat –force
kubectl edit-用于终止服务器上的资源。这样可以直接编辑可以通过命令行工具接收的资源。
$ kubectl edit
kubectl exec-这有助于在容器中执行命令。
$ kubectl exec POD -- COMMAND < args...>
$ kubectl exec tomcat 123-5-456 date
kubectl暴露-用于将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
$ kubectl get service
kubectl日志-它们用于获取容器中容器的日志。打印日志可以定义容器中的容器名称。如果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滚动更新-在复制控制器上执行滚动更新。通过一次更新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部署-它能够管理部署的部署。
$ Kubectl rollout
$ kubectl rollout undo deployment/tomcat
除此之外,我们还可以使用卷展栏执行多个任务,例如-
kubectl run -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部署,ReplicaSet,Replication Controller或作业的大小。
$ 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 deployments, rc tomcat = tomcat6.0 --all
kubectl设置资源-用于设置资源的内容。它使用pod模板更新对象的资源/限制。
$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits = LIMITS & --
requests = REQUESTS]
$ kubectl set resources deployment tomcat -c = tomcat --
limits = cpu = 200m,memory = 512Mi
kubectl顶部节点-显示CPU /内存/存储使用情况。 top命令使您可以查看节点的资源消耗。
$ kubectl top node [node Name]
相同的命令也可以与Pod一起使用。